Как переводить с русского на английский через функцию t()?

Главные вкладки

Комментарии

Аватар пользователя fairrandir fairrandir 14 марта 2017 в 12:38

ЕМНИП, в модуле i18n есть где-то в настройках, что-то типа source language. Можно задать source language русский, но побочные эффекты могут вас не порадовать.

Аватар пользователя chimir chimir 14 марта 2017 в 18:08

Quote:

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

Аватар пользователя sas@drupal.org sas@drupal.org 14 марта 2017 в 19:05

Шеф всё пропало, в t вводится только исходный ангельский. Вы конечно можете не феншуйно ввести кирильную строку, тогда ищите перевод в en, там будет русский. Ну и https://www.drupal.org/project/potx Вам в помощь.

Аватар пользователя trobing trobing 18 марта 2017 в 8:44

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

Аватар пользователя sas@drupal.org sas@drupal.org 20 марта 2017 в 7:36

Интернациональный исходный язык ангельский, на нем добавляются строки через t, затем переводятся на любой язык на сайте, или potx

Аватар пользователя bsyomov bsyomov 20 марта 2017 в 15:51

Опишите подробнее, что и зачем вы пытаетесь сделать.
Возможно, вы совершенно зря прицепились в бедной t() с не подходящими, совершенно, требованиями, и вам нужно что-то другое. Например, поменять методику разработки, или как-то расширить функции системы перевода или что-то ещё.

Аватар пользователя trobing trobing 21 марта 2017 в 8:49

Есть например несколько форм с текстом элементов, например названий кнопок, плэйсхолдеров и т.д. на русском, перевода на стадии разработки ещё нет, переводом будет например заниматся администратор\контент менеджер и т.д. Нужно чтобы программист создавал форму с надписями на русском, а позже была возможность перевести эти строки на английский через интерфейс.

Аватар пользователя bsyomov bsyomov 22 марта 2017 в 18:58

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

А вообще, вашу задачу может решить что-то такое, вместо t(), и другие задачи заодно:
https://www.drupal.org/node/313293
https://www.drupal.org/project/i18n