Как лучше всего локализовать приложение WPF без LocBAML?

Кажется, нет хорошего способа локализовать приложение WPF. MSDN, похоже, думает, что засорение моего XAML с помощью x:Uid, создание файлов CSV, а затем создание новых сборок (с использованием их примера кода!) - это ответ. Хуже того, этот процесс не касается того, как локализовать изображения, двоичные капли (скажем, файлы PDF) или строки, встроенные в код.

Итак, как бы вы могли локализовать приложение, которое:

  1. Содержит несколько сборок
  2. Содержит изображения и другие двоичные объекты (например, PDF-документы), которые необходимо локализовать.
  3. Имеет строковые данные, которых нет в XAML (например, MessageBox.Show("Hello World");)

У принятого вами ответа есть несколько ответов. Можете указать, что вы выбрали?

Dmitriy 05.03.2012 16:36

Это было так давно, я забыл! Дох!

Cory R. King 05.03.2012 21:27
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
21
2
9 000
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Здесь не эксперт, но «засорять» ваш xaml x: Uids не хуже, чем «засорять» код Windows Forms всей бессмыслицей с таблицами строк, которую вы должны сделать для их локализации.

Насколько я понимаю, приложения WPF по-прежнему поддерживают «все ресурсы CLR Framework, включая строковые таблицы, изображения и т. д.». Это означает, что у вас могут быть локализованные ресурсы.

Конечно, было бы намного проще, если бы вы создали расширение разметки, которое обрабатывало бы большую часть этой ерунды за вас. Вы можете найти пример того, как кто-то делает это здесь. И было другое, похожее решение на http://blog.taggersoft.com/2008/07/wpf-application-localization-pattern_29.html, но эта ссылка больше не работает.

Привет, ребята, на данный момент это ответ почти восемь лет. Поищите более свежую информацию о локализации приложений WPF. Не нужно голосовать за ответ, просто проголосуйте за этот комментарий / оставьте подробную информацию о том, что вы нашли!

user1228 01.09.2015 23:17

Вы можете использовать старые файлы «ResX», которые поддерживают все упомянутые вами сценарии. Как это можно сделать в приложении WPF, объясняется здесь:

Платформа приложений WPF (WAF) => См. Образец локализации

Вам следует взглянуть на статью и доступный код здесь. В нем описаны различные способы локализации приложений WPF с использованием LocBaml, настраиваемых расширений разметки или вложенных свойств. ИМХО лучшее решение - использовать расширения разметки и ресурсы Resx. Код содержит для этого платформу локализации.

попробуйте утилиты Gnu GetText и вспомогательные приложения. Он выполняет классы сгенерировать C#, основанные на ResourceManager и ResourceSets, и, конечно же, вы можете повторно использовать переводы для других частей вашего приложения - например, веб-страниц, собственного кода или iphone и т. д.

Другие вопросы по теме