Обновление языковых файлов форума SMF2.1 RC3

:writer: Скоро или нет выйдет SMF2.1RC3, но в новой версии форума добавились языковые ресурсы. Переводить
  1. Оффлайн

    Автор темы

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2178

    Создано тем: 315

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3400

    Был: 2024-04-08 16:00

    Лайков: 196



    writer Скоро или нет выйдет SMF2.1RC3, но в новой версии форума добавились языковые ресурсы. Переводить в блокноте это же дедовский способ, да и искать различия даже с помощью Araxis Merge ну никак мне не нравится mad

    Начал рыть ресурсы, после пару дней все получилось friday

    Итак что для этого надо...
    Инструменты.

    Notepad++ - текстовый редактор
    Radialix 3 64 бита - шаблонный редактор
    Araxis Merge - лучшая программа для сравнения файлов
    TotalCommander - ну, он и в Африке командер  1tooth
    Бестолковка - ну, как же без нее pray2



    Так как опыт с языковыми ресурсами SMF уже был, то дело шло веселее. Файлы форума с расширением .php
    Формат строк там такой:
    $txt['install_step_welcome'] = 'Welcome';


    Неправда ли, что это что то уж больно знакомое? Ну да, это же формат языковых файлов .ini, .lng и .isl
    Но если вставить встроенный парсер, то нифига вы не получите. Потому что там есть такие строки:
    $txt['regards_team'] = "Regards,
    The " . $context['forum_name'] . ' Team.';


    И такие строки:
    $txt['movetopic_default'] = 'This topic has been moved to ' . $txt['movetopic_auto_board'] . ".
    
    " . $txt['movetopic_auto_topic'];


    Еще такие:
    $helptxt['edit_news'] = '
    <ul class="normallist">
    <li>
    <strong>News</strong><br>
    This page allows you to set the text for news items displayed on the Board Index page.
    Add any item you want (e.g., &quot;Don't miss the conference this Tuesday&quot;). Each news item is displayed randomly and should be placed in a separate box.
    </li>
    <li>
    <strong>Newsletters</strong><br>
    This page allows you to send out newsletters to the members of the forum via personal message or email. First select the groups that you want to receive the newsletter, and those you don't want to receive the newsletter. If you wish, you can add additional members and email addresses that will receive the newsletter. Finally, input the message you want to send and select whether you want it to be sent to members as a personal message or as an email.
    </li>
    <li>
    <strong>Settings</strong><br>
    This page contains a few settings that relate to news and newsletters, including selecting which groups can edit forum news or send newsletters. There is also a setting to configure whether you want news feeds enabled on the forum, as well as a setting to configure the length (how many characters are displayed) for each new post that shows in the feed.
    </li>
    </ul>';


    Так как у нас есть волшебный инструмент Radialix, то работа по переводу или созданию базы данных или обновлению упрощается в разы crazy
    Как всегда в нашей работе это не навредить и сделать так, чтобы не один знак не пропал случайно biggrin



    Языковых файлов там 34 штуки и весят они довольно прилично.



    Для начала надо перегнать в Radialix ранний перевод, нам же обновление нужно и переводить заново незачем.
    Создаем папку languages_en и вражьи файлы закидаем туда. Теперь создаем папку languages_rus и опять эти файлы закидаем в эту папку. Открываем TotalCommander и переименовываем все файлы сразу.



    Теперь в папке languages_rus будут все русские языковые файлы типа - Admin.russian.php
    Все готово для запуска Radialix и создания проекта. Запускаем шаблонник и создаем проект локализации.



    Жмем Добавить файл, выделяем все файлы в папке languages_en и жмем Открыть, в окне Свойства файла выбираем раздел Исходные ресурсы и жмем кнопку Шаблоны. Здесь я написал регулярные выражения для этих файлов. Прикол в том, что в Notepad++ регулярные выражения работают иначе, чем в Radialix, так что пришлось поэкспериментировать. Файлик с регуляркой будет в конце описания. Настройки нужно сделать как на картинке.



    После выхода из шаблонов настройте кодировку, должно быть вот так.



    Переходим в раздел Локализованные файлы и снимаем гальку 1tooth с Используемые по умолчанию и жмем маленькую кнопку как на рисунке. В папке languages_rus выбираем файл для вывода. Дальше подтверждаем действие - жмем кнопку OK



    Ну и, так настроить все оставшиеся файлы один за другим pray2 В самом конце нажимаем кнопку Создать.



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



    Запустите TotalCommander и в папке languages_rus переименуйте файлы. Это надо для сравнения. Файлы должны быть в папках одинаковые.



    Запускаем Araxis Merge и результат виден на картинке - шаблонник создал идентичные файлы с оригиналом ura



    Теперь можно приступить к созданию базы данных. Создаем папку languages21rc2rus и туда вставляем 34 русских файла из вашего форума. Из них будем делать импорт ресурсов. Немного придется переделать исходный перевод - откройте все файлы в Notepad++ и сделайте поиск данных ниже.

    = '';


    Замените на

    = ' ';


    Надо просто между кавычками поставить пробел. Зачем это надо - в исходных файлах между кавычками есть слово или буква, а переводчик при локализации удалил для правильного предложения в русском варианте. Но парсер этого не понимает 1tooth
    У меня нашлось 10 различий в 7 файлах.



    Ставим пробел между кавычками так.






    Теперь делаем импорт ресурсов. Выбираем первый файл в радиаликсе слева и жмем кнопку Файл и в выпадающем меню Импорт.



    Здесь ничего менять не надо и жмем кнопку Далее



    Ищем папку languages21rc2rus и в ней выбираем нужный файл.



    Здесь устанавливаем русский язык и жмем кнопку Шаблоны



    Выбираем наш шаблон и жмем кнопку Закрыть



    Вот так у вас должно получится, теперь жмем кнопку ОК



    В этом окне жмем кнопку Начать



    Вот, справа появились русские буковки biggrin значит все сделали правильно. Жмите кнопку Закрыть и сделайте по такой схеме импорт остальных файлов.






    Как сделать обновление языковых файлов в радиаликсе? Да очень просто!
    Идем сюда и качаем новую разработку. В Из архива вытягиваем папку languages и переименовываем ее на languages_rc3. Из этой папки все файлы копируем в папку languages_en и соглашаемся на замену.



    Запускаем радиаликс и открываем проект. Слева видны файлы с желтыми значками. Теперь нажимаем кнопку Пересканировать все файлы.



    После завершения сканирования слева, что выделено жирным, это измененные файлы.



    Для общего просмотра и редактирования изменений выделите слева Русский и нажмите кнопку фильтра Новые



    Большинство строк уже переведено, но и новых хватает. Ну, как то так...

    Файл парсера

    Вложения:

      Вам запрещено скачивать вложения.
    NNK_RTR, Vasab нравится это сообщение.

    20 января 2020 - 14:10 / #1

Статистика форума, пользователей онлайн: 0 (за последние 20 минут)

---
Создано тем
1173
Всего сообщений
15312
Пользователей
17845
Новый участник
van_gal