"Översättning" av taxanomi termer

Events happening in the community are now at Drupal community events on www.drupal.org.
RTauson's picture

Hej !
Har en site där en modul lägger upp egna taxanomier via .install filen enligt...

$vocabulary = array(
  'name' => t('My vocabulary'),
  'multiple' => '0',
  'required' => '1',
  'hierarchy' => '2',
  'relations' => '0',
  'module' => 'mymodule',
  'nodes' =>
    array (
      'reports' => 1
    )
);

taxonomy_save_vocabulary($vocabulary);
$vid = $vocabulary['vid'];

//Create the sub terms for this vocabulary
$termMain = array(
  'name' => t('Main category'),
  'description' => t('Description for main category.'),
  'vid' => $vid,
  'weight' => 1,
);
taxonomy_save_term($termMain);
.....
Adds the whole hierarchy....

Problemet är nu att jag vill översätta taxanomierna via en .po fil men när jag installerar min modul blir termerna forfarande på engelska.
Om jag istället (vilket naturligtvis inte är särskilt bra) hårdkodar in kategori namnen på svenska och använder å, ä eller ö "bryts" termen vid det första nationella tecknet.
Exempelvis:
Björn blir BJ
Räv blir R
osv...

Är det någon som har en idé om att i första hand lösa översättningen med .po filer i andra hand hur jag kommer under problemet med åäö ?
Alla idér är mer än välkomna.

Comments

Hejhej RTauson, Måste du

ztyx's picture

Hejhej RTauson,

Måste du översätta taxonomierna via en .po-fil? Jag vet att i18n-projektet har funktionalitet att översätta taxonomier. Har ej testat den, men den kan lätt vara värt besväret att inte komma på hjulet på nytt.

mvh Jens

Måste och måste...

RTauson's picture

Vill ha en programmatisk möjligthet att översätta mina termer. Skall kolla in i18n-projektet, återkommer med resultat.
Ör det någon som har någon gissning kring det andra problemet med att drupal "klipper" om jag försöker spara en term med ett namn med åäö i ?

Timing

zoo33's picture

Jag skulle tro att problemet med att termerna inte översätts har att göra med att översättningen i din .po-fil installeras först efter att hook_install() har körts (jag förutsätter att du använder Drupal 6). För att komma runt det måste du i så fall köra din "installation" i ett annat skede. Man kanske kan tänka sig att modulen kollar efter om vokabuläret är installerat vid bestämda tillfällen, exempelvis när användaren öppnar en inställningssida, eller när modulen anropas på något annat sätt. Då bör översättningen vara installerad och t()-anropen i din installation blir då översatta.

/ Hannes Lilljequist – SthlmConnection

Helt riktigt

RTauson's picture

@zoo33 - stämmer precis, byggde om modulen så att min "installation" görs vid anrop av mitt form.
Nu installeras taxanomierna snyggt och prydligt med aktuellt språk, så i mitt fall får jag taxanomierna på svenska om jag kör sajten på svenska vid första anropet till installationen.
Kör jag installationen på när jag har sajten i engelskt läge får jag engelska taxanomier.

"Promblemet" som jag ser det är att taxanomi termerna skrivs till databasen på det språk dom första gången installeras till, det vill säga om jag kör dom på svenska och sedan har jag en användare som kör på engelska får jag fortfarande taxanomierna på svenska. Gissar att detta fenomen ligger i Drupal 6's natur i sin hantering av taxanomier.

Känns inte som ett "true" multi language stöd i så fall skulle taxanomierna översättas i "runtime" och inte vid installationen.

Någon som har en åsikt om detta påstående ?

Det är riktigt, det är så

zoo33's picture

Det är riktigt, det är så det funkar. Den lösning som finns för flerspråkiga termer är i18n som lägger till en ny "kontext" i det normala översättningssystemet under menyn Översätt gränssnitt. (Jag tycker på ett sätt att det inte är en optimal lösning eftersom man översätter termernas "text", inte termerna själva. Och gränssnittet är lite krångligt.)

Den andra lösningen (som jag tror att i18n också har stöd för) är att skapa separata vokabulär för varje språk. Det är så jag har gjort på perrito.se. Jag antar att din modul kanske skulle kunna installera två vokabulär automatiskt: ett med oöversatta engelska textsträngar och en med det aktuella språket (med t()). Eller också skapa ett eget språksystem för just dina taxonomier där du installerar ett antal vokabulär, ett för varje språk du har en översättning för (alltså inte med t()). Fast det känns samtidigt som en lite väl specialsnickrad lösning.

Inga självklara svar alltså. Jag skulle nog rekommendera att fråga i i18n-gruppen.

/ Hannes Lilljequist – SthlmConnection

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week