| |||
|
Загальна структура МПТепер спробую роз'яснити основні принципи структури МП. Розглянемо все на прикладі телефону CX70. Отже, Ви маєте МП у вигляді текстового файлу розміром... розмір може сягати п'яти (в моделях х70) і більше мегабай (в новіших моделях). Процес перекладу рядків МП досить нескладний, але дуже тривалий.Процес перекладуСпершу Вам знадобиться текстовий редактор з підтримкою Юнікоду (Unicode BOM).Можна скористатись звичайним Microsoft Word чи OpenOffice.org Writer, але я б радив використовувати меншу і більш пристосовану для цього програму. Простий і швидкий редактор тексту на зразок Notepad2 чи Notepad++ - у них є підсвітка синтаксису, що полегшує роботу і дозволяє легше орієнтуватись у тексті з великою кількістю тегів. Заголовна інформація МППерше, з чим Ви зіткнетесь при відкритті МП у текстовому редакторі - це заголовна інформація. Header info - інформація, яка впливає на весь мовний пакет. Вона містить основні дані про весь МП.Повний заголовок виглядає так: ; ; Header info ; PhoneType CX70_56, E0000, C0000 ;AllLangs 7 ;MaxMsgId 7201 LgPackId lg3 PhoneType CX70_56, E0000, C0000 PhoneType - стала. CX70 - модель телефону. 56 - версія прошивки. Е0000 - адреса місцезнаходження МП у ФФ у 16-ковому (НЕХ) форматі. С0000 - повний розмір МП у 16-ковому (НЕХ) форматі. У ранніх моделях (до х60) після цих даних можуть бути додаткові дані (наприклад: PhoneType S35, 390000, 3BC00,6,8,a,0,c,e,10,14,0,2a,24,1668,7ff70,53). Що вони означають я особисто не знаю :( ;AllLangs 7 7 - кількість мов у МП. ;MaxMsgId 7201 7201 - кількість мовних рядків у МП для кожної мови. Саме таку кількість рядків доведеться перекладати, якщо Ви візьметесь за переклад телефону. LgPackId lg3 lg3 - тип МП. Тип lg3 містить мови Східної Європи та країн Балтії. Для х65 у lg3 включені принаймні такі мови: англійська, польська, російська, латвійська, литовська, естонська, українська. Докладніше про різні типи МП див. тут. Деякі рядки заголовної інформації МП можуть бути закоментованими (стоїть ; на початку рядка). Такі, закоментовані, рядки ні на що не впливають і мають виключно інформативний характер. Єдине, що можна змінювати - це цифри у AllLangs та MaxMsgId (якщо ці рядки не закоментовані). Цифру AllLangs потрібно буде змінити, якщо Ви зменшили кількість мов у МП. Скоротити кількість мов у МП може знадобитись, якщо перекладений МП виходить більшим за максимально можливий розмір і програма не стискає його, бо після запису МП в телефон останній втратить ознаки працездатності. У такому випадку єдиним способом застосувати Ваш переклад буде видалення усіх рядків однієї мови з МП. Цифру MaxMsgId змінюють лише якщо у МП змінюється кількість мовних рядків. Але такі маніпуляції з МП я не зустрічав (МП для SL4x - єдине виключення). Окремі мовиПовний блок текстових рядків для кожної мови починається з цього: ;; ; Language data ; LangId 31 Єдине, що у цих рядках міняється - це LangId. У одному МП не може бути більше однієї мови з певним LangId. LangId для кожної мови свій. Визначити якусь системність у призначенні LangId мовам (для телефонів до х75 включно) мені не вдалось. Однак, є одне (не підтверджене!) припущення - для кожного типу МП кожна мова має свій LangId. На телефонах NewSGold використовуються такі LangId: 1: "ar" (арабська) 3: "pt-br" (португальська, Бразилія) 4: "ca" (каталонська) A: "da" B: "nl" C: "en" (англійська) E: "et" 11: "fr" (французька) 13: "de" (німецька) 14: "el" 19: "it" (італійська) 1A: "lv" (латвійська) 1B: "lt" (литовська) 1F: "pl" (польська) 20: "pt" (португальська) 21: "ro" (румунська) 22: "ru" (російська) 24: "sk" 26: "es" (естонська) 28: "sv" 2C: "tr" (турецька) 2D: "uk" (українська) Отже, весь набір рядків кожної мови починається з ";" , а закінчується останнім рядком перед початком блоку текстових рядків наступної мови. Якщо мова є останньою у МП, тоді після останнього рядка цієї мови повинен бути один порожній рядок ("Enter"). Далі починаються безпосередньо текстові рядки інтерфейсу, які й потрібно перекладати. String $0, "<95>Country" String - незмінний початок кожного мовного рядка. $0 - номер мовного рядка. Номерація починається з нуля (перший рядок - 0; другий - 1; третій - 2 і т.д.). Номерація рядків може бути у десятковому [0, 1, 2, 3 ... 10, 11 ...] або 16-ковому (HEX) [$0, $1, $2, $3 ... $A, $B ...] форматі. Про 16-ковий формат номерації свідчить символ "$" перед номером рядка. Siemens Language Editor 1.4 розпаковує МП як з 10-ковою, так і з 16-ковою номерацією рядків, але програма не працює з телефонами, які новіші за х55. Smelter 7.70 розпаковує МП лише з 16-ковою номерацією рядків. "<95>Country" - сам текстовий рядок. Він починається відкриттям лапок і обов'язково повинен закінчуватись їх закриттям. <95> - це тег (див. наступний розділ). Написано: 10.03.2006 | ||
|
|
|||
|
|||