Domanda

Mi chiedevo come gestissi i permalink su siti internazionali. Per permalink intendo un link che è unico e leggibile dall'uomo.

es. per le frasi in inglese non è un problema, ad es. / prodotto / qualche-titolo /

ma cosa fai se il titolo del prodotto è in cinese? come gestisci questo problema?

Sto implementando un sito internazionale e un requisito è avere URL leggibili dall'uomo. Grazie per ogni commento

È stato utile?

Soluzione

Che ne dici di uno schema come / productid / {product-id-number} / some-title / dove il sito guarda il {numero} e ignora interamente la parte "some-title". Puoi metterlo in qualsiasi lingua o codifica ti piaccia, perché non viene utilizzato.

Altri suggerimenti

I caratteri al di fuori del set ISO Latin-1 non sono consentiti negli URL in base a questa specifica , quindi le stringhe cinesi sarebbero immediatamente disponibili.

Dove è possibile localizzare il nome del prodotto, è possibile utilizzare URL come <DOMAIN>/<LANGUAGE>/DIR/<PRODUCT_TRANSLATED>, ad esempio:

http://www.example.com/en/products/cat/
http://www.example.com/fr/products/chat/

accompagnato da una mod_rewrite all'effetto di:

RewriteRule ^([a-z]+)/product/([a-z]+)? product_lookup.php?lang=$1&product=$2

Per il primo esempio sopra, questa regola chiamerà product_lookup.php?lang=en&product=cat. All'interno di questo script puoi accedere al motore di traduzione interno (dal parametro lang, en in questo caso) per fare la stessa traduzione che fai sul lato dell'utente per tradurre, ad esempio, " Chat " sulla pagina francese, " Cat " sull'inglese, ecc.

Usare un'API di traduzione esterna sarebbe una buona idea, ma difficile da ottenere uno affidabile che funzioni correttamente nel tuo dominio aziendale. Google ha aperto una API di traduzione , ma attualmente supporta solo un numero limitato di lingue.

  
      
  • Inglese < = > Arabo
  •   
  • Inglese < = > Cinese
  •   
  • Inglese < = > Russo
  •   

Dai un'occhiata a Wikipedia . Usano i caratteri nazionali negli URL.

Ad esempio, l'URL della home page russa è: http://ru.wikipedia.org/wiki/ & # 1047; & # 1072; & # 1075; & # 1083; & # 1072; & # 1074; # 1085 &; # 1072 &; # 1103 &; _ # 1089 &; # 1090 &; # 1088 &; # 1072 &; & # 1085; # 1080 &; # 1094 &; & # 1072; . Il browser codifica in modo trasparente tutti i caratteri non ASCII e li sostituisce con i loro codici durante l'invio dell'URL al server. Ma sulla pagina web tutti gli URL sono leggibili dall'uomo.

Quindi non devi fare nulla di speciale: inserisci i nomi dei tuoi prodotti negli URL così come sono. Il server web dovrebbe essere in grado di decodificarli automaticamente per la tua applicazione.

Di solito traduco i caratteri non ascii. Ad esempio & Quot; t & # 228; st & Quot; diventerebbe " taest " ;. GNU iconv può farlo per te (sono sicuro che ci sono altre librerie):

$ echo täst | iconv -t 'ascii//translit'
taest

Purtroppo, queste traslitterazioni dipendono dalle impostazioni locali: in lingue diverse dal tedesco, '& # 228;' potrebbe essere tradotto semplicemente come "a", per esempio. D'altra parte, dovrebbe esserci una traslitterazione per ogni set di caratteri (comunemente usato) in ASCII.

Se la memoria serve, puoi usare solo lettere inglesi negli URL. C'è una discussione per cambiarlo, ma sono abbastanza sicuro che non sia stato ancora implementato.

detto questo, avresti bisogno di avere una tabella di ricerca in cui assegni traduzioni di prodotti / titoli in qualunque parola che saranno nell'altra lingua. Ad esempio:

foo.com/cat dovrà cercare una traduzione per " cat " quot &; & gato quot; & Quot; quot neko &; ecc.

Quindi il tuo modulo HTTP che analizza quegli oggetti di lettura umani in un URL esatto saprà quale pagina servire in base alle traduzioni.

La creazione di una ricerca per una cosa del genere mi sembra inondare. Non riesco a creare una ricerca per tutte le diverse parole in tutte le lingue. Forse accedere a un'API di traduzione sarebbe una buona idea.

Per quanto posso vedere non è possibile utilizzare caratteri stranieri nel permalink in quanto i sepec dell'URL non lo consentono.

Cosa pensi della codifica dei caratteri speciali? allora quegli URL sono riconosciuti da Google?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top