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

Аватар пользователя trobing

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

Ключевые слова:
Тип материала:
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя dgastudio
dgastudio 8 месяцев назад

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

Аватар пользователя trobing
trobing 8 месяцев назад

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

Аватар пользователя fairrandir
fairrandir 8 месяцев назад

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

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

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

Аватар пользователя trobing
trobing 8 месяцев назад

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

Аватар пользователя bumble
bumble 8 месяцев назад

В точку!

Аватар пользователя trobing
trobing 8 месяцев назад

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

Аватар пользователя sas@drupal.org
sas@drupal.org 8 месяцев назад

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

Аватар пользователя bsyomov
bsyomov 8 месяцев назад

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

Аватар пользователя trobing
trobing 8 месяцев назад

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

Аватар пользователя deadie
deadie 8 месяцев назад

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

Аватар пользователя bsyomov
bsyomov 8 месяцев назад

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

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

Аватар пользователя sergeybelya
sergeybelya 8 месяцев назад
bsyomov написал:
поменять методику разработки
Аватар пользователя Ветер
Ветер 8 месяцев назад

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

Аватар пользователя fairrandir
fairrandir 8 месяцев назад
2

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