Как перевести английскую строку в системе перевода

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

Аватар пользователя noneart noneart 23 февраля 2013 в 13:02

Оказалось нужным изменить значение текста у виджета quantity из commerce kickstart

нашёл, то что он подргужается таким способом:
<?php $form['quantity']['#title'] = t('Enter Quantity'); ?>

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

Комментарии

Аватар пользователя jvb jvb 23 февраля 2013 в 15:40

Зашел у себя в систему перевода, набрал для поиска Enter Quantity - появилась одна строка, перевел.Хм...при поиске у меня включены "Все языки", "Переведенные и непереведенные","Все текстовые группы".

Аватар пользователя jvb jvb 23 февраля 2013 в 17:09

Я так не делал, но попробовать можно на вкладке "Экспорт"(в "Переводе интерфейса") выложить все переводы в файл *.po. По образу и подобию в нем создать(посмотреть как в файле это сделано, только не вначале) две строки msgid "Enter Quantity"
msgstr "Желаемый перевод"
и импортировать файл обратно. И не забывайте М.Боярского, который пел примерно следующее "BackUp себе говорю я и ДЕЛАЮ ШАГ".

Аватар пользователя noneart noneart 24 февраля 2013 в 18:39

окей.. я скачал файл po их localize drupal project. Немецкий, потому что английский там пустой..
Теперь у меня в интерфейсе переводов строк появилась моя долгожданная строка "Enter Quantity"
НО!!! только на немецком. А где английская версия? и почему я не могу добавить английский вариант перевода? почему этот стринг даётся для редактирования только на немецком?

Аватар пользователя jvb jvb 24 февраля 2013 в 18:42

На Вашем сайте, в разделе переводы, на закладке "Экспорт" экспортировать в файл *.po Ваши все переводы!!! Потом подредактировать полученный файл и импортировать его обратно в систему. Скачивать ничего не нужно.

Аватар пользователя noneart noneart 10 ноября 2015 в 11:49

Интересный способ. Я с первого раза вас не понял.

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

а ещё я заметил странность. на странице переводов вот такая статистика - я прикрепил скриншот к этому сообщению

в общем пока что не получается это решить, к сожалению

Аватар пользователя jvb jvb 24 февраля 2013 в 19:53

А русского нет вообще у Вас ?? Тогда экспортируйте немецкий , в нем добавляйте перевод и имортируйте обратно в немецкий. На картинке ничего необычного.

Аватар пользователя jvb jvb 24 февраля 2013 в 19:52

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

Аватар пользователя noneart noneart 24 февраля 2013 в 20:00

русского нету?

а как тогда быть с английским? ведь мне на самом деле перевод надо поменять для английской версии, а не для немецкой

Аватар пользователя jvb jvb 24 февраля 2013 в 20:09

Не совсем понимаю, что нужно в английском поменять?? Не нравится само "Enter Quantity"?Хм тогда попробуйте просто в тесте программы поменять, ведь Вы уже нашли место....

Аватар пользователя noneart noneart 24 февраля 2013 в 20:17

да.. чорт.. с самого начала то не написал, что мне нужно.

да. мне надо "Enter Quantity" заменить на просто "Quantity"

в тексте - самый просто способ.. но как известно, после обновления значение сбросится.. не хотелось бы

Аватар пользователя noneart noneart 25 февраля 2013 в 13:47

что значит, куда сбросится? ... при обновлении кода произойдёт перезаписывание php-файла, и t('Enter Quantity'); снова примет изначальное значение

Аватар пользователя noneart noneart 25 февраля 2013 в 16:35

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

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

Аватар пользователя noneart noneart 25 февраля 2013 в 23:52

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

у меня просто появилась ещё одна строка, которую я бы хотел заменить... но мне дают редактировать перевод только для немецкого языка

Аватар пользователя jvb jvb 26 февраля 2013 в 0:15

Я думаю это естественно только для немецкого, потому как английский является исходным и соответсвенно его можно, как я понимаю, поменять только в тексте программы. Ведь в программе , я так догадываюсь, запускается поиск по английскому слову или словам и в зависимости от настроек языка выводится английский(как первоисточник) либо язык, который установлен по умолчанию и если для этого языка есть перевод.

Аватар пользователя jvb jvb 26 февраля 2013 в 0:27

Я себе представляю, что запись t('Enter quantity') запуск процедуры, которая :
Смотрит какой нужен перевод, если английский , то выводит 'Enter Quantity', если другой какой язык, то по 'Enter Quantity' ищет перевод и выводит перевод, если перевод не найден, то снова же 'Enter Quantity'. Я вот еще раз экспортировал русский перевод в ru.po. Там у меня есть строка msgid 'Enter Quantity'. Как бы Вы расшифровали msgid? Я бы, например, как message id т.е. идентифокатор сообщения.("Идентификатор" - однозначно определяющий). А за ним следует msgstr.Message string то бишь. Вот если бы поиск шел покакой-нибудь цифре и msgid=5 например, а не 'Enter Quantity', тогда бы стоило бы поискать и английский и другой перевод по цифровому id.Но цифрового айди не видать. Вот это все и подталкивает меня к выводу, что английский менять либо в программе либо вообще не трогать.Ибо как Вы правильно подметили, прийдет обновление и снова прийдется править.
А так же не исключаю, что я чего-то неправильно понимаю или не знаю.

Аватар пользователя drupby drupby 26 февраля 2013 в 1:25

"noneart" wrote:
да. мне надо "Enter Quantity" заменить на просто "Quantity"

в settings.php

$conf['locale_custom_strings_en'][''] = array(
   'Enter Quantity'      => 'Quantity',
 );