it-swarm-eu.dev

Jako standard použijte jiný jazyk než „výchozí“

V současné době vytváříme poměrně velký web, který bude zpočátku vydán ve švédštině, ale později i v dalších jazycích. Z tohoto důvodu jsme vše postavili v angličtině a pak vše přeložili do švédštiny. Pro uvolnění by měl být přístupný pouze švédský jazyk. Zde začíná problém.

- Nechceme/nemůžeme používat předpony jazykových adres URL z různých důvodů (střety PURL, ošklivost, nebude nutné, jakmile bude web k dispozici ve více než jednom jazyce)

-Nemůžeme použít švédštinu jako výchozí jazyk, protože tím dojde k přerušení všech překladů (řetězcové překlady budou považovat švédštinu za původní jazyk). Protože vše z polí, štítků, typů obsahu, textu nápovědy atd. Je původně v angličtině, není to možné.

-Můžeme použít detekci prohlížeče, ale to není opravdu bláznivé a nepokrývá všechny případy. Mnoho uživatelů ve Švédsku používá angličtinu jako jazyk prohlížeče.

-Mohli bychom použít umístění IP jako doplněk k výše uvedenému, ale není to ani blázen.

To, co bychom opravdu potřebovali, je použít švédštinu jako výchozí jazyk, ale nějak použít angličtinu jako jazyk původu. Je to možné?

7
Adam Gerthel

Drupal 7?

Jazykové vyjednávání je rozšiřitelné, stačí implementovat hook_language_negotiation_info () . Tam můžete dělat, co chcete, jako vždy výchozí pro švédské prozatím. Vypadá to také, že se můžete omezit na jaké jazyky můžete přepnout, nejsem si však jistý, jak přesně to funguje.

Nejste si jisti, co dělat, jakmile přidáte další jazyky, ale mohli byste například zavolat na jiné vyjednávací zpětná volání ve vašem a na pomoc, pokud to není žádný z jazyků, které chcete zobrazit.

6
Berdir

Tato otázka je stará, ale myslím si, že tato odpověď může být pro někoho užitečná. Modul s touto funkcí nyní existuje, najdete ho zde: https://drupal.org/project/fallback_language_negotation

Jsem vývojář, ale nevím dost Drupal) k psaní modulů a implementaci háčků. Tuto funkci jsem opravdu potřeboval, ale nemohl jsem to udělat sám.

Tento modul je také velmi jednoduchý, takže je dobré pro začátečníky porozumět tomu, jak psát moduly.

2
user1527576

Možná vám chybí některé informace (možná na tom nezáleží, tedy o 3 roky), ale pro mě se to zdá jednoduché: použijte detekci URL a nakonfigurujte detektor tak, aby používal domény, poté nastavte doménu svého webu na švédštinu a předponu pro angličtinu . Tímto způsobem bude vždy výchozí švédština, protože odpovídá vaší doméně, a nikdy angličtině, protože se nestará o předpony (jste však nuceni zadat předponu nebo doménu v jazykové konfiguraci).

Alternativou by mohlo být změnit vyjednávač jazyka URL v jádru, to lze provést pomocí hook_language_negotiation_info_alter () . Zdá se, že je k tomu velmi málo dokumentace, ale já jsem ji s úspěchem použil k implementaci podobné logiky do vlastního modulu.

0
Achton