перевод строки в drupal без английского по умолчанию в коде - PullRequest
4 голосов
/ 08 июля 2010

Привет, мне было интересно, есть ли способ написать свой код, чтобы строки языка по умолчанию не нужно было жестко кодировать?

Мое приложение не должно требовать изменения кода для исправления опечатки в ярлыке. Это также не должно влиять на другие языки, если я меняю английскую метку.

Как я теперь вижу, мои строки должны быть на английском языке в вызове t ('button label for'). Тогда этот текст «например, метка кнопки» является ключевым для других языков. Проблемы: 1. изменение требует изменения кода 2. изменение требует обновления ключевой строки на всех языках 3. некоторые языки могут иметь разную грамматику, и одно английское слово может отображаться во многих версиях, поэтому текст «книга» не является эногу и не может быть меткой, поскольку это могут быть 2 разных слова на другом языке в зависимости от контекста или книгу для прочтения).

Есть ли способ иметь значимые ярлыки, такие как mymodule_btn_buy_now, и тогда каждый язык будет использовать это в качестве ключа? То есть английские метки будут отделены от кода и помещены в файл перевода? Можно ли это как-то сделать в друпале?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 10 июля 2010

Обычный обходной путь для этой проблемы - добавить новый пользовательский язык, также назвать его английским и использовать его вместо языка по умолчанию. Если вы настроите перевод на использование непереведенной строки, если перевод недоступен, вам не нужно предоставлять полный набор переводов для пользовательской версии на английском языке - просто добавьте переводы для строк, которые вы хотите изменить.

При этом вы практически превращаете заданный по умолчанию английский набор по умолчанию в идентификаторы «не зависящие от языка», для которых все другие языки, включая пользовательский английский, предоставляют переведенные версии.

1 голос
/ 08 июля 2010

AFAIK, нет необходимости писать строку перевода внутри t() в Enlisch, это просто по умолчанию и удобство. Если ваш язык по умолчанию, например, Польский, чем вы можете написать все строки перевода на польском языке и перевести их через интерфейс Drupals. Причина правильного перевода на английский заключается в том, что это язык по умолчанию, и если другой язык не найден, используется уже заданная строка.

Для Drupal не имеет значения, переведено ли одно слово или полное предложение, так что вы можете легко переводить целые предложения, и вам не нужно беспокоиться о грамматике или о чем-либо.

Лично я бы порекомендовал сохранить переводы с английского на метод t(), поскольку это хорошая настройка по умолчанию, и просто добавьте все необходимые языки с помощью Drupal

0 голосов
/ 08 июля 2010

После исследования источников я думаю, что нет никакого способа сделать это, щелкая вокруг.

Лучшее решение, которое я пока вижу, это заменить все экземпляры "en" на "zu" ... сделал это в common.php и locale.php и действительно работает! ЛОЛ! Придется немного его протестировать, так как я не уверен, насколько сильно это сказывается на производительности. Не должно быть слишком плохо, так как английский был иностранным языком, я думаю. Я могу редактировать этикетки и экспортировать переведенные английские тексты.

Буду проверять больше, если вы знаете лучший способ сделать это, дайте мне знать.

...