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

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

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

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

Комментарии

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

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

0 Спасибо
Аватар пользователя trobing
trobing 6 месяцев назад

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

0 Спасибо
Аватар пользователя fairrandir
fairrandir 6 месяцев назад

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

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

0 Спасибо
Аватар пользователя sas@drupal.org
sas@drupal.org 6 месяцев назад

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

0 Спасибо
Аватар пользователя trobing
trobing 6 месяцев назад

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

0 Спасибо
Аватар пользователя bumble
bumble 6 месяцев назад

В точку!

0 Спасибо
Аватар пользователя trobing
trobing 6 месяцев назад

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

0 Спасибо
Аватар пользователя sas@drupal.org
sas@drupal.org 6 месяцев назад

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

0 Спасибо
Аватар пользователя bsyomov
bsyomov 6 месяцев назад

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

0 Спасибо
Аватар пользователя trobing
trobing 6 месяцев назад

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

0 Спасибо
Аватар пользователя deadie
deadie 6 месяцев назад

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

0 Спасибо
Аватар пользователя bsyomov
bsyomov 6 месяцев назад

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

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

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

0 Спасибо
Аватар пользователя Ветер
Ветер 6 месяцев назад

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

0 Спасибо
Аватар пользователя fairrandir
fairrandir 6 месяцев назад 2

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