2013-05-31 29 views
5

Khi tôi thêm bài viết trong ngôn ngữ Hàn Quốc với tiêu đề ví dụ .: 신품sên Hàn Quốc FriendlyID

đá quý FriendlyID tạo sên trống và url là như /8 ... vì vậy đây là ID. Nhìn vào liên kết này: http://www.srecipe.kr.com/articles/8

Các ngôn ngữ khác hoạt động.

Làm cách nào để có được url được ánh xạ tới các chữ cái Latinh như/this-is-url từ 신품?

+0

Đã được trả lời? Tôi không nghĩ vậy! Điều đó đã được đánh dấu là tắt chủ đề và lực lượng đóng cửa. XIN VUI LÒNG! –

Trả lời

7

Giống như tất cả các giải pháp permalink này, ID thân thiện sử dụng phương pháp parameterize để chuyển đổi chuỗi thành chuỗi an toàn URL. như vậy:

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

vấn đề này được đưa ra trong khi bạn sử dụng chuỗi ASCII thuốc, mà parameterize thay thế bằng một chuỗi rỗng, gây ra vấn đề của bạn:

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

ActiveSupport cung cấp một cách để thay đổi chuỗi phi ASCII để gần đúng thông qua phương pháp transliterate.

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

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

Nhưng, nếu nó không biết về một ký tự, nó sẽ mặc định?

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

puts transliterate "신품" 
=> ?? 

Tuy nhiên, bạn có thể nói phiên âm cách xử lý ký tự. Vì vậy, trong mô hình Rails

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

puts transliterate "신품" 
=> "abcdef" 

Vì vậy, bạn có thể sử dụng transliterate(title).parameterize thay vì chỉ tham số hóa. Và nếu bạn lấy bảng chữ cái Hàn Quốc vào phần phiên âm, bạn gần bằng vàng.

+0

mà bạn có thể sử dụng http://www.rubydoc.info/gems/unidecode/1.0.0/frames –

+0

Tôi quên bọc quy tắc kết quả trong dấu ngoặc kép: I18n :: InvalidLocaleData: không thể tải bản dịch từ cấu hình/locale/en.yml: #

2

Không thử những chưa nhưng tôi sẽ:

tôi sẽ báo cáo lại khi tôi đã cố gắng cho họ.

+0

Báo cáo ở đâu? –

+0

Nhận xét công bằng. 2+ năm sau, tôi không thể nhớ kết luận của mình là gì. Bạn có nghĩ rằng tôi nên xóa trả lời hoặc để lại danh sách các repos ở đó trong trường hợp họ có ích cho ai đó không? –

+0

Các repo romaji là hữu ích cho tôi! Cảm ơn vi đương link! –

Các vấn đề liên quan