|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола ПитерскийВот последняя строка это и есть .po файл, который генерирует gettext для редактора poEdit. И в гугле знают что это классная вещь:) Чтобы перейти на современные рельсы нормальный разработчик обязан побеспокоиться о старых/предыдущих версиях и их предшественниках и обеспечить их поддержку. Это логично. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2014, 14:56 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола ПитерскийВот последняя строка это и есть .po файл, который генерирует gettext для редактора poEdit. И в гугле знают что это классная вещь:)но почему-то к андроиду ее не прикрутили ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2014, 15:00 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
chpashaМикола ПитерскийВот последняя строка это и есть .po файл, который генерирует gettext для редактора poEdit. И в гугле знают что это классная вещь:)но почему-то к андроиду ее не прикрутили К делфи и пхп тоже ее не прикрутили. Насчет того что медленно будет выводится приложение при повороте экрана из-за перевода - врядли - одно дело изменять объекты в памяти - а другое производить дисковое чтение из анроидных ресурсов и также перерисовывать контролы с новым текстом. Меня не столько напрягает невозможность иметь отдельный файл для перевода, как вероятность многократного дублирования текста в контролах приложения н-р "Название, закрыть и т.д" их может быть много одинаковых в контролах с разными идентификаторами и они разбросаны по файлу ресурсов и при переводе надо проделывать лишнюю работу, также вы отдали на перевод файл с ресурсом и вдруг решили переименовать идентификатор этой строки - все основной файл переведенным уже нельзя заменить, аналогично вы добавили новый контрол в этом случае тоже нельзя файлы менять, а надо ручками найти изменения и их добавить. Всех этих недостатков нет в gnugettext. А может я и не прав - т.к. есть пока в андроиде небольшой опыт и только в эклипсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2014, 15:15 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола ПитерскийА может я и не прав - т.к. есть пока в андроиде небольшой опыт и только в эклипсе. Есть правила и рекомендации, как называть приватные переменные, как называть кнопки, окна, пункты меню и как называть переменные для их текстового представления и т.п. И следуя им, дублирование текста избегается само собой. Мне кажется, что для андроида это надуманная проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2014, 15:34 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Вот мне не нравится эклипс по причине - если я пишу одноязычное приложение и пытаюсь текст контрола написать прямо в исходнике - то он этот текст подчеркивает (как в настройках отключить эту проверку для всего приложения я не нашел) и предлагает поместить его в файл ресурсов и соответственно мне надо придумать название идентификатора этого текста в ресурсе - т.е. много лишней работы, которую я не люблю делать. И кроме того почему ему (эклипсу) не пройтись по всем строковым ресурсам и не сказать что уже есть такой ресурс с текстом "название:" и не предложить в исходнике присвоить контролу этот идентификатор? Может в студии это сделано лучше? Год назад смотрел студию - там у меня она висла при создании проекта - т.е. я ее так и не увидел в действии. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2014, 16:17 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола ПитерскийВот мне не нравится эклипс по причине Это не эклипс, а ADT, который так или иначе пишут те-же или при плотном сотрудничестве с ними, кто и андроид-студию пишет. Так что и наследие и одинаковое поведение - норма. В т.ч. и перенос текста в ресурсы. Как я и писал ранее, я сразу пишу константу вида R.string.* а тут зависит от того, что мне нужно, если меню, то action_, если заголовок окна, то title_ и т.п. В общем-то далее просто смотришь в списке, что есть похожего и либо пишешь несуществующее название константы (и далее создаешь её тут же из диалогового окна), либо выбираешь из того, что есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2014, 16:23 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола ПитерскийВот мне не нравится эклипс по причине - если я пишу одноязычное приложение и пытаюсь текст контрола написать прямо в исходнике - то он этот текст подчеркивает (как в настройках отключить эту проверку для всего приложения я не нашел) и предлагает поместить его в файл ресурсов и соответственно мне надо придумать название идентификатора этого текста в ресурсе - т.е. много лишней работы не так уж и много. может получится так, что через год ты вдруг подумаешь, что тебе нужно многоязычное приложение, и начнешь выискивать строки. вот тебе и пытаются не дать выстрелить в ногу, а ты в свою очередь можешь игнорировать предупреждения. заодно напишешь в одном месте cancel, в другом discard, в третьем exit - по настроению, хотя все три раза хотел return ;) Микола ПитерскийИ кроме того почему ему (эклипсу) не пройтись по всем строковым ресурсам и не сказать что уже есть такой ресурс с текстом "название:" и не предложить в исходнике присвоить контролу этот идентификатор? напиши плагин. расскажешь об ощущениях. Микола ПитерскийМожет в студии это сделано лучше? there is no place like home ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2014, 16:37 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола ПитерскийМеня не столько напрягает невозможность иметь отдельный файл для перевода, как вероятность многократного дублирования текста в контролах приложения н-р "Название, закрыть и т.д" их может быть много одинаковых в контролах с разными идентификаторами и они разбросаны по файлу ресурсов что за ерунда. если я создаю <string name ="close">Закрыть</string> то я для этого и использую ресурсы, что бы не дублировать для каждой кнопки и не писать. да и проще поменять, если вдруг нужно будет что то изменить. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2014, 23:00 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Джибсчто за ерунда имеется в виду, что когда обширная предметная область, можно написать НЕ одно и то же в двух разных местах одними и теми же словами. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2014, 11:17 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
chpashaДжибсчто за ерунда имеется в виду, что когда обширная предметная область, можно написать НЕ одно и то же в двух разных местах одними и теми же словами. Ну да, лишние 100 байт это "проблема" в современном цифровом мире. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2014, 11:53 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
wadmanНу да, лишние 100 байт это "проблема" в современном цифровом мире. имеется в виду, что проблема не в самом наличии дубликатов, а в том, что люди, которые будут переводить, станут натыкаться на одни и те же слова по несколько раз подряд. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2014, 12:05 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Установил себе наконец Android Studio 0.8 - по сравнению в эклипсом вещь уже стоящая !!! Мультиязычность тоже сделана классно. Но не понял следующий момент: вот я например создал текстовый ресурс н-р name_offer и его значение "Наименование товара:" и создал для него несколько ресурсов для разных языков - тут все клас, а теперь мне надо переименовать "Наименование товара:" в "Наименование:" - как тут действовать? Открывать ресурс по умолчанию т.е. лезть в values\strings.xml и менять, ручками, а затем вызывать "edit translation" для каждого языка, искать этот ключ там в табличке и переводить или есть какой-то другой лучший способ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 11:55 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола Питерский, открываешь любой ресурс, встаешь на название нужной строки, жмешь Shift+F6 и вводишь новое название. Всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 12:19 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
wadmanМикола Питерский, открываешь любой ресурс, встаешь на название нужной строки, жмешь Shift+F6 и вводишь новое название. Всё. Проверил - меняет но не то что мне нужно - если надо поменять name_offer на name_offer_1 - то оно подходит и меняет ид ресурса во всех языковых файлах, но мне надо поменять сам текст переводов во всех языках. Кроме того если в проекте например 1000 многоязычных словосочетаний для 20 языков и надо часто и многократно переименовывать не идентификатор строкового ресурса а сам текст, т.е. в процемме работы переименовываем только для основного языка и только когда надо сделать релиз - только тогда надо каким-то образом найти все "переименованные" тестовые ресурсы в других языках чтобы перевести их. Как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 12:32 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола Питерскийно мне надо поменять сам текст переводов во всех языках. Шутишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 12:37 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
wadmanМикола Питерскийно мне надо поменять сам текст переводов во всех языках. Шутишь? Да какая тут шутка? Я пока только понял что переименовать значение текстового ресурса нельзя, а только каждый раз создавать новый. Но это же заколебаешся так делать. Если ты переименовал значение тестового ресурса в языке по умолчанию ручками в файле - а в остальных языках это сразу не сделал - то потом не найдеш вот такие "забытые" несоответсвия между основным языком и переводом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 12:45 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола Питерскийwadmanпропущено... Шутишь? Да какая тут шутка? Я пока только понял что переименовать значение текстового ресурса нельзя, а только каждый раз создавать новый. Но это же заколебаешся так делать. Если ты переименовал значение тестового ресурса в языке по умолчанию ручками в файле - а в остальных языках это сразу не сделал - то потом не найдеш вот такие "забытые" несоответсвия между основным языком и переводом. А то, что потом так же можешь и вовсе забыть перевести? Текстовый xml - это только для тебя, далее он станет "цифровым" и названия значения не будут иметь. Просто создавай новую строку, с новым названием и новым текстом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 12:48 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола Питерский, imho это будет доделано в след.версиях. Или это вообще не дело платформы, а дело аддонов к ней и приблуд. В принципе, сабж как раз об этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 12:50 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
[quot wadman А то, что потом так же можешь и вовсе забыть перевести? Текстовый xml - это только для тебя, далее он станет "цифровым" и названия значения не будут иметь. Просто создавай новую строку, с новым названием и новым текстом.[/quot] Т.е. если у меня лабель c именем offer_name и он соотвествует значению "наименование" и мне начальник сказал переименовать его в "наименование товара" - то я должен создать новый ресурс н-р offer_name1 со значением "наименование товара", затем он скажет что всетаки лучше переименовать в "номенклатура" то значит опять создаем новый offer_name2 со значением "номенклатура"? А можно как увидеть тогда что "старые" строки нигде не используются и удалить сразу их во всех языковых файлах? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 12:55 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола Питерский, Я думаю, шеф скажет, за один день написать приблуду. Кторая пробежит по файлам и подсветит те строки, которые вообще не исп-тся и т.д. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 12:59 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
WebPrj, Я просто в делфи использую для локализации gettext и там это сделано весьма удобно - можно переименовывать строковые ресурсы только в основном языке сколько угодно хотя для них есть уже переводы, а потом перед сборкой релиза, запускаем переводчик для каждого языка и видим сразу в начале списка все "непереведенные" фразы т.е. или совсем непереведенные или те, которые для основного языка были переименованы и ничего там "забыть перевести" не получится. А тут вроде ничего похожего не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 13:04 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Микола Питерский, Delphi платформе сколько лет? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 13:07 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
Да еще и надо тратить время на выдумывание английского "идентификатора" строкового ресурса, который должен соответсвовать его содержимому. А вообще можно ли для языка по умочанию использовать русский, а для английского создать дополнительный языковый ресурс (\values-en\)? Ничего там у англоязычных пользователей не перевернется? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 13:09 |
|
android многоязычность
|
|||
---|---|---|---|
#18+
WebPrjМикола Питерский, Delphi платформе сколько лет? Так в делфи ничего подобного нет - это все сторонний проект (gnugettext), который есть и для Жавы. См. эту тему выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2014, 13:13 |
|
|
start [/forum/topic.php?fid=13&msg=38710202&tid=1331416]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
23ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 245ms |
total: | 369ms |
0 / 0 |