Tenho procurado criar aplicativos adequados para várias linguagens em C #, já que preciso trabalhar em um pequeno projeto onde esse é o caso. Eu descobri basicamente duas maneiras de fazer isso:
Defina a propriedade Localizable de um formulário como true, defina a propriedade Language, preencha todos os rótulos e tal, e pronto. A principal desvantagem que vejo nisso é: como fazer outras coisas que não fazem parte de um formulário prontas para vários idiomas (por exemplo, janelas pop-up, arquivos de log ou janelas, etc).
Crie um arquivo de recurso, por exemplo 'Lang.en-us.resx' e um para cada idioma, por exemplo 'Lang.nl-nl.resx' e preencha-o com Strings. O IDE parece gerar uma classe para mim automaticamente, portanto, no código, posso apenas usar Lang.SomeText. A maior desvantagem que vejo nisso é: para cada formulário, eu mesmo preciso definir todos os rótulos e outras legendas no código (e não parece que a vinculação de dados funciona com esses recursos).
Tenho certeza, entretanto, de que existem outros métodos para fazer isso também.
Então, qual é a melhor prática? O que é mais fácil para aplicativos pequenos (alguns formulários, conexão de banco de dados, etc.) e o que é mais fácil para aplicativos maiores?