We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 30504
    • 14 Posts
    Надавно на досуге сделал маленькую программку для упрощения перевода языковых файлов. Думаю, с ее помощью будет проще переводить MODx (и не только))) на другие языки, и, что на мой взгляд важнее - отслеживать изменения в языковом файле в сравнении с уже существующими переводами. Программа очень проста в использовании и не очень большая. В архиве - экзешник (при первом запуске он создат конфиг) и файл-описание на русском. Будут замечания или предложения - пишите сюда, или на мыло, которое указано в текстовом файлике wink
      • 30354
      • 227 Posts
      Большое пасибо! Респект ;-) Как раз "занмиаюсь" локализайие всег-всего и будет очень полезно иметь в хозяйстве подобную штуку..
        http://www.avizion.ru/ — строим стартап!
        http://tonatos.ru/ — Заходите в гости...
        • 30504
        • 14 Posts
        Рад что пригодилась))) Но забыл сказать о нескольких моментах: программа пока находится на саааамой начальной стадии развития, посему буду благодарен за конструктивные предложения непосредственных пользователей (по поводу интерфейса, возможностей и багов), поскольку самому пока заниматься переводами файлов нет времени.
        Во-вторых, пока что в программе есть ограничение на вид шаблона импорта: в шаблоне теги {{str_alias}} и {{string}} должны следовать именно в таком порядке, каждый из них обязательно должен присутствовать и быть в единственном экземпляре.
        В-третьих, у меня пока нет возможности протестировать программу при переводе на другие языки, кроме русского, посему прошу сообщать о любых багах или некорректном поведении программы в этом плане.
        Надеюсь, ничего не забыл)))
          • 30354
          • 227 Posts
          по поводу интерфейса - можно сделать программу на русском языке ;-) Хоть те элементарные команды и понятны каждому, но на родном, великорусском читать их приятнее smiley
            http://www.avizion.ru/ — строим стартап!
            http://tonatos.ru/ — Заходите в гости...
            • 30504
            • 14 Posts
            ))) Об этом я уже думал)) даже заложил некторорые возможности на будущее, которые пока что просто недоступны. Сейчас надо собрать воедино идеи, которые можно было бы в ней реализовать. Надо как-то на англицкую ветку запостить... дабы народу больше посмотрело и всем скопом решили, чего в проге не хватает.
              • 19164
              • 1,215 Posts
              Щаз скачаю гляну. Имею опыт пользования подобных утилит в другом движке, может почерпнем идеи оттуда.

              Что увидел на вскидку - надо бы сделать возможность сохранения Import и Export template в виде списка и сделать стандартный список шабонов для самых распространенных вариантов. $_lang[str]=val, $strings[str]=val - эти оба варианта кстати можно заменить одним регулярным выражением. Кроме того возможен вариант define(str, val) и т.д.

              А вообще не совсем понятно назначение Export template - и так понятно что шаблон на выходе будет таким же как и шаблон на входе.

              Кроме того программа не распознает закомментированные строки, если в исходном файле будет строка
              // $_lang[str]=val
              то в целевой файл она попадет уже раскомментированной
              $_lang[str]=val

              Как пожелание - было бы неплохо сохранять в настройках например данные о переводчике (имя, сайт, емайл), чтобы они автоматом вставлялись в переведенный файл. Ну и сохранение целевого файла в том же формате что и исходный (расширение, < ? php ? >).
                DirectResize 0.9 beta. PHPThumb, sets of configurations, configuration, binded to specific path. No backward compatibility. | DirectResize 0.9. PHPThumb, наборы параметров, параметры, привязанные к определенным путям. Без обратной совместимости.

                Unfortunately, DirectResize project is closed. If you want to continue development, PM me for access to project page on Google Code. К сожалению, проект DirectResize закрыт. Если вы желаете продолжить разработки, обращайтесь через ПМ для получения доступа к репозиторию на Google Code.

                [PLUGIN] DirectResize - as Maxigallery but for single images :: Download :: [url=http://modxcms.com/forums/index.php/topic,21490]
                • 30504
                • 14 Posts
                Спасибо)) Приму к сведению.
                По поводу шаблонов экспорта и импорта: на мой взгляд одинаковыми они быть никак не могут, ибо шаблон импорта задает лишь общий вид строки. Он служит лишь для того, чтобы приблизительно указать как должны выглядеть строки файла и где следует искать идентификатор строки и саму строку. Ведь учитывая, что файл мог быть создан и ручками, а значит, где-то могут быть пробелы, где-то будут отсутствовать, кто-то любит пользовать апострофы для строковых значений, а кто-то кавычки. Именно поэтому и были использованы регулярные выражения. А вот генерируемый файл имеет вполне определенный формат, посему здесь регулярки ни к чему.
                А чтобы иметь возможность работать с другими форматами языковых файлов шаблоны экспорта и импорта вынесены в настройки программы. Хотите работать с define? Пожалуйста:
                Шаблон импорта (упрощен):
                \s*define\s*\(\s*[’"]?{{str_alias}}[’"]?\s*,\s*[’"]?{{string}}[’"]?\s*\)
                Шаблон экспорта:
                define( ’{{str_alias}}’, ’{{string}}’ );

                А насчет комментов надо подумать. Как реализовать проверку... Дело в том, что я не привязываюсь к обработке файлов определенного формата. Идеая была в создании программы, которую легко было бы использовать для обработки любых языковых файлов, и чтобы для этого достаточно было лишь поменять опции.

                И еще, уважаемый Metaller, ты не мог бы подсказать какими утилитами ты пользовался?
                  • 19164
                  • 1,215 Posts
                  Quote from: toxxic at Feb 10, 2007, 09:21 PM

                  ...
                  И еще, уважаемый Metaller, ты не мог бы подсказать какими утилитами ты пользовался?

                  Ну в общем-то да, со многим сказанным согласен, но может стоит сначала сделать работоспособную версию для того же МОДх, а потом уже продолжить развивать вширь, а не пытаться с нуля сделать нечно универсальное.

                  Насчет строк на входе и выходе, согласись, если у нас на входе $_lang[en_str] = en_value то на выходе у нас будет строка в точности такого же формата, $_lang[ru_str] = ru_value, но никак не $string[ru_str] = ru_value или define(ru_str, ru_value)

                  Извини, если туплю и может понимаю что-то не так.

                  По поводу утилит, после твоей программы они нервно курят в углу wink В общем-то я имел ввиду утилитку на PHP которая была встроена в движок и занималась тем же, что на основе регулярных выражений так же выводила исходный и целевой файл.

                  Правда там было несколько поудобнее, как мне кажется сделано. Сейчас в программе слева идет список языковых констант, а справа сверху и снизу большие окна для редактирования. Я думаю такие большие окна не нужны, потому что обычно каждая строчка имеет очень небольшую длину. Может имеет смысл выводить все в 3 столбца - 1 столбец название языковой константы, второй столбец - исходный текст (причем только для чтения) и третий окна для редактирования. Вот скрин.
                    DirectResize 0.9 beta. PHPThumb, sets of configurations, configuration, binded to specific path. No backward compatibility. | DirectResize 0.9. PHPThumb, наборы параметров, параметры, привязанные к определенным путям. Без обратной совместимости.

                    Unfortunately, DirectResize project is closed. If you want to continue development, PM me for access to project page on Google Code. К сожалению, проект DirectResize закрыт. Если вы желаете продолжить разработки, обращайтесь через ПМ для получения доступа к репозиторию на Google Code.

                    [PLUGIN] DirectResize - as Maxigallery but for single images :: Download :: [url=http://modxcms.com/forums/index.php/topic,21490]
                    • 30504
                    • 14 Posts
                    Насчет строк на входе и выходе, согласись, если у нас на входе $_lang[en_str] = en_value то на выходе у нас будет строка в точности такого же формата, $_lang[ru_str] = ru_value, но никак не $string[ru_str] = ru_value или define(ru_str, ru_value)

                    В целом, оно конечно же так. Но если сделать так, чтобы и входной и выходной шаблон описывались одной строкой, то как тогда распарсить исходный текст? Положим, задали мы регулярку для импорта:
                    $_lang[’{{str_alias}}’] = ’{{string}}’;
                    В таком случае, из файла быдут вычитаны только те строки, у которых индекс массива обязательно в апострофах, строка также заключена в апострофы, и знак "=" отделен пробелами. Все другие строки пройдум мимо.
                    А насчет таблицы я думал)) возможно, так и сделаю, просто в файлах модикса видел довольно большие тексты, посему и решил сделать пока так.
                    Но все равно, спасибо за конструктивные предложения. Все учту и обдумаю.)))