Toon posts:

[PHP] bindtextdomain/gettext met een basis taal

Pagina: 1
Acties:

Vraag


  • Bender
  • Registratie: Augustus 2000
  • Laatst online: 21:45
Voor een website met als basis Nederlands en daarbij aanvullend Brits Engels (en_GB) als Amerikaans Engels (en_US) wil ik dubbele vertaalstrings eigenlijk voorkomen.
Momenteel wordt daardoor enkel en_GB gebruikt.

Bijvoorbeeld het woord tafel is zowel in Brits als Amerikaans table en dat is prima.

Maar ik zou graag willen dat provincie in en_GB county is en in en_US state.
Zonder dat ik ook tafel in de language file van zowel en_GB en en_US moet zetten.

Dus eigenlijk wil ik en_GB en daarna en_US laden om dit te overrulen, maar dat kan dus niet zover ik zie.

Heeft iemand wellicht een praktische oplossing hier voor?


Ik begrijp dat Brits en Amerikaans geen talen zijn, maar dat maakte het onderscheid denk ik duidelijker

Alle reacties


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Je kunt toch gewoon een dubbele lookup doen? Dus eerst zoeken op de volledige "languagecode-regioncode" ( en-GB ), en als die geen result heeft alleen op "languagecode" (en). Eigenlijk zou je het zelfs in 3 stappen moeten doen want stel je zoekt een niet bestaande taal op, dan val je als laatste terug naar je default language.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Ulster Seedling
  • Registratie: December 2007
  • Laatst online: 28-01 15:50

Ulster Seedling

“Middelgrote appel”

Misschien kun je met één van de gettext manipulation tools een script maken dat automatisch de onvertaalde strings in de ene taal overneemt uit de andere taal? Dan hoef je niet dubbel handmatig de vertalingen in te vullen, en ook geen gekke dingen te doen bij je lookups.

“(…) met een rode blos op een geelgroene ondergrond.” Volgens Wikipedia tenminste.


  • Bender
  • Registratie: Augustus 2000
  • Laatst online: 21:45
Woy schreef op donderdag 20 januari 2022 @ 08:00:
Je kunt toch gewoon een dubbele lookup doen? Dus eerst zoeken op de volledige "languagecode-regioncode" ( en-GB ), en als die geen result heeft alleen op "languagecode" (en). Eigenlijk zou je het zelfs in 3 stappen moeten doen want stel je zoekt een niet bestaande taal op, dan val je als laatste terug naar je default language.
Ik krijg nog niet helemaal helder hoe je dit in uitvoer ziet.

Stel je start met bindtextdomain('sitenaam', 'lang/en_GB')
en dan doe je gettext('Provincie','sitenaam')

Indien in en_GB/sitenaam.mo de vertaling Provincie voorkomt, dan staat er County en anders gewoon Provincie.

Maar hoe zet je daar een 'dialect' dus bij?

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Wat Woy zegt, in gettext terminologie:
Je bind meerdere domains, en je bepaalt een array met de domains n.a.v. voorkeur eindgebruiker.
Bij het vertalen loop je dan over de voorkeuren totdat dgettext() een vertaling vind.

Maar aangezien je vertalingen niet vaak wijzigen is de suggestie van Ulster wellicht beter.

{signature}


  • Bender
  • Registratie: Augustus 2000
  • Laatst online: 21:45
Voutloos schreef op donderdag 20 januari 2022 @ 13:29:
Wat Woy zegt, in gettext terminologie:
Je bind meerdere domains, en je bepaalt een array met de domains n.a.v. voorkeur eindgebruiker.
Bij het vertalen loop je dan over de voorkeuren totdat dgettext() een vertaling vind.

Maar aangezien je vertalingen niet vaak wijzigen is de suggestie van Ulster wellicht beter.
Maar dan bedoelen jullie dat je als domain gaat gebruiken als taal, hoewel het kan klinkt het mij niet logisch.
Of is dat meer omdat het de enige manier is (ik kan zelf ook geen andere manier bedenken, vandaar)
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee