Pergunta

Eu tenho jogado com o NET construído em recursos de localização e eles parecem todos dependem de colocar dados em resx.

Mas a maioria dos sistemas não pode contar com isso porque eles são banco de dados orientado. Assim como você resolver este problema? Existe um construído em .NET maneira, ou você criar uma tabela de traduções em SQL e fazer tudo manualmente? E se você tem que fazer isso na maioria dos seus sites, há alguma razão para até mesmo usar o caminho resx de localização?

Um exemplo disso é que eu tenho uma lista de FAQ no meu site, eu manter esta lista no banco de dados para que eu possa facilmente adicionar / remover mais, mas colocando-o no banco de dados, eu não tenho nenhuma boa maneira têm traduzir esta informação em vários idiomas.

Foi útil?

Solução

Na minha opinião, localizar conteúdo dinâmico (por exemplo, o seu FAQ) deve ser feito por você em seu banco de dados. Dependendo de como as suas perguntas são armazenadas, eu provavelmente iria criar uma coluna "locale" e usar isso ao selecionar as perguntas FAQ do banco de dados. Eu não tenho certeza se isso iria escala muito bem quando você começou a localizar muitas mesas.

Para conteúdo estático (por exemplo, rótulos de campo de formulário, texto estático, ícones, etc) você provavelmente deve ficar bem usando recursos baseados em arquivos. Se você realmente queria, no entanto, parece que ele não seria super difícil para criar uma implementação de provedor de recursos personalizado que poderia lidar com isso.

Eis alguns links relacionados:

Outras dicas

Para um determinado item em seu modelo de dados, dividir a parte descrição em uma tabela localizada com uma coluna de ID de localidade (LCID).

Assim, a mesa para o produto não seria de fato conter a descrição dos produtos ou nome, mas apenas os seus valores duras e rápidas (ProductID, EAN, NumberInStock, NextStockData, isActive, IsPublished) etc.

ProductDescription contém, em seguida, ProductId, nome, descrição, LCID

Eu vivo no Canadá, então o multilinguismo é um grande negócio. Eu vi duas abordagens. Primeira opção é para armazenar todos os dados localizados para um registro específico em uma tabela diferente, ligada à tabela original pela chave primária, e a localidade. A segunda opção é semelhante à primeira, com excepção de que para cada local, existe uma tabela diferente, com o local como um sufixo para o nome da tabela.

Opção A

Item (ItemID, ...)
ItemLocal (ItemID,LocaleID,....)

A opção B

Item (ItemID, ...)
Item_ENUS (ItemID,....)
Item_ENGB (ItemID,....)
Item_FR (ItemID,....)

Uma terceira opção Pensei recente, o que seria muito bom se um banco de dados suportado nativamente seria armazenar os valores para todos os moradores no mesmo campo. E se o campo foi criado como varchar-multilocal, então você teria que acessá-lo por meio de um parâmetro para especificar o idioma. Nada como isso existe como eu sei disso, mas é algo que eu acho que seria realmente tornar as coisas muito mais fácil e muito mais fluido.

Atualmente, a tradução não é algo que pode ser feito automaticamente. A melhor maneira é fazer com que uma pessoa para traduzir e utilizar métodos de Nick para mostrar a linguagem adequada.

Nós usamos uma mistura de arquivos e Opção RESX A da resposta da Kibbee. Criamos uma ferramenta simples para gerenciar os arquivos RESX on-line: http://blog.lavablast.com/post/ 2008/02 / RESX-file-web-Editor.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top