Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Переписан с дополнениями плагин asPaint. Изменена версия на asPaint 1.2 Команды предыдущей версии одинаковы с командами этой версии - поэтому для использования плагина - одну из версий необходимо удалить(если она установлена). С плагином в архиве находится файл asPaint.loc - это файл локализации ресурсных строк (в конкретном случае на англ.язык) если файл поместить в корневую папку NeoBook то плагин будет на англ языке, если файл удалить - то по умолчанию на русском языке. Для перевода плагина на другой язык необходимо перевести ресурсные строки открыв его любым текстовым редактором. В плагине добавлены команды для рисования дуги ( часть окружности) а также несколько команд для придания эффектов изображению
To translate the plugin into English, place the asPaint.loc file in the root folder of the NeoBook. To translate a plugin into another language, open the file with any text editor and translate the resource strings into the required language and also place the file in the root folder of NeoBook. If the file is removed from the root folder - the plugin will be in Russian. The translation file is only valid for the version of the plugin as Paint 1.2
файл asPaint.loc - это файл локализации ресурсных строк (в конкретном случае на англ.язык) если файл поместить в корневую папку NeoBook
Гм... Несколько необычный способ локализации.... Почему файл локализации надо помещать в корневую папку NB? Обычно такие вещи располагаются на "параллельных" (или ниже) уровнях с локализуемым, а тут - "вверх". Да и главное - почему отсутствуют идентификаторы строк? Получается что смести строки на одну позицию вниз, или просто удалить какую-нибудь строку, и весь нижеследующий перевод пойдет крахом, т.е. будет перепутан.
Как-то ненадежно выглядит....
В Delphi есть собственный (встроенный) очень простой и надежный способ локализации ресурсных строк посредством секции Resourcestring, правда,, с одним единственным "минусом" - нельзя оперативно переключать язык, и надо компилировать отдельные версии для каждого языка (но это делается в пять секунд), "зато дешево, надежно и практично!". Получается классическая версия файла для каждого языка, который потом (кому потребуется) можно локализовать также "классически".
Есть и другие способы локализации, но я их не пробовал в реальной работе, т.к. вышеупомянутый прием лично мне подходит идеально. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Получается что смести строки на одну позицию вниз, или просто удалить какую-нибудь строку, и весь нижеследующий перевод пойдет крахом, т.е. будет перепутан.
да . Так кто то захочет сделать перевод - надеюсь строки то местами не будет путать... (не дет.сад)
ЦитатаPeter ()
В Delphi есть собственный (встроенный) очень простой и надежный способ локализации ресурсных строк посредством секции Resourcestring,
Peter, я его незнаю - посмотрел инфу по локализации - и не нашёл ничего проще... Буду рад если подскажешь куда "копать" , где эта штука - Resourcestring - находится... На мой взгляд довольно просто и надёжно если не путать строки. Можно конечно пронумеровать (номера как идентификаторы) - усложнять код... Если один раз перевести нормально - так и будет служить... Есть там косяк ( в Label свойство WordWrap стоит в False - соответственноо сам понимаешь что может получиться в описании. ) Надо было конечно изначально при построении форм предусматривать это - но я не задумывался о локализации.А всё перебирать по новому - стимула нет. Для русского языка сделано номально а вот при использовании файла локализации - при переводе - возможны неприятности.. Но на работоспособность плагина это не влияет.. На следующем плагине исправлю это - есть задумка продолжить примерно такое же - но немного в другом русле..
На самом деле все чрезвычайно просто... Общая идея заключается в том, что строки (тексты) заменяешь строковыми константами, и уже им присваиваешь нужный значения (язык). Я нашел этот способ здесь. Лучше почитай это сам, очень толково написано! И возьми на заметку.
Но, повторюсь:
ЦитатаPeter ()
Есть и другие способы локализации, но я их не пробовал в реальной работе, т.к. вышеупомянутый прием лично мне подходит идеально.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Лучше почитай это сам, очень толково написано! И возьми на заметку.
почитал - надо б конечно повдумчивее .. немного не всё понял... и всё ж мысль висит - проще отдельный файл текстовый чем кучу кода дополнительно изучать и куда то вписывать. И ещё
Цитата
ETM доступен только в новых Delphi (начиная с D2009 - скажите спасибо введению поддержки Unicode).
- тут тоже непонятки - у меня ж D7... Чем плох тот метод что я применил ? нет идентифокаторов - ну это не проблемма - дописать.... А вот то что остаётся база переводов - хорошая мысль... - только невсегда строки ресурсные в разных программах одинаковы... Почитаю ещё разок - опробую - дальше видно будет.. Там расписан пример - но пример рассмотрен не D7 а что то поновее.... Лучше б конечно один раз увидеть чем сто раз прочитать..
Хорошая мысль, но только когда много и для многих языков (интерфейса) пишешь, а для небольших проектов (таких, как необушные плагины) база вовсе не нужна (но, если она есть, тоже неплохо - может пригодиться). К тому же, ничто не мешает использовать упомянутый мной способ и в виде "базы" - пишем нужные модули, а потом просто при компиляции подключаем/отключаем/подменяем их по мере надобности. Но, многоязычный файл (да и еще с переключением языка "на лету") таким простым и статичным способом не сделать, и тут нужны иные подходы. Однако, твой нынешний прием, увы, не выглядит удачным (чего тут лукавить-то) по причинам, описанным выше. По крайней мере, в том виде, в каком он существует сейчас. Это на мой(!) взгляд, но, ты сам выбирай что тебе удобнее, а время покажет...
Хотя, нужно заметить, что ЛЮБОЙ (даже разработать собственный) способ локализации можно реализовать и на самом же Delphi, и использовать его в собственных проектах.
К примеру, даже в NB, её же собственными средствами, без особого труда можно сделать многоязычное приложение с переключением языков "на лету", и редактируемыми (в САМОМ приложении) "языковыми файлами" (без внешних редакторов)! Что же мешает это сделать в Delphi то? Поле для деятельности (и фантазии) бескрайнее!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Однако, твой нынешний прием, увы, не выглядит удачным (чего тут лукавить-то) по причинам, описанным выше
Нормальный приём - нормально работает.... единственная причина что можно перепутать строки при переводе - поправимо...(учту ). - и есть возможность перевести на ЛЮБОЙ язык(в разумных пределах) силами самого пользователя.. А то что расположен в главной директории - так она есть всех пользователей независимо от локализации системы(других папок может и не быть)
Добавлено (28 Июня 2018, 10:05) --------------------------------------------- и ещё вопросик - в приведённом тобой примере где файл для перевода строк ?
Добавлено (28 Июня 2018, 10:18) --------------------------------------------- -И может ли пользователь сам отредактировать ресурсные строки ( одним лишь блокнотом при минимуме знаний ? )
и есть возможность перевести на ЛЮБОЙ язык(в разумных пределах) силами самого пользователя..
Все то же самое можно сделать и в NB (см.мой пост выше), причем, более надежно, чем в "нормальном приеме". А уж в Delphi то...
ЦитатаAS3856 ()
в приведённом тобой примере где файл для перевода строк
Я все изложил в комментарии прямо в исходнике. Или ты принципиально не читаешь комментарии в исходниках? Внешнего (отдельно от программы) файла со строками не будет, и строки помещаются в ресурсы прямо на стадии компиляции. Я уже сказал:
ЦитатаPeter ()
Но, многоязычный файл (да и еще с переключением языка "на лету") таким простым и статичным способом не сделать, и тут нужны иные подходы.
Но неоспоримое достоинство этого приема в его предельной простоте и надежности.
ЦитатаPeter ()
с одним единственным "минусом" - нельзя оперативно переключать язык, и надо компилировать отдельные версии для каждого языка (но это делается в пять секунд), "зато дешево, надежно и практично!".
. Локализованные группы строк (с одинаковыми идентификаторами) придется писАть отдельно для каждого языка, а потом компилить (подставлять) нужный, на выходе - классический локализованный файл (для одного языка). Но, по-другому и не сделать, т.к. переводы со строками сами падать с неба не будут.
ЦитатаAS3856 ()
И может ли пользователь сам отредактировать ресурсные строки
Может, но не блокнотом, а классически, т.е.традиционными программами локализации. Для редактирования в блокноте нужно делать отдельные текстовые файлы локализации, и этот прием стар как мир, смотри к примеру уже старенькую программу-патчер PatchWise. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Локализованные группы строк (с одинаковыми идентификаторами) придется писАть отдельно для каждого языка, а потом компилить (подставлять) нужный, на выходе - классический локализованный файл (для одного языка). Но, по-другому и не сделать, т.к. переводы со строками сами падать с неба не будут.
ЦитатаPeter ()
Может, но не блокнотом, а классически, т.е.традиционными программами локализации. Для редактирования в блокноте нужно делать отдельные текстовые файлы локализации, и этот прием стар как мир, смотри к примеру уже старенькую программу-патчер PatchWise.
Peter, - так получается что делать так как я для пользователя проще.. вот он файл - не надо никаких патчеров, открыл блокнот - подправил - и всё. Можно даже на языке ацтеков написать - лтишь бы клавиатура такая нашлась Всё упрощено.. И если программисты борланда решили что надо делать именно так как сделали они - это не значит что надо за ними это повторять. Если б писал какую то программу - тогда возможно воспользовался бы этим ( делфийским) способом тут же немного по другому - необукеры сами программисты ( хоть и начинающие ) ..
ак получается что делать так как я для пользователя проще.
Несомненно! Но, только для ТЕБЯ сложнее.
Впрочем, тут работы не так уж и много (на общем фоне). Главный вопрос - есть ли в этом смысл? Я думал на эту тему, но решил пойти самым простым и надежным(!) путем - все делается прямо в редакторе кода Delphi без лишних телодвижений (и следить нужно только за грамматическими ошибками в текстах), в итоге - максимальный результат при минимуме затрат. Ну а дальше видно будет. Но, если подходить к вопросу возможности редактирования внешних языковых файлов, то уж и делать надо по-нормальному (со специальным редактором), т.к. пока строк мало (до 50), то можно и в блокноте, а когда их много... да и любая оплошность.... В необушном плагине такой встроенный "редактор", можно было бы вызывать, например, из окна "О плагине..." На мой взгляд, блокнот - очень неудобный путь, хоть и потенциально результативный (теоретически)..
ЦитатаAS3856 ()
это не значит что надо за ними это повторять.
Верно! Ни за кем не следует тупо повторять, т.к. возможности Delpji практически бесконечны, и всегда можно придумать что-то свое.
Но, все это приходит со временем и опытом. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Просто мне не нравится когда для локализации (если язык не заложен изначально автором) требуется дополнительно использовать ещё какие то программы (тот же патчер). то что я сделал - не лучший конечно вариант - но прост для пользователя.. Наверно всё же надо добавить номера строк (как идентификаторы), ну может ещё что то продумать..
когда для локализации (если язык не заложен изначально автором) требуется дополнительно использовать ещё какие то программы (тот же патчер)
Ну, на самом деле, не так уж это все и сложно для подготовленного человека, который знает ЧТО, КАК и ДЛЯ ЧЕГО он "локализует", а если локализовать сможет каждый, кому в голову взбредет, то результат будет...
Для правильной локализации нужно не только знать язык, но и еще знать саму программу от "А" до "я"! Лет 15-17 назад, с вхождением в обычную жизнь интернета когда софт стал достаточно доступным, в сети появилось всякого рода руССификаторов словно грязи для множества программ, можно сказать, на любой вкус. В подавляющем большинстве своем, это были дилетантские поделки от разной школоты, размахивающей "рестораторами", с формальным, зачастую неточным, переводом, да и еще порой с грамматическими ошибками. С такой "руССификацией" в программу было больно смотреть и проще и понятнее было пользоваться оригинальным английским вариантом. Даже в известных и популярных русификаторах для ММВ встречались такие "перлы" (причем, упрямо кочевали из версии в версию не один год), что в пору за живот было хвататься - помню, например, "Обрезать у клиента снизу" (речь шла об отсечении нижней части клиентской области окна)
Единственные реально приличные русификаторы делал Дмитрий Ерохин, остальное - хлам!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться