Я займався створенням програм, придатних для декількох мов на C #, оскільки мені потрібно працювати над невеликим проектом, де це саме так. Я знайшов в основному два способи зробити це:
Встановіть для властивості Localizable форми значення true, встановіть властивість Language, заповніть усі мітки тощо, і все готово. Основним недоліком, який я бачу в цьому, є: як зробити інші речі, які не є частиною форми, готовими для кількох мов (наприклад, спливаючі вікна, файли журналів чи вікна тощо).
Створіть файл ресурсу, наприклад 'Lang.en-us.resx' і один для кожної мови, наприклад 'Lang.nl-nl.resx', і заповніть його рядками. IDE, здається, автоматично генерує клас для мене, тому в коді я можу просто використовувати Lang.SomeText. Найбільший недолік, який я бачу в цьому, полягає в тому, що для кожної форми мені потрібно самостійно встановити всі мітки та інші підписи в коді (і, здається, прив'язка даних не працює з цими ресурсами).
Однак я впевнений, що для цього є й інші методи.
Отже, яка найкраща практика? Що найпростіше для невеликих додатків (кілька форм, підключення до бази даних тощо) і які масштаби найкраще підходять для великих програм?