powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / android многоязычность
114 сообщений из 114, показаны все 5 страниц
android многоязычность
    #38676478
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим не сложно с помощью if задать несколько вариантов надписей на кнопке. Но как определить какой язык главный на тедефоне клиента?
...
Рейтинг: 0 / 0
android многоязычность
    #38676509
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для этого есть ресурсы, не нужно изобретать велосипедов.

а если хотите узнать текущую то - Locale.getDefault().getLanguage(), например.

или гуглить, решений там несколько, все тривиальные.
...
Рейтинг: 0 / 0
android многоязычность
    #38676646
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джибсдля этого есть ресурсы, не нужно изобретать велосипедов.
+1. Для глобального - папка values, для русского - values-ru и т.д.
...
Рейтинг: 0 / 0
android многоязычность
    #38676648
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял уже спасибо
...
Рейтинг: 0 / 0
android многоязычность
    #38676688
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ïîíÿë óæå ñïàñèáî
...
Рейтинг: 0 / 0
android многоязычность
    #38695399
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В сети нашёл что надо использовать разные values-xx папки

Spanish, /values-es/strings.xml:
French, /values-fr/strings.xml:

А где поглядеть список буквенных сокрашений для различных стран?

Израиль к примеру IL или HEB(Hebrew - Иврит)
...
Рейтинг: 0 / 0
android многоязычность
    #38695439
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stackoverflow.com/questions/7973023/what-is-the-list-of-supported-languages-locales-on-android

P.S. Студия сама подсказывает при добавлении values, эклипс с адт тоже должен, по идее.
...
Рейтинг: 0 / 0
android многоязычность
    #38695533
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ссылку.

Hebrew, Israel (iw_IL)

тоесто преставлять надо только iw или полностью Hebrew, Israel (iw_IL)* ??
...
Рейтинг: 0 / 0
android многоязычность
    #38695613
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Areostar, не знаю как в эклипсе, вот так это делается в студии:
Правая кнопка мыши -> New -> Android resource directory
Выбираю Resource type "values", ниже слева добавляю Region и вижу все доступные коды.

Тебе нужен iw.
...
Рейтинг: 0 / 0
android многоязычность
    #38696963
Фотография Areostar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за скрин
...
Рейтинг: 0 / 0
android многоязычность
    #38707382
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой проект dxgettext для локализации приложений. В делфи я его широко использую, есть его версия и под java. Для перевода есть редактор poEdit. Думаю его намного удобнее использовать чем родной андроидный локализатор.
...
Рейтинг: 0 / 0
android многоязычность
    #38707421
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийДумаю его намного удобнее использовать чем родной андроидный локализатор.
На самом деле вряд-ли. Поясню: в студии достаточно создать что-нибудь отличное от values, например values-ru. Затем в коде просто объявлять любые не существующие переменные вида R.string.action_some_title, жамкать Alt+Enter и спокойно добавлять значение на русском в удобном диалоговом окне. Затем уже, когда код будет более менее правдоподобен конечному виду, можно и values привести к нужному виду (обычно к английскому).
...
Рейтинг: 0 / 0
android многоязычность
    #38709428
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное никогда не пользовались dxgettext? Смысл этого проекта в том что он может выбрать все строковые ресурсы для перевода в отдельный файл, этот файл передается человеку-переводчику, который с помощью poEdit в удобном виде переводит текст (т.е. они видит табличку с 2-мя колонками, слева н-р руские фразы, а справа на том языке, который он переводит), есть там и подгрузка новых данных без потери переведенных, потом из этого редактора выгружается другой файл, который и подключается в программу с помощью своей поддержки, которая автоматически заменяет в памяти программы строковый ресурс (поиск по фразе) на соответствующий перевод.
А в андроиде - пробовал в эклипсе - так там что нужно передать переводчику - сами файлы со строковыми ресурсами и у него поедет крыша или же он чего так отредактирует что нарушит структуру. Или я не прав?
...
Рейтинг: 0 / 0
android многоязычность
    #38709544
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разве переводчику что то нужно давать ?

это уже ваша работа, воткнуть тексты в ресурсы.
...
Рейтинг: 0 / 0
android многоязычность
    #38709684
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийИли я не прав?
dxgettext не видел, но встроенные средства так или иначе равны. Когда-то я писал клон jimm-а и для него была разработана утилита, в которой на мой взгляд наиболее удобно сделана возможность создавать переводы. В ней выбирался оригинал (англ), и дополнялся переводом. Т.е. было три столбца: название переменной (используется в коде), английская версия и перевод. Если dxgettext нечто подобное, то можно глянуть.

Остальное, на мой взгляд, не стоит внимания. Особенно выдирающее сообщения из исходных кодов, т.к. там много служебной информации, которая не может быть переведена, таких как log.*, интенты и акции.
...
Рейтинг: 0 / 0
android многоязычность
    #38709731
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола ПитерскийИли я не прав?
dxgettext не видел, но встроенные средства так или иначе равны. Когда-то я писал клон jimm-а и для него была разработана утилита, в которой на мой взгляд наиболее удобно сделана возможность создавать переводы. В ней выбирался оригинал (англ), и дополнялся переводом. Т.е. было три столбца: название переменной (используется в коде), английская версия и перевод. Если dxgettext нечто подобное, то можно глянуть.

Остальное, на мой взгляд, не стоит внимания. Особенно выдирающее сообщения из исходных кодов, т.к. там много служебной информации, которая не может быть переведена, таких как log.*, интенты и акции.

Сам редактор переводов смотрите в приложенной картинке.

Что выдирать из исходных кодов легко настраивется в файле-включить и в файле исключить. Вот для делфи из файла ggexclude.cfg :
[exclude-form-class]
TWebBrowser
TdxStatusBar
TrsPropSaver

; FastReport
TfrxReport
TfrxBarCodeView
TfrxGroupHeader
TfrxMasterData
TfrxDBDataSet
TfrxPictureView
TfrxMemoView
TfrxReportPage

[exclude-file]
report.dfm
Wizard.dfm

[exclude-dir]
...
Рейтинг: 0 / 0
android многоязычность
    #38709735
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плюс dxgettext в том что он выбирает для перевода только уникальные фразы - т.е. если у вас много кнопок с тектом "нажать сюда" - то к переводчику попадет только ОДНА эта фраза. А то что вы надеетесь самостоятельно при помощи онлайн переводчика перевести программу на 20 языков - это все туфта - нужен профессиональный переводчик, а они используют только poEdit.
...
Рейтинг: 0 / 0
android многоязычность
    #38709776
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийСам редактор переводов смотрите в приложенной картинке.
GNU Gettext for Delphi and C++ Builder к яве не имеет отношения.
Микола Питерскийнужен профессиональный переводчик, а они используют только poEdit
Боюсь, что это оффтоп в теме про яву и андроид в частности, т.к. это отклонение от стандарта локализации . У указанного ПО слишком узкое направление и до андроида оно не дотягивает, чуть меньше, чем полностью.
Не учитывает ни размера экрана, ни его положения, ни способа управления и т.д.
...
Рейтинг: 0 / 0
android многоязычность
    #38709831
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола ПитерскийСам редактор переводов смотрите в приложенной картинке.
GNU Gettext for Delphi and C++ Builder к яве не имеет отношения.
Микола Питерскийнужен профессиональный переводчик, а они используют только poEdit
Боюсь, что это оффтоп в теме про яву и андроид в частности, т.к. это отклонение от стандарта локализации . У указанного ПО слишком узкое направление и до андроида оно не дотягивает, чуть меньше, чем полностью.
Не учитывает ни размера экрана, ни его положения, ни способа управления и т.д.

Так ты смотри Gettext for Java - в сети есть пример использования его под Java. В делфи есть свой встроенный локализатор еще со времен делфи7 - так что кое-кто тоже может сказать - что это "отклонение от стандартов". И не понял - причем здесь размер экрана и т.д. (русский текст всегда длиннее иностранного)?
Декомпилируй Навител навигатор для АНДРОИДА и увидишь что они используют именно .mo файлы для локализации из этой программы poEdit, а не андроидную стандартную локализацию.
...
Рейтинг: 0 / 0
android многоязычность
    #38709837
WebPrj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Микола Питерский и увидишь что они используют именно .mo файлы для локализации из этой программы poEdit, а не андроидную стандартную локализацию.
дак в чём проблема?
Если студия не умеет делать импорт экспорт обычного текстовика-файла с переводом, то это проблема студии.
Или умеет?
...
Рейтинг: 0 / 0
android многоязычность
    #38709846
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийИ не понял - причем здесь размер экрана и т.д. (русский текст всегда длиннее иностранного)?
Я-же привел ссылку. Какой смысл продолжать беседу, если не известны даже азы?

Хинт: в андроиде встроенный механизм автовыбора необходимых ресурсов. Условия их выбора можно подсмотреть по ссылке или на картинке ниже. Грубо говоря подключаемый языковой ресурс может зависеть от всех перечисленных условий. Например с ландшафте подхватится полный текст, а в портрете - сокращенный и т.д.

Навител не лучший пример ПО для андроида, его явно писали с оглядкой на поддержу для большого брата. Тут он придаток, а не основной проект. Как и 2гис. Оба этих приложения стоило с самого начала писать с оглядкой не на ББ, а на целевое устройство.
...
Рейтинг: 0 / 0
android многоязычность
    #38709859
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Вот нагуглил: http://www.alek.ws/blog/2014/Apr/08/gnu-gettext-in-java.html

Добавлю что есть gettext и для PHP - так что это очень удобный проект - просто его надо попробовать и поработать в нем и все "Стандартные" локализации после него идут лесом. poEdit - это не просто редактор - это программа-переводчик - т.е. вы один раз переводите фразу и она сохраняется в базе и потом автоматом переводится такая же фраза, ну там много таких класных фишек и это надо пробовать. Файлик .mo - это скомпиленый для одного языка перевод и он затем обрабатывается средством поддержки в соответствующем языке, т.е. могут автоматически заменяться фразы, найденные в этом файле или же принудительно через функцию _("Привет мой свет!").
...
Рейтинг: 0 / 0
android многоязычность
    #38709874
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanХинт: в андроиде встроенный механизм автовыбора необходимых ресурсов. Условия их выбора можно подсмотреть по ссылке или на картинке ниже. Грубо говоря подключаемый языковой ресурс может зависеть от всех перечисленных условий. Например с ландшафте подхватится полный текст, а в портрете - сокращенный и т.д.


Ну так это и хорошо - у тебя есть стандартный файл локализации ТОЛЬКО для русского языка для портрета и ланшафта. Н-р "Выводит список" и "Вывод списка с подробной информацией". При повороте экрана грузится сотвествующий ресурс, затем срабатывает поддержка gnugettext и переводит эти соотвесттвующие фразы.
...
Рейтинг: 0 / 0
android многоязычность
    #38709915
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийПри повороте экрана
Чтобы прикрутить левую фичу мне придется писать больше кода:
1. Загрузка текстов, что в свою очередь меня лишает использования методов, где указывается идентификатор строки.
2. Обработка смены конфигурации, где еще и определять при каких условиях какой файл подгружать. С этим прекрасно сам андроид справляется, лучше чем большинство начинающих программистов для андроида.
...
Рейтинг: 0 / 0
android многоязычность
    #38709943
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола ПитерскийПри повороте экрана
Чтобы прикрутить левую фичу мне придется писать больше кода:
1. Загрузка текстов, что в свою очередь меня лишает использования методов, где указывается идентификатор строки.
2. Обработка смены конфигурации, где еще и определять при каких условиях какой файл подгружать. С этим прекрасно сам андроид справляется, лучше чем большинство начинающих программистов для андроида.

1. Никто не запрещает по прежнему использовать идентификатор строки
2. Обрабатывать ничего не надо - андроид сам это сделает - тут вмешательство минимально - в событии старта активности вызываем метод gnutext который определит язык в системе и он сам будет знать какой файлик (класс жавы) подгрузить, затем когда все ресурсы загрузятся вызывам другую функцию, которая и выполнит перевод всех строковых ресурсов, эту же функцию вызываем н-р в событии поворота устр-ва.
Можете использовать попрежнему строковые ресурсы, а можно и без них _('Привет'). Так что вмешаетельства в ваш код тут вообще минимальны. Если кто смог с эклипса перелезть на студию - то легко сможет освоить и эту систему.
...
Рейтинг: 0 / 0
android многоязычность
    #38709953
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийПри повороте экрана грузится сотвествующий ресурс, затем срабатывает поддержка gnugettext и переводит эти соотвесттвующие фразы.

Если кто не понял - при повороте экрана все происходит как и раньше - андроид грузит ваш родной строковый ресурс локализации, который по умолчанию, т.е. добавлять как раньше для других языков эти ресурсы уже не надо - т.к. перевод будет делать gnutext по своим файлам *.mo, которые преобразуются в соответсвующий класс java.
...
Рейтинг: 0 / 0
android многоязычность
    #38709957
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийЕсли кто не понял
Я не понял, можно пример кода с минимальным вмешательством, где выбирается файл хотя-бы по ориентации экрана? А то смахивает на общение слепого с глухим.
...
Рейтинг: 0 / 0
android многоязычность
    #38709971
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола ПитерскийЕсли кто не понял
Я не понял, можно пример кода с минимальным вмешательством, где выбирается файл хотя-бы по ориентации экрана? А то смахивает на общение слепого с глухим.

Во это точно - я тоже хотел так написать :) Ничего из gnutext дополнительно не выбирается см. предыдущее мое сообщение, все остается как и было - андроид сам подгружает нужный ресурс и лишь потом gnutext просматривает все "значения строк" и изменяет если найдет в своем .mo файле строки на соответсвующие переводу. А все остается как и было раньше.
...
Рейтинг: 0 / 0
android многоязычность
    #38709979
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийандроид сам подгружает нужный ресурс и лишь потом gnutext просматривает все
Это ничего не пояснило.

Вот примеры вызовов:
Код: java
1.
2.
Stringn somText = mContext.getString(R.string.command_read_password);
Toast.makeText(this, R.string.action_settings, Toast.LENGTH_SHORT).show();


Андроид сам подгрузил строку из нужного ресурса, я указал только константу. Как оно переведет мне это?
...
Рейтинг: 0 / 0
android многоязычность
    #38709984
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, если подробно - то откомпилированные файлы *.mo , полученные из программы переводчика средствами утилит gnugettex переводятся в жава классы, н-р было 20 файлов языков, получилось 20 жава классов (я все это дело проверил - классы формирует нормально), вы эти классы подключаете к проекту, подключаете gnugettex и вызываете его функцию, которая определит какой жава клас вызывать (в зависимости от языка системы).
В любых событиях, которые подгружают новые ресурсы вы после загрузки этих ресурсов вызываете функцию, которая перебирает все строковые ресурсы и заменяет их из из соответствующего класса-перевода. Вроде все.
...
Рейтинг: 0 / 0
android многоязычность
    #38709992
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийВ любых событиях, которые подгружают новые ресурсы вы после загрузки этих ресурсов вызываете функцию, которая перебирает все строковые ресурсы и заменяет их из из соответствующего класса-перевода. Вроде все.
В общем, как я и думал, она не будет работать, если указывать R-константы и не сможет сама определить конфигурацию устройства.
Я погуглил на предмет применения её на андроид-девайсах, её используют те, кто привык её использовать на ББ и/или портирует большие проекты на смарты/планшеты.

Еще раз: в этом коде константы R.string.*, они числовые, а не строковые:
wadman
Код: java
1.
2.
Stringn somText = mContext.getString(R.string.command_read_password);
Toast.makeText(this, R.string.action_settings, Toast.LENGTH_SHORT).show();


И строки тут будут выбираться средой в зависимости от условий (см. выше) из разных строковых ресурсов.

gnugettext не осилит такое на автомате.
...
Рейтинг: 0 / 0
android многоязычность
    #38709995
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да уж, столько геморроя из-за ничего )
...
Рейтинг: 0 / 0
android многоязычность
    #38709996
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола Питерскийандроид сам подгружает нужный ресурс и лишь потом gnutext просматривает все
Это ничего не пояснило.

Вот примеры вызовов:
Код: java
1.
2.
Stringn somText = mContext.getString(R.string.command_read_password);
Toast.makeText(this, R.string.action_settings, Toast.LENGTH_SHORT).show();


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

Конкретно для этого случая:

Код: java
1.
2.
Stringn somText = _(     mContext.getString(R.string.command_read_password) );
Toast.makeText(this, _(  R.string.action_settings), Toast.LENGTH_SHORT).show();
...
Рейтинг: 0 / 0
android многоязычность
    #38710001
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийwadmanпропущено...

Это ничего не пояснило.

Вот примеры вызовов:
Код: java
1.
2.
Stringn somText = mContext.getString(R.string.command_read_password);
Toast.makeText(this, R.string.action_settings, Toast.LENGTH_SHORT).show();


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

Конкретно для этого случая:

Код: java
1.
2.
Stringn somText = _(     mContext.getString(R.string.command_read_password) );
Toast.makeText(this, _(  R.string.action_settings), Toast.LENGTH_SHORT).show();



ошибся - вот так:

Код: java
1.
2.
Stringn somText =  mContext.getString(  _( R.string.command_read_password) );
Toast.makeText(this, _(  R.string.action_settings), Toast.LENGTH_SHORT).show();
...
Рейтинг: 0 / 0
android многоязычность
    #38710003
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийКонкретно для этого случая:
Еще один вопросик: опыт применения имеется или это теоретическое применение (в этом примере)? :)
Это точно работает?
...
Рейтинг: 0 / 0
android многоязычность
    #38710009
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman
Код: java
1.
2.
Stringn somText = mContext.getString(R.string.command_read_password);
Toast.makeText(this, R.string.action_settings, Toast.LENGTH_SHORT).show();


И строки тут будут выбираться средой в зависимости от условий (см. выше) из разных строковых ресурсов.

gnugettext не осилит такое на автомате.

Не понял в чем проблема? Сдесь же андроид и выбирает строку в зависимости от условий (положения, разрешения и т.д.)

Код: java
1.
R.string.command_read_password




а затем уже срабатываеет функция gnugettext, которая и выполнит перевод:
Код: java
1.
_( R.string.command_read_password)
...
Рейтинг: 0 / 0
android многоязычность
    #38710010
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийА в андроиде - пробовал в эклипсе - так там что нужно передать переводчику - сами файлы со строковыми ресурсами и у него поедет крыша или же он чего так отредактирует что нарушит структуру. Или я не прав?
можно посмотреть сюда

gettext несомненно хороший инструмент, но создатели андроида решили реализовать локализацию иначе, поэтому на прикручивание gettext имхо уйдет намного больше сил, чем на альтернативное решение.
...
Рейтинг: 0 / 0
android многоязычность
    #38710013
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийНе понял в чем проблема?
Проблема в том, что андроид выберет строку где-то у себя внутри, как таковой строки здесь не будет. Здесь одна из констант автоматически сгенерированного файла R.java:
Код: java
1.
public static final int action_settings=0x7f0a0009;
...
Рейтинг: 0 / 0
android многоязычность
    #38710016
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола ПитерскийКонкретно для этого случая:
Еще один вопросик: опыт применения имеется или это теоретическое применение (в этом примере)? :)
Это точно работает?

В делфи давно использую - все корректно работает. В андроиде не вижу проблем - классы жава с соответсвующими переводами лично получил и проверил, далее реализовать не пробовал т.к. мультиязычных приложений пока нет, может появятся только через год т.к. сейчас в основном пишу на делфи, пхп и остальное связанное с вэб.
Это на первый взгляд кажется что это гемор - но один раз проделав понимаешь насколько это просто и естественно.
...
Рейтинг: 0 / 0
android многоязычность
    #38710018
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийЭто на первый взгляд кажется что это гемор - но один раз проделав понимаешь насколько это просто и естественно.
Как я и писал, для андроида это не лучший выбор. К тому же неполноценно работающий.
...
Рейтинг: 0 / 0
android многоязычность
    #38710024
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола, я выражу свой вопрос кодом
Код: xml
1.
<TextView text="@strings/wtf"/>
...
Рейтинг: 0 / 0
android многоязычность
    #38710029
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaМикола, я выражу свой вопрос кодом
Код: xml
1.
<TextView text="@strings/wtf"/>



делаем функцию, которая переберет все классы TextView и переведет их строковые ресурсы, естественно это при выводе на экран, далее повторяем эту функцию во всех событиях, связанных с повторным чтением ресурсов.
...
Рейтинг: 0 / 0
android многоязычность
    #38710036
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийделаем функцию, которая переберет все классы TextView
Это компилируется в бинарный xml, где соответственно тоже заменится числом, которое я указал выше.
...
Рейтинг: 0 / 0
android многоязычность
    #38710044
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийделаем функцию, которая переберет все классы TextView
у нас не только классы TextView, есть и другие контролы со строками, например Spinner. представляешь себе задержу на старте и при каждом повороте экрана, нужную на рекурсивный поиск всех контролов и замену их текста? кроме того у нас еще есть plurals, т.е. строка которая пойдет переводчику будет выглядеть как "%s попугаев", а в TextView на момент вызова gettext уже будет стоять "38 попугаев"

и все это ради возможности иметь отдельный файл для переводчика? я тебе сходу придумаю кучу способов не париться так жестко. один из них (кошерный) я уже запостил выше.
...
Рейтинг: 0 / 0
android многоязычность
    #38710051
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЭто компилируется в бинарный xml, где соответственно тоже заменится числом, которое я указал выше.
он имеет в виду где-то на onPostCreate и на onConfigurationChanged сканить все контейнеры и контейнеры в контейнерах на предмет TextView, брать их getText() и менять его на _(getText()) .

з.ы. кстати кроме этого хозяйства у нас еще есть куча соплей в виде actionbar, navigationbar и наверняка чего-то еще, про что я сразу и не вспомнил. все это тоже придется при старте и поворотах перекопать.
...
Рейтинг: 0 / 0
android многоязычность
    #38710052
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
з.ы. с plurals я прогнал, их просто так в xml не всунешь
...
Рейтинг: 0 / 0
android многоязычность
    #38710061
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaи все это ради возможности иметь отдельный файл для переводчика?
Есть такой инструмент: Google translate toolkit, если разобраться, то толковая штука, в т.ч. позволяет отправлять файлы ресурсов профессионалам или делиться с друзьями для совместного перевода.

Гугл думает о своих. :)
...
Рейтинг: 0 / 0
android многоязычность
    #38710071
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЕсть такой инструмент: Google translate toolkit
ну так 16381797
...
Рейтинг: 0 / 0
android многоязычность
    #38710073
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashawadmanЕсть такой инструмент: Google translate toolkit
ну так 16381797
Сори, проглядел.
...
Рейтинг: 0 / 0
android многоязычность
    #38710085
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanchpashaи все это ради возможности иметь отдельный файл для переводчика?
Есть такой инструмент: Google translate toolkit, если разобраться, то толковая штука, в т.ч. позволяет отправлять файлы ресурсов профессионалам или делиться с друзьями для совместного перевода.

Гугл думает о своих. :)

Да - только там:
• Android Resource (.xml)
• Application Resource Bundle (.arb)
• Chrome Extension (.json)
• GNU gettext-based (.po)

Вот последняя строка это и есть .po файл, который генерирует gettext для редактора poEdit. И в гугле знают что это классная вещь:)
...
Рейтинг: 0 / 0
android многоязычность
    #38710098
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийВот последняя строка это и есть .po файл, который генерирует gettext для редактора poEdit. И в гугле знают что это классная вещь:)
Чтобы перейти на современные рельсы нормальный разработчик обязан побеспокоиться о старых/предыдущих версиях и их предшественниках и обеспечить их поддержку. Это логично.
...
Рейтинг: 0 / 0
android многоязычность
    #38710100
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийВот последняя строка это и есть .po файл, который генерирует gettext для редактора poEdit. И в гугле знают что это классная вещь:)но почему-то к андроиду ее не прикрутили
...
Рейтинг: 0 / 0
android многоязычность
    #38710129
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaМикола ПитерскийВот последняя строка это и есть .po файл, который генерирует gettext для редактора poEdit. И в гугле знают что это классная вещь:)но почему-то к андроиду ее не прикрутили
К делфи и пхп тоже ее не прикрутили. Насчет того что медленно будет выводится приложение при повороте экрана из-за перевода - врядли - одно дело изменять объекты в памяти - а другое производить дисковое чтение из анроидных ресурсов и также перерисовывать контролы с новым текстом. Меня не столько напрягает невозможность иметь отдельный файл для перевода, как вероятность многократного дублирования текста в контролах приложения н-р "Название, закрыть и т.д" их может быть много одинаковых в контролах с разными идентификаторами и они разбросаны по файлу ресурсов и при переводе надо проделывать лишнюю работу, также вы отдали на перевод файл с ресурсом и вдруг решили переименовать идентификатор этой строки - все основной файл переведенным уже нельзя заменить, аналогично вы добавили новый контрол в этом случае тоже нельзя файлы менять, а надо ручками найти изменения и их добавить. Всех этих недостатков нет в gnugettext.
А может я и не прав - т.к. есть пока в андроиде небольшой опыт и только в эклипсе.
...
Рейтинг: 0 / 0
android многоязычность
    #38710148
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийА может я и не прав - т.к. есть пока в андроиде небольшой опыт и только в эклипсе.
Есть правила и рекомендации, как называть приватные переменные, как называть кнопки, окна, пункты меню и как называть переменные для их текстового представления и т.п.
И следуя им, дублирование текста избегается само собой.
Мне кажется, что для андроида это надуманная проблема.
...
Рейтинг: 0 / 0
android многоязычность
    #38710182
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот мне не нравится эклипс по причине - если я пишу одноязычное приложение и пытаюсь текст контрола написать прямо в исходнике - то он этот текст подчеркивает (как в настройках отключить эту проверку для всего приложения я не нашел) и предлагает поместить его в файл ресурсов и соответственно мне надо придумать название идентификатора этого текста в ресурсе - т.е. много лишней работы, которую я не люблю делать. И кроме того почему ему (эклипсу) не пройтись по всем строковым ресурсам и не сказать что уже есть такой ресурс с текстом "название:" и не предложить в исходнике присвоить контролу этот идентификатор?
Может в студии это сделано лучше? Год назад смотрел студию - там у меня она висла при создании проекта - т.е. я ее так и не увидел в действии.
...
Рейтинг: 0 / 0
android многоязычность
    #38710191
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийВот мне не нравится эклипс по причине
Это не эклипс, а ADT, который так или иначе пишут те-же или при плотном сотрудничестве с ними, кто и андроид-студию пишет. Так что и наследие и одинаковое поведение - норма. В т.ч. и перенос текста в ресурсы.
Как я и писал ранее, я сразу пишу константу вида R.string.* а тут зависит от того, что мне нужно, если меню, то action_, если заголовок окна, то title_ и т.п. В общем-то далее просто смотришь в списке, что есть похожего и либо пишешь несуществующее название константы (и далее создаешь её тут же из диалогового окна), либо выбираешь из того, что есть.
...
Рейтинг: 0 / 0
android многоязычность
    #38710202
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийВот мне не нравится эклипс по причине - если я пишу одноязычное приложение и пытаюсь текст контрола написать прямо в исходнике - то он этот текст подчеркивает (как в настройках отключить эту проверку для всего приложения я не нашел) и предлагает поместить его в файл ресурсов и соответственно мне надо придумать название идентификатора этого текста в ресурсе - т.е. много лишней работы
не так уж и много. может получится так, что через год ты вдруг подумаешь, что тебе нужно многоязычное приложение, и начнешь выискивать строки. вот тебе и пытаются не дать выстрелить в ногу, а ты в свою очередь можешь игнорировать предупреждения. заодно напишешь в одном месте cancel, в другом discard, в третьем exit - по настроению, хотя все три раза хотел return ;)

Микола ПитерскийИ кроме того почему ему (эклипсу) не пройтись по всем строковым ресурсам и не сказать что уже есть такой ресурс с текстом "название:" и не предложить в исходнике присвоить контролу этот идентификатор?
напиши плагин. расскажешь об ощущениях.


Микола ПитерскийМожет в студии это сделано лучше? there is no place like home
...
Рейтинг: 0 / 0
android многоязычность
    #38710426
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийМеня не столько напрягает невозможность иметь отдельный файл для перевода, как вероятность многократного дублирования текста в контролах приложения н-р "Название, закрыть и т.д" их может быть много одинаковых в контролах с разными идентификаторами и они разбросаны по файлу ресурсов

что за ерунда.

если я создаю
<string name ="close">Закрыть</string>

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

да и проще поменять, если вдруг нужно будет что то изменить.
...
Рейтинг: 0 / 0
android многоязычность
    #38710623
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джибсчто за ерунда
имеется в виду, что когда обширная предметная область, можно написать НЕ одно и то же в двух разных местах одними и теми же словами.
...
Рейтинг: 0 / 0
android многоязычность
    #38710669
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaДжибсчто за ерунда
имеется в виду, что когда обширная предметная область, можно написать НЕ одно и то же в двух разных местах одними и теми же словами.
Ну да, лишние 100 байт это "проблема" в современном цифровом мире.
...
Рейтинг: 0 / 0
android многоязычность
    #38710682
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanНу да, лишние 100 байт это "проблема" в современном цифровом мире.
имеется в виду, что проблема не в самом наличии дубликатов, а в том, что люди, которые будут переводить, станут натыкаться на одни и те же слова по несколько раз подряд.
...
Рейтинг: 0 / 0
android многоязычность
    #38715768
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Установил себе наконец Android Studio 0.8 - по сравнению в эклипсом вещь уже стоящая !!! Мультиязычность тоже сделана классно.
Но не понял следующий момент: вот я например создал текстовый ресурс н-р name_offer и его значение "Наименование товара:" и создал для него несколько ресурсов для разных языков - тут все клас, а теперь мне надо переименовать "Наименование товара:" в
"Наименование:" - как тут действовать? Открывать ресурс по умолчанию т.е. лезть в values\strings.xml и менять, ручками, а затем вызывать "edit translation" для каждого языка, искать этот ключ там в табличке и переводить или есть какой-то другой лучший способ?
...
Рейтинг: 0 / 0
android многоязычность
    #38715809
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерский, открываешь любой ресурс, встаешь на название нужной строки, жмешь Shift+F6 и вводишь новое название. Всё.
...
Рейтинг: 0 / 0
android многоязычность
    #38715837
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола Питерский, открываешь любой ресурс, встаешь на название нужной строки, жмешь Shift+F6 и вводишь новое название. Всё.

Проверил - меняет но не то что мне нужно - если надо поменять name_offer на name_offer_1 - то оно подходит и меняет ид ресурса во всех языковых файлах, но мне надо поменять сам текст переводов во всех языках. Кроме того если в проекте например 1000 многоязычных словосочетаний для 20 языков и надо часто и многократно переименовывать не идентификатор строкового ресурса а сам текст, т.е. в процемме работы переименовываем только для основного языка и только когда надо сделать релиз - только тогда надо каким-то образом найти все "переименованные" тестовые ресурсы в других языках чтобы перевести их. Как это сделать?
...
Рейтинг: 0 / 0
android многоязычность
    #38715845
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийно мне надо поменять сам текст переводов во всех языках.
Шутишь?
...
Рейтинг: 0 / 0
android многоязычность
    #38715862
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола Питерскийно мне надо поменять сам текст переводов во всех языках.
Шутишь?

Да какая тут шутка? Я пока только понял что переименовать значение текстового ресурса нельзя, а только каждый раз создавать новый. Но это же заколебаешся так делать. Если ты переименовал значение тестового ресурса в языке по умолчанию ручками в файле - а в остальных языках это сразу не сделал - то потом не найдеш вот такие "забытые" несоответсвия между основным языком и переводом.
...
Рейтинг: 0 / 0
android многоязычность
    #38715863
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийwadmanпропущено...

Шутишь?

Да какая тут шутка? Я пока только понял что переименовать значение текстового ресурса нельзя, а только каждый раз создавать новый. Но это же заколебаешся так делать. Если ты переименовал значение тестового ресурса в языке по умолчанию ручками в файле - а в остальных языках это сразу не сделал - то потом не найдеш вот такие "забытые" несоответсвия между основным языком и переводом.
А то, что потом так же можешь и вовсе забыть перевести? Текстовый xml - это только для тебя, далее он станет "цифровым" и названия значения не будут иметь. Просто создавай новую строку, с новым названием и новым текстом.
...
Рейтинг: 0 / 0
android многоязычность
    #38715870
WebPrj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Микола Питерский,
imho это будет доделано в след.версиях. Или это вообще не дело платформы, а дело аддонов к ней и приблуд.
В принципе, сабж как раз об этом.
...
Рейтинг: 0 / 0
android многоязычность
    #38715883
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot wadman
А то, что потом так же можешь и вовсе забыть перевести? Текстовый xml - это только для тебя, далее он станет "цифровым" и названия значения не будут иметь. Просто создавай новую строку, с новым названием и новым текстом.[/quot]

Т.е. если у меня лабель c именем offer_name и он соотвествует значению "наименование" и мне начальник сказал переименовать его в "наименование товара" - то я должен создать новый ресурс н-р offer_name1 со значением "наименование товара", затем он скажет что всетаки лучше переименовать в "номенклатура" то значит опять создаем новый offer_name2 со значением "номенклатура"?
А можно как увидеть тогда что "старые" строки нигде не используются и удалить сразу их во всех языковых файлах?
...
Рейтинг: 0 / 0
android многоязычность
    #38715886
WebPrj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Микола Питерский,
Я думаю, шеф скажет, за один день написать приблуду.
Кторая пробежит по файлам и подсветит те строки, которые вообще не исп-тся и т.д.
)
...
Рейтинг: 0 / 0
android многоязычность
    #38715893
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebPrj,

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

А тут вроде ничего похожего не нашел.
...
Рейтинг: 0 / 0
android многоязычность
    #38715900
WebPrj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Микола Питерский,
Delphi платформе сколько лет?
...
Рейтинг: 0 / 0
android многоязычность
    #38715907
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да еще и надо тратить время на выдумывание английского "идентификатора" строкового ресурса, который должен соответсвовать его содержимому.

А вообще можно ли для языка по умочанию использовать русский, а для английского создать дополнительный языковый ресурс (\values-en\)?
Ничего там у англоязычных пользователей не перевернется?
...
Рейтинг: 0 / 0
android многоязычность
    #38715917
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebPrjМикола Питерский,
Delphi платформе сколько лет?

Так в делфи ничего подобного нет - это все сторонний проект (gnugettext), который есть и для Жавы. См. эту тему выше.
...
Рейтинг: 0 / 0
android многоязычность
    #38715922
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийА вообще можно ли для языка по умочанию использовать русский, а для английского создать дополнительный языковый ресурс (\values-en\)?
Почему-бы и нет?
...
Рейтинг: 0 / 0
android многоязычность
    #38715925
WebPrj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
тогда у тебя при отсутствии китайского покажет русский
...
Рейтинг: 0 / 0
android многоязычность
    #38715929
WebPrj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Микола ПитерскийWebPrjМикола Питерский,
Delphi платформе сколько лет?
Так в делфи ничего подобного нет - это все сторонний проект (gnugettext), который есть и для Жавы. См. эту тему выше.
я так и написал - для D сделали, т.к. он старший брат))
...
Рейтинг: 0 / 0
android многоязычность
    #38717070
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebPrjтогда у тебя при отсутствии китайского покажет русский
Это уже другой вопрос. Суть в том, что values - ресурс, используемый по умолчанию.

Кстати, китайцы не делают из этого проблемы. Смело всё пишут в values и "пусть весь мир подождет" пусть переводят те, кому это нужно. :)
...
Рейтинг: 0 / 0
android многоязычность
    #38875533
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в студии сделать чтобы строковый ресурс в *.java "подсвечивался" и помечался желтым квадратом также как это сделано для .XML.
...
Рейтинг: 0 / 0
android многоязычность
    #38875563
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийКак в студии сделать чтобы строковый ресурс в *.java "подсвечивался" и помечался желтым квадратом также как это сделано для .XML.
Ничего не понял... Оно и так подсвечивается, только менее явно (в теме по умолчанию). Цвет задается темой.

На рисунке строка с ресурсом и ниже хинт.
...
Рейтинг: 0 / 0
android многоязычность
    #38875579
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия студии 1.1 - ничего не подсвечивает. Может и правда от темы зависит - подскажи, пожалуйста, как тему сменить?
...
Рейтинг: 0 / 0
android многоязычность
    #38875590
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийВерсия студии 1.1 - ничего не подсвечивает.
А там точно ссылка на ресурс как у меня? У меня впечатление, что там чистый текст...

Темы меняются в Settings -> Editor -> Color & Fonts
Скачать дополнительные темы отсюда http://www.ideacolorthemes.org/home/
...
Рейтинг: 0 / 0
android многоязычность
    #38875595
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot wadman]Микола ПитерскийА там точно ссылка на ресурс как у меня? У меня впечатление, что там чистый текст...

Там чистый текст - а я хотел чтоб он подсвечивался - чтоб я знал что перенести в ресурс.
...
Рейтинг: 0 / 0
android многоязычность
    #38875603
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если там ресурс - то он и в этой теме подсвечивается. На последнюю строчку я щелкнул и появился ресурс.
...
Рейтинг: 0 / 0
android многоязычность
    #38875611
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийwadmanА там точно ссылка на ресурс как у меня? У меня впечатление, что там чистый текст...

Там чистый текст - а я хотел чтоб он подсвечивался - чтоб я знал что перенести в ресурс.
Хм, строка и так выделяется цветом. К примеру, зеленым, как у тебя. Студия не считает все текстовые строки в исходном коде обязательными для переноса в ресурсы, т.к. там много чего может быть начиная от тэгов, заканчивая отладочной информацией лог ката. Напротив, в xml строки не должны использоваться, потому что xml в принципе ресурс и потому приветствуются ссылки на другие ресурсы.
...
Рейтинг: 0 / 0
android многоязычность
    #38875624
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanХм, строка и так выделяется цветом. К примеру, зеленым, как у тебя. Студия не считает все текстовые строки в исходном коде обязательными для переноса в ресурсы, т.к. там много чего может быть начиная от тэгов, заканчивая отладочной информацией лог ката. Напротив, в xml строки не должны использоваться, потому что xml в принципе ресурс и потому приветствуются ссылки на другие ресурсы.

Ясно - придется значит "вручную" искать все НУЖНЫЕ строки, которые не в ресурсах и помещать их туда.
...
Рейтинг: 0 / 0
android многоязычность
    #38875637
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То что они помечены зеленым - это замечательно, но слишком много в проекте .java, кроме того многие части кода свернуты - придется все их ручками разворачивать, просматривать и "лампочкой" помещать их в ресурс. Думал что можно как-то это дело ускорить.
...
Рейтинг: 0 / 0
android многоязычность
    #38875642
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийДумал что можно как-то это дело ускорить.
Поиск по двойным кавычкам. Должен заглядывать во все места, и в схлопнутые в том числе.
...
Рейтинг: 0 / 0
android многоязычность
    #38875644
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, спаcибо огромное - это то что нужно! Вот я туплю :)
...
Рейтинг: 0 / 0
android многоязычность
    #38875721
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное опять туплю - но первый раз всетаки перевожу. Добавил к локализации еще один язык и для него не перевел все строки, при компиляции соответсвенно ошибка с предупреждением об этом - все замечательно, Ноооо... к ошибочке еще куча пояснения с ним и непонятки:

Explanation for issues of type "MissingTranslation":
If an application has more than one locale, then all the strings declared
in one language should also be translated in all other languages.
If the string should not be translated, you can add the attribute
translatable="false" on the <string> element, or you can define all your
non-translatable strings in a resource file called donottranslate.xml. Or,
you can ignore the issue with a tools:ignore="MissingTranslation"
attribute.

Попробовал создать файлик values\donottranslate.xml - поместил туда ресурсы - но они всеравно видны в Translations Editor и они там даже не отмечены как "непереводимые". Ладно создал еще файлик и там ресурс вписал:

Код: java
1.
2.
3.
<resources tools:ignore="MissingTranslation" xmlns:tools="http://schemas.android.com/tools">
    <string name="app_name100">Привет</string>
</resources>



но этот ресурс снова виден в Translations Editor и доступен для перевода.

Почему так?
...
Рейтинг: 0 / 0
android многоязычность
    #38875765
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще непонятно как с этим Translations Editor работать - у меня куча pref_ которых несколько десятков, которые к переводу не нужны и они помечены так:
Код: java
1.
  <string name="pref_FTP_address" translatable="false">pref_FTP_address</string>



А они в редакторе всеравно торчат. Еще в редакторе сортировка возможна только по полю Key, а как отсортировать по другим полям? Ведь может быть несколько ключей ресурсов с одинаковым содержанием - и эти дубли выходит не найти и надо каждый переводить? Да и в редактор не попадают значения из массивов:

Код: java
1.
2.
3.
4.
5.
6.
   <string-array name=type_name">
        <item>все в порядке</item>
        <item>наименование неверно</item>
        <item>цена неверна</item>
        <item>не найден</item>
    </string-array>
...
Рейтинг: 0 / 0
android многоязычность
    #38875807
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийА они в редакторе всеравно торчат.
Это как раз логично. Сегодня они непереводимые, завтра - переводимые и наоборот. Какой смысл скрывать?
Вот если-бы вдруг в дельфи в дизайне ставишь button.visible = false и кнопка-бы исчезала... Было бы очень весело формочки рисовать, залезая в dfm и возвращать видимость вручную.

По остальному не скажу, не сталкивался.
...
Рейтинг: 0 / 0
android многоязычность
    #38875825
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола ПитерскийА они в редакторе всеравно торчат.
Это как раз логично. Сегодня они непереводимые, завтра - переводимые и наоборот. Какой смысл скрывать?
Вот если-бы вдруг в дельфи в дизайне ставишь button.visible = false и кнопка-бы исчезала... Было бы очень весело формочки рисовать, залезая в dfm и возвращать видимость вручную.

Ну так редактор - это табличка, в которой должны поддерживаться сортировка и фильтры - а тут вообще этим и не пахнет.
Установил бы я сортировку по значению и убрал-бы все дубли - также редактор должен помочь и все зависимости по ключам перевести на один ключ, установил-бы фильтр на "только переводимые" и видел-бы только нужное для перевода. Поиска тоже в редакторе нет. Одно дело когда простое приложение переводить с несколькими десятками строк, а другое - когда строк сотни, а может и тысячи. Попробовал 10 языков добавить - и ужас - редактор поля вообще крохотными сделал.
И как люди переводят? Может есть какой другой редактор?
...
Рейтинг: 0 / 0
android многоязычность
    #38875836
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЭто как раз логично. Сегодня они непереводимые, завтра - переводимые и наоборот. Какой смысл скрывать?

Есть непереводимое навсегда вот:

Код: java
1.
2.
3.
4.
5.
6.
7.
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <CheckBoxPreference
        android:key="@string/pref_dialog_sound"
....
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="pref_dialog_sound" translatable="false">pref_dialog_sound</string>
...
Рейтинг: 0 / 0
android многоязычность
    #38875847
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийа тут вообще этим и не пахнет.
В сплывающем меню на этот счет есть поясняющий текст: Open Translation Editor (Preview) . Нам остается только ждать... :)

П.С. На Западе перевод предпочитают отдавать на сторону, а у них свои, более совершенные, средства для удобного процесса перевода.
...
Рейтинг: 0 / 0
android многоязычность
    #38875857
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола Питерскийа тут вообще этим и не пахнет.
В сплывающем меню на этот счет есть поясняющий текст: Open Translation Editor (Preview) . Нам остается только ждать... :)

П.С. На Западе перевод предпочитают отдавать на сторону, а у них свои, более совершенные, средства для удобного процесса перевода.

В делфи для этих целей всегда пользовался редактором poEdit - странно почему гугл если не хочет делать свой нормальный редактор не сделает порт для импорта\экспорта в poEdit. Это в 1000 раз проще чем делать свой редактор уровня poEdit.
Проф. переводчики обычно используют только poEdit.
...
Рейтинг: 0 / 0
android многоязычность
    #38875895
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийПроф. переводчики обычно используют только poEdit.
У меня дежавю попробуй https://translate.google.com/toolkit
...
Рейтинг: 0 / 0
android многоязычность
    #38875946
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийНу так редактор - это табличка, в которой должны поддерживаться сортировка и фильтры - а тут вообще этим и не пахнет
вообще-то какое-то время назад этого редактора и вовсе не было. потом его добавили в 0.8.7 (кстати по моей наколке). так что, если чего не хватает и можешь обосновать зачем оно тебе - ноги в руки и в багтрекер, смысл тут жаловаться? К слову, желание отключать непереводимые строки и сортировать по переводу вполне разумно (впрочем дубликаты строк можно и по-другому искать, есть соответствующий lint-анализ)
...
Рейтинг: 0 / 0
android многоязычность
    #38876040
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaесли чего не хватает и можешь обосновать зачем оно тебе - ноги в руки и в багтрекер, смысл тут жаловаться?
Многого не хватает - только вот обосновать - по русски даже с трудом не то что по англицки так что остается только жаловаться тут - может кто и напишет в трекер :)

chpasha(впрочем дубликаты строк можно и по-другому искать, есть соответствующий lint-анализ)
а как?
...
Рейтинг: 0 / 0
android многоязычность
    #38876057
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийchpasha(впрочем дубликаты строк можно и по-другому искать, есть соответствующий lint-анализ)
а как?Analyze->Run inspection by name -> Android Resource Validation
...
Рейтинг: 0 / 0
android многоязычность
    #38876109
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно ли каким хитрым способом сократить кол-во этих записей - посредством какой-нибудь ссылки на "родителя"?
Код: java
1.
2.
3.
4.
    <string name="name">наименование</string>
    <string name="name_">наименование:</string>
    <string name="Name">Наименование</string>
    <string name="Name_">Наименование:</string>    
...
Рейтинг: 0 / 0
android многоязычность
    #38876115
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaAnalyze->Run inspection by name -> Android Resource Validation
попробовал - результат всегда "No suspicious code found (a minute ago)" - хотя "дубли лежат на соседних строках"
...
Рейтинг: 0 / 0
android многоязычность
    #38876127
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийА можно ли каким хитрым способом сократить кол-во этих записей - посредством какой-нибудь ссылки на "родителя"?
Код: java
1.
2.
3.
4.
    <string name="name">наименование</string>
    <string name="name_">наименование:</string>
    <string name="Name">Наименование</string>
    <string name="Name_">Наименование:</string>    


Слушай, при современных ценах на носители печься о паре лишних десятков байт в архиве как-то не с руки...
...
Рейтинг: 0 / 0
android многоязычность
    #38876131
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, бес попутал. эта инспекция ищет неиспользуемые строки, на дубликаты ей плевать, сорри.
...
Рейтинг: 0 / 0
android многоязычность
    #38876141
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanСлушай, при современных ценах на носители печься о паре лишних десятков байт в архиве как-то не с руки...
Так я не для экономии байтов - а для экономии "времени" переводчика. Они были разбросаны по всему файлу - я их поиском нашел и "сгруппировал" в одно место - в общем еще и группировки по значению не хватает в этом редакторе. А так этих "наименований" было более 10 - переводчик уж точно матюкался бы, а я их сократил до 4. Т.е. проблема найти вот такие "повторы".
...
Рейтинг: 0 / 0
android многоязычность
    #38876746
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу понять как должна происходить "локализация" строк в *.java. Ставлю курсор на строку, жму Alt+Enter, в менюшке выбираю "extract string resource" и мне предлагает ДОБАВИТЬ новый ресурс, но если мне не нужно добавлять - а нужно выбрать из уже существующего ресурса - как это сделать - ручками вбивать - так это мозоли появятся - у меня строки "ошибка" наверное 50 штук будет???
...
Рейтинг: 0 / 0
android многоязычность
    #38876755
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерский, поиск с заменой не предлагать? Ну и копирование и вставку никто не отменял вместо ручного вбивания.
...
Рейтинг: 0 / 0
android многоязычность
    #38876772
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола Питерский, поиск с заменой не предлагать? Ну и копирование и вставку никто не отменял вместо ручного вбивания.
Точно - спасибо. Что-то меня студия совсем расслабила - всмысле мозг размягчила:)
...
Рейтинг: 0 / 0
android многоязычность
    #38881544
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В приложении основной язык английский и есть русский. Как сделать так, чтобы у пользователей бывшего СССР отображался бы русский язык - н-р если анроид на украинском - то пользователю отображать не английский, а русский???
...
Рейтинг: 0 / 0
android многоязычность
    #38881609
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийн-р если анроид на украинском - то пользователю отображать не английский, а русский???
следи за руками - генерить файл resources-ua с тем же содержимым, что и resources-ru
...
Рейтинг: 0 / 0
android многоязычность
    #38881706
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaМикола Питерскийн-р если анроид на украинском - то пользователю отображать не английский, а русский???
следи за руками - генерить файл resources-ua с тем же содержимым, что и resources-ru

Блин - а ведь точно :) А то я хотел уже на украинский переводить :)
...
Рейтинг: 0 / 0
android многоязычность
    #38881713
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaМикола Питерскийн-р если анроид на украинском - то пользователю отображать не английский, а русский???
следи за руками - генерить файл resources-ua с тем же содержимым, что и resources-ru
Кстати, можно научить делать gradle это на этапе сборки, чтоб не поддерживать два и более языковых ресурсов.

Как - не скажу. :)
...
Рейтинг: 0 / 0
android многоязычность
    #38881873
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanchpashaпропущено...

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

Как - не скажу. :)

wadman, скажи, пожалуйста, как это сделать?

P.S. Лучше день потерять - зато потом за 5 минут долететь :)
...
Рейтинг: 0 / 0
android многоязычность
    #38881886
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерский, не скажу вовсе не потому, что вредный.
...
Рейтинг: 0 / 0
114 сообщений из 114, показаны все 5 страниц
Форумы / Android [игнор отключен] [закрыт для гостей] / android многоязычность
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]