Pergunta

Eu tenho um site que acabará por apoiar 4 idiomas e 2 países (EUA e Canadá, inglês e espanhol)

Eu estou querendo saber qual é a melhor maneira de configurar a estrutura de diretório?

Agora, eu tenho um site raiz chamado site.com:

Isto irá levá-lo para uma página onde você escolher o seu país e idioma.

Idealmente, eu quero ter o diretório assim:

site.com/ca/en/ (Canada English)
site.com/ca/fr/ (Canada French)
site.com/us/en/ (US English)
site.com/us/es/ (US Spanish)

Mas isso vai significar eu vou estar colocando um "ca" e um "nós" do diretório virtual e linguagem diretórios virtuais dentro disso. É uma boa prática, ou devo fazer algo como:

site.com/ca-en/ (Canada English)
site.com/ca-fr/ (Canada French)
site.com/us-en/ (US English)
site.com/us-es/ (US Spanish)

edit: Eu fiz o seguinte:

Há um diretório fictício: / ca / ??e / us / na aplicação. Ambos têm um default.aspx que é apenas um redirecionamento. No meu caso, eu redirecioná-los para seus sites de língua inglesa:

Por exemplo: site.com/ca/ -> site.com/ca/en/ site.com/us/ -> site.com/us/en /

Se site.com for inserido, você é empurrado para uma página de seleção de idioma. Basicamente, eu uso uma expressão regular no Global.asax em cada solicitação de olhar para a cadeia de idioma / cultura.

Este tem os seguintes benefícios. separação país. Então, você tem controle sobre site.com/ca/ ou site.com/us/ e são capazes de fornecer uma URL simples para cada país.

De qualquer forma, os diretórios virtuais / en /, / fr / e / es / estão dentro de suas pastas físicas respectivo país.

Então, você tem as seguintes (Dirs virtuais estão em negrito ):

site.com/ca/ en / (default) site.com/ca/fr/ site.com/us/en/ (padrão) site.com/us/es /

O que isto significa é que você precisa ter cinco aplicações (idênticas), exceto que você pode usar a URL para obter o idioma atual e do país (e apontá-lo para o banco de dados à direita).

Foi útil?

Solução 2

Bem, eles querem que a URL a ser diferente para cada site.

Essencialmente, é na verdade um site (por motivos de manutenção) e estamos usando globalização para determinar qual seqüência de conexão para uso (bancos de dados diferentes, estruturas idênticas em cada um)

Cada vez que publicar vou publicar em quatro locais. aplicativo idênticos.

Globalização usando um soa URL como uma boa idéia, mas eu não acho que isso irá aranha corretamente, e mesmo se isso acontecer, não oferece uma boa ligação bookmarkable. (Pessoa francesa envia link para outra pessoa francês usando um conjunto de computador para Inglês). Há outras implicações, mas há uma razão sites como maçã e usar o Microsoft URLs diferentes para cada idioma / cultura.

Em cada sessão começar, eu verificar a url, e definir as seqüências de conexão em conformidade.

No final, eu só colocar a / ca / ??e / us / diretório na aplicação principal, adicione alguns diretórios virtuais para cada idioma fazer um redirecionamento reponse para a página de "escolher um idioma".

Talvez não seja a melhor solução, mas parece estar funcionando.

Outra vantagem de fazê-lo desta maneira é se há alguma página especial que só se aplica a um site, ele pode ser adicionado a esse site só.

Outras dicas

Por que não ter um site e verificar a configuração do cliente (request.servervariables / HTTP_ACCEPT_LANGUAGE) para o idioma preferido de usar e usando o construído em globalização em asp.Net?

Se o conteúdo totalmente diferente neste período, dependendo do país / idioma então eu posso entender por que separá-los assim.

nomenclatura geralmente aceite para a localização é ll-CC para código de país hífen código do idioma. exemplo: en-US, embora en-US seria provavelmente o padrão com en-GB ou en-CA como fallbacks ... es-MX etc também são dignos. Pode ser melhor usar subdomínios, porém, o que permitiria a separação de recursos sem carga complexo regras de equilíbrio na frente. ex: us.en.yoursite.com ... isso também permite uma repartição mais fácil de servidores em um ambiente webfarm. Gostaria de sugerir ter o código real o mesmo com uma mudança configurações por site para coincidir com a localização. Em seguida, use um recurso de localização que você passar em uma chave textual, ea tradução é resolvido com base no padrão de localização do site. Nota: .NET e outras plataformas oferecem opções de localização de recursos construído em

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