У меня 1 к 1. Пока не разбирался, Я буду пробовать другие кнопки и на другой день смотреть результат. Надо смотреть и править конкретный скрипт этой кнопки. Наверное ссылка не туда, куда надо, или сам скрипт кривой.
Начиная с версии 1.5 в имидже AAF имеются многоязычные меню и всплывающие окна!
Этот фак написан для людей, которые хотят добавить свои национальные, или исправить фактические языки в OSD имиджа AAF 1.05!
Все файлы, как скрипты управления языками лежат в /data/locale.
Для языка необходимы 2 файла, один с числом начиная c 0, (0.locale), и второй с сокращенным названием языка (ge.locale - как пример).
0.locale = диалоги всплывающих окон. (здесь немецкий, для других языков просто использется следующая свободная цифра)
ge.locale = Меню AAF + пути. (здесь для немецкого, для других языков используют буквенное сокращение языка)
Если точнее рассматреть ge.locale, то раздел начинается с описания пути меню с последующим заголовком и отдельными текстами меню на переводимом языке.
##/data/plugins/osd/osdshell.cfg
Haupt-Menue
Barry Allen >
Addon-Manager >>>>
Emu Management >
Einstellungen >>
Zubehoer >
Infos >
Neustart
Ausschalten
Два ## служат скрипту, как распознавание раздела, и обязательно должны иметься в наличии.
В тексте меню не допускаются никакие двоеточия.
При переносе части предложения на другую строку применяется специальный символ: косую черту \, и &, именно так
\& , тогда предложения переводятся правильно, в несколько строк. Эта связка ставится в том месте, где хотите перенести текст на другую строчку. Он может непосредственно прилипать к слову, за ним или (и) перед ним. (Например
файловая\&система. Это значит слово
система будет писаться уже с новой строки, а
файловая упрется в конец предыдущей без пробела. Если напишите
файловая \& система, то слова тоже будут писаться в разных строках, но с пробелом впереди и в конце). Поэтому будьте особо внимательны. Там много таких мест.
Меню OSD не может применять переменные величины, поэтому тексты меню переводятся скриптом.
Так выполняется сценарий translate.sh.
Синтаксис:
./translate ge eng (Перевод с немецкого на английский).
Он указывает на скрипт
set_lang.sh. При загрузке - он распознает настоящий язык. На него указывает заголовок (title=Sprachauswahl) в меню
language.mnu и должен настраиваться при расширении языка перевода в скрипте.
Для русского языка дополнительно установлен и переключателем шрифтов выбирается шрифт сдля представления правильно русских символов (ru.ttf).
В этом шрифте заменена таблица символов. Русские символы поставлены вместо английских. Для недостающих русских символов используются мало используемые спецсимволы. Поэтому в редакторе русский язык выглядит как корявый транслит. Тем не менее, в меню и всплывающих окнах все русские символы отображаются корректно. Таблицу спец символов я выкладывал выше .
(Исключение составляют те всплывающие окна, информация для которых приходит, или с немецкого сайта, или это информация системы). В этом случае предложение отображается русскими буквами но на языке оригинала.
В 0.locale записаны все тексты сообщений всплывающих окон (popup), которые используются скриптом.
Эти тексты применяются только во время распространения сигнала и поэтому не переводятся.
Важно, чтобы в текстах меню,
текстовые строки 0.locale совпадали со строками файла перевода (0.2 locale и т.д.)
Т.е. все тексты других языков
должны стоять в тех же самых строчках , что и в 0.locale. Здесь играет роль, только номер (позиция) строки.
Пример: в 22 строке файла 0.locale стоит текст "Das Backup ist FERTIG!"
Теперь этот текст на других языках должен стоять также в других языковых файлах (1.locale – и далее) в той же самой строке 22.
Если добавляются новые тексты всплывающих окон, то их просто нужно прибавлять в конце файла. (В файлах всех языков, на немецком или английском языке) потому что на все языки вставленный текст не переведете все равно.
Всплывающее окно:
В всплывающем окне вместо строки
$popup "Das Backup ist FERTIG!"
вызывают
$popup "`$LA 22 $lang`"
для позиции строки стоит 22!
В заголовке скриптов дополнительно должна вызываться инициализация скриптов языка.
. /config/language.conf
#!/bin/sh
popup=/data/plugins/osd/popup.sh
. /config/language.conf
......
......
$popup "`$LA 22 $lang`"
......
Расширение OSD:
#!/bin/sh
# переключатель OSD-меню
/data/locale/set_lang.sh 0
После того, как set_lang.sh расширяется на новый (которого не было вообще) язык, также в директории /data/locale/ должен размещаться новый скрипт вызова языка. Здесь как пример ge.sh, вместо нуля должно применяться выбранное (текущее, еще не занятое) число.
Скрипт поддержки изготовления файлов locale:
Скрипт поддержки, readlang.sh также лежит в папке /data/locale/ и может непосредственно запускаться из Telnet ( ./readlang.sh ).
( У меня не запустился, пишет мало прав). Эта команда создает файл перевода со всеми выше описанными элементами как описано выше в OSD, и оставляет его в/data/locale/current.locale! На основе этого файла можно переводить тогда на другие языки. Такие, сделанные файлы, я получил по почте для перевода OSD. Их наверное может создавать только AAF.
Для последующей поддержки должен быть добавлен временный файл/data/locale/locale.sh, который создается скриптом translate.sh во время работы, и запускается при каждом запуске ресивера.
cat /data/plugins/osd/osdshell.cfg|
sed '
s:Haupt-Menue:Main-Menu:g
s:Barry Allen >:Barry Allen >:g
s:Addon-Manager >>>>:Addon-Manager >>>>:g
s:Emu Management >:Emu Management >:g
s:Einstellungen >>:Settings >>:g
s:Zubehoer >:Tools >:g
s:Infos >:Infos >:g
s:Neustart:Restart:g
s:Ausschalten:Standby:g
' /data/plugins/osd/osdshell.cfg >/tmp/tmp.mnu2
cp /tmp/tmp.mnu2 /data/plugins/osd/osdshell.cfg
Этот скрипт проводит фактический ( как образец выше, на En) перевод. При просмотре этого файла сразу выявляются возможные ошибки, и оперативно их можно исправить в файле локализации меню.
Важно:
При изменениях в одних файлах локализации, они должны так же изменяться во всех других файлах локализации (добавление или удаление) всех поддерживаемых языков для того, чтобы дальше мог происходить правильный перевод на других языках. Если имеются затруднения перевода с других языков, то просто смотрят английский,немецкий, или другой из имеющихся переводов текст, и переводят точно все на свой, соблюдая точно количество строк в файлах оригинального и переводимого языка.
Язык в меню OSD AAF был выбран, совершенно независимо от языка меню Катрейна и может (должен) устанавливаться независимо от него
Вы можете свой национальный язык перевода послать на форум AAF, администратору andy-1, как личное сообщение.
Это приветствуется, и ваш национальный язык появится в имидже. Украина, в ваш огород камешек кидаю и все разжевываю.
Если не знаете немецкого, немного напишите по русски (только грамотно) переведите машинным переводом на немецкий и посылайте на двух языках (если неграмотно, то просто машинный переводчик вас не поймет и выдаст такую чепуху, что и вы бы не поняли) А сами файлы перевода разместите на БЕСПЛАТНЫЙ файлообменник и дайте andy-1 только ссылку.
Сам лично проверил, такой метод работает. Он немного понимает по русски.
В случае с умлаутами и дескрипторамив национальных языках, вы должны найти подходящий шрифт и написать только вместо каких символов вы хотели бы видеть какие буквы. Я исправлю и верну вам.
Какие из букв Катрейн не понимает, легко определить, написав вместо какой либо строчки меню эти буквы. При этом учитывайте текщий шрифт. Поменяйте шрифт и посмотрите. легче всего временно менять шрифт и смотреть результат, назвав ваш шрифт точно так, как онназывается в Катрейне и просто подменить. Не забудьте сделать копию, а то исчезнет оригинальный шрифт. Шрифты находятся в директории /data/menue.
Собственность форума forum.sat-expert
База взята отсюда:
http://www.aaf-board.com/wbb2/thread.php?threadid=9890