#delphi #dxgettext
#delphi #dxgettext
Вопрос:
Графический интерфейс dxgettext Extract Translations имеет переключатель Add likely ignores to ignore po file
, но я не вижу соответствующего параметра при вызове dxgettext в качестве командной строки.
Я создаю пакетный файл, выполняющий несколько задач при подготовке нового выпуска, и я хотел бы, чтобы этап извлечения переводов вел себя аналогично, чем при вызове из пользовательского интерфейса, перемещая в отдельный файл строки, которые явно не нужно переводить.
Это параметры, которые я использую:
dxgettext -b MyProjectPath --delphi --nonascii -r --useignorepo --preserveUserComments
Спасибо.
Ответ №1:
У меня была та же проблема, что и у вас. Чтобы решить эту проблему для моего приложения с открытым исходным кодом image organizer, я использую следующий пакетный файл для извлечения строк из источников и удаления всех игнорируемых строк:
c:Utilsdxgettext -b . --delphi --nonascii --no-wrap -o:msgid -o .
c:Utilsmsgremove default.po -i OvbImgOrganizerLanguageIgnore.po -o OvbImgOrganizerLanguage.pot --no-wrap
del OvbImgOrganizerLanguageDefaultBak.po
ren default.po OvbImgOrganizerLanguageDefaultBak.po
Этот пакет запускается с текущим каталогом, являющимся каталогом исходного кода.
Комментарии:
1. Я думаю, что ваш пакет делает то же самое, что
Remove items from default domain present in ignore.po file
и переключатель пользовательского интерфейса (который я активировал с--useignorepo
помощью параметра), а неAdd likely ignores to ignore.po file
.2. Я не думаю, что это так. По умолчанию это, похоже, удаляется. по строкам из ignore.po, это переключатель
Remove items from default domain present in ignore.po file
в пользовательском интерфейсе dxgettext, и его можно выполнить с--useignorepo
помощью параметра командной строки. Но я ищу соответствующий переключательAdd likely ignores to ignore.po file
, который создает новый ignore.po со строками, исходящими из известных свойств и компонентов, отличных от пользовательского интерфейса… если я правильно понимаю.3. Где вы нашли «dxgettext Extract Translations UI»?
4. Я имею в виду
uconfig
форму, которая появляется первой, когда вы щелкаете правой кнопкой мыши по папке и выбираете действие «Извлечь переводы в шаблон …».5. Для меня это совершенно неизвестно. Какой инструмент вы установили, чтобы получить это?
Ответ №2:
Это диалоговое окно предоставляется инструментом GUI ggdxgettext.
Судя по всему, инструмент командной строки dxgettext делает это автоматически по умолчанию:
item := dom.order.Objects[j] as TPoEntry;
ignoreitem:=ignorelist.Find(item.MsgId);
if ignoreitem=nil then begin
newitem:=TPoEntry.Create;
newitem.Assign(item);
if not IsProbablyTranslatable( newitem,
nil,
nil) then
ignorelist.Add(newitem)
else
FreeAndNil (newitem);
end else begin
ignoreitem.AutoCommentList.Text:=item.AutoCommentList.Text;
end;
Но я не совсем уверен, поскольку я не пытался анализировать поток программы.
Исходные тексты доступны на SourceForge, так что вы можете проверить сами.
Комментарии:
1. Ни один из параметров, которые я пробовал, не привел к созданию нового файла ignore.po (или к обновлению существующего) с этими записями ignoreList. Но спасибо, я попробую проверить исходный код.
2. Определенно, он не сохранил список игнорирования при вызове из командной строки. Я добавил
--UPDATEIGNORE
параметр, который устанавливаетсяxgt.UpdateIgnore:=True;
TConsoleApp.Execute
, и теперь он работает так, как я ожидал. Спасибо.3. Не будете ли вы так любезны пожертвовать свои изменения? Если это так, пожалуйста, добавьте запрос функции в SourceForge и включите соответствующий код или, что еще лучше, патч. Затем я бы добавил его в репозиторий.
4. С удовольствием. Я добавил исправление. Спасибо.