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

Втр, 14/03/2017 - 07:36

Здравствуйте,
Нужно чтобы админ\контент менеджер переводил на английский через интерфейс строки изначально введённые на русском через функцию t().

0 Спасибо

Комментарии

Аватар пользователя dgastudio
4 months 1 неделя назад dgastudio #

t('привет', array(), array('langcode' => 'ru'));

0 Спасибо
Аватар пользователя trobing
4 months 1 неделя назад trobing #

Спасибо, пробовал, но в интерфейсе перевода всё равно значится ru

0 Спасибо
Аватар пользователя fairrandir
4 months 1 неделя назад fairrandir #

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

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

0 Спасибо
Аватар пользователя sas@drupal.org
4 months 1 неделя назад sas@drupal.org #

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

0 Спасибо
Аватар пользователя trobing
4 months 1 неделя назад trobing #

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

0 Спасибо
Аватар пользователя bumble
4 months 6 дней назад bumble #

В точку!

0 Спасибо
Аватар пользователя trobing
4 months 6 дней назад trobing #

В восьмом друпел ситуация такая же?

0 Спасибо
Аватар пользователя sas@drupal.org
4 months 5 дней назад sas@drupal.org #

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

0 Спасибо
Аватар пользователя bsyomov
4 months 4 дня назад bsyomov #

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

0 Спасибо
Аватар пользователя trobing
4 months 4 дня назад trobing #

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

0 Спасибо
Аватар пользователя deadie
4 months 3 дня назад deadie #

"Странного хочется...", чесслово.
По-моему, вам нужна другая CMS. Битрикс, например ;)

0 Спасибо
Аватар пользователя bsyomov
4 months 2 дня назад bsyomov #

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

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

0 Спасибо
Аватар пользователя sergeybelya
4 months 3 дня назад sergeybelya #
bsyomov написал:
поменять методику разработки

0 Спасибо
Аватар пользователя Ветер
4 months 2 дня назад Ветер #

Что мешает сначала написать транслитом, а потом добавить русский перевод?

0 Спасибо
Аватар пользователя fairrandir
4 months 2 дня назад fairrandir #

Пожалуйста, те кто когда-либо прочтёт верхний комментарий - НИКОГДА, НИКОГДА, НИКОГДА так не делайте.

2 Спасибо