2013-05-31 9 views
5

Quando aggiungo articolo lingua coreana con titolo ad es .: 신품lumache coreano FriendlyID

gemma FriendlyID crea lumaca vuoto e url è come /8 ... quindi questo è ID. Guarda questo link: http://www.srecipe.kr.com/articles/8

Altre lingue funzionano.

Come posso ottenere url che è mappato a lettere latine come/this-is-url da 신품?

+0

E 'stata risposta? Io non la penso così! Questo è stato contrassegnato come off topic e force closed. PER FAVORE! –

risposta

7

Come tutte queste soluzioni di permalink, ID amichevole utilizza il metodo parameterize per convertire una stringa in una stringa sicura URL. in questo modo:

require 'active_support/all' 
puts "Oh Hai There".parameterize 
=> oh-hai-there 

Il problema arriva quando si utilizzano le stringhe non ASCII, che parametrizzare sostituisce con una stringa vuota, causando il problema:

# encoding: UTF-8 
require 'active_support/all' 
puts "신품".parameterize 
=> 

ActiveSupport fornisce un modo per cambiare le stringhe non ASCII a una stretta approssimativa tramite il metodo transliterate.

# encoding: UTF-8 
require 'active_support/all' 
include ActiveSupport::Inflector 

puts transliterate("Ærøskøbing") 
=> AEroskobing 

Ma, se non conosce un carattere, verrà impostato su ??

# encoding: UTF-8 
require 'active_support/all' 
include ActiveSupport::Inflector 

puts transliterate "신품" 
=> ?? 

Tuttavia, è possibile dire al traslitterato come gestire i caratteri. Quindi, in un modello di Rails

# Store the transliterations in locales/en.yml 
en: 
    i18n: 
    transliterate: 
     rule: 
     신: "abc" 
     품: "def" 

puts transliterate "신품" 
=> "abcdef" 

Quindi, è possibile utilizzare transliterate(title).parameterize invece di parametrizzare. E se ottieni l'alfabeto coreano nella sezione traslitterata, sei vicino al dorato.

+0

per cui è possibile utilizzare http://www.rubydoc.info/gems/unidecode/1.0.0/frames –

+0

Ho dimenticato di racchiudere la regola risultante tra virgolette: I18n :: InvalidLocaleData: impossibile caricare le traduzioni da config/locales/en.yml: #

2

non provato questi ancora, ma ho intenzione di:

io riferire quando li ho provato.

+0

Dov'è il rapporto? –

+0

Commento equo. Dopo 2 anni non riesco a ricordare quali erano le mie conclusioni. Pensi che dovrei eliminare la risposta o lasciare l'elenco dei repository nel caso in cui fossero utili a qualcuno? –

+0

Il repository romaji è stato utile per me! Grazie per il link! –

Problemi correlati