In einem benutzerdefinierten Modul definiere ich mehrere Konfigurationsvariablen, indem ich die API des Variablenmoduls implementiere . Das Modul ist Teil eines mehrsprachigen Site-Projekts, daher sollten einige dieser Variablen übersetzbar sein.
In meiner hook_variable_info()
Implementierung sind diese Variablen wie bei definiert, 'localize' => TRUE
sodass sie in der Schnittstelle Mehrsprachige Einstellungen> Variablen verfügbar sind , die vom Modul für die Variablenübersetzung (Teil der Internationalisierung ) bereitgestellt wird . Ihr Standardzustand ist jedoch nicht zu übersetzen. Damit die Variable übersetzt werden kann, muss der Site-Administrator die Seite besuchen und die Variablen meines Moduls auswählen.
Ich muss meine benutzerdefinierten Variablen automatisch übersetzen, wenn das Modul installiert wird.
Das Modul verwendet bereits Features, um andere Konfigurationen zu exportieren. Eine auf Features basierende Lösung wäre also hilfreich. Es kann aber rein codebasiert sein.
quelle
Antworten:
Update : Mit der neuesten Version des Variablenübersetzungsmoduls (dh 7.x-1.7) wird die Liste der übersetzten Variablen vom
language
Variablenbereichscontroller in seinerlist
Variablen gespeichert . Der folgende Code zeigt, wie Sie mit dem Realm-Controller übersetzte Variablen aus einer Modulimplementierung festlegenhook_enable()
.Update : Dies ist nicht der richtige Weg, es sei denn, Sie verwenden eine alte Version des Variablenübersetzungsmoduls (<7.x-1.7).
Die Namen der übersetzten Variablen werden in der
i18n_variable_conf
Variablen gespeichert . Diese Variable selbst kann nicht mit Strongarm (oder einer ähnlichen Lösung) exportiert werden. Ich habe einen alten Trick angewendet: die Variable in einerhook_init
Implementierung überprüfen und bei Bedarf festlegen. Das Array im foreach-Controller enthält die Namen der zu übersetzenden Variablen.Im Vergleich zu einer funktionsbasierten Lösung werden dadurch die Einstellungen für die konfigurierten Variablen erzwungen und alle manuellen Bearbeitungen abgebrochen. Dies kann gewollt oder nicht gewollt sein. In meinem Fall war es.
Mein einziges Problem mit dieser Lösung ist, dass jede Anforderung einen gewissen Overhead hatte.
quelle
Eine auf Features basierende Lösung sollte strongarm sein . Diese Funktion ist jedoch (noch) nicht vorhanden http://drupal.org/node/1086986
quelle