2015-07-14 18 views
17

Tôi đang cố gắng sử dụng I18n.transliterate để "chuẩn hóa" một số văn bản có ký tự có dấu để tôi có thể phân tích và so sánh nó với các ngôn ngữ khác nhau.I18n :: InvalidLocale:: vi không phải là ngôn ngữ hợp lệ

Tuy nhiên, khi sử dụng phương pháp này được lỗi sau bật ra

I18n::InvalidLocale: :en is not a valid locale 
    from /home/xxx/.rvm/gems/ruby-2.1.5/gems/i18n-0.7.0/lib/i18n.rb:284:in `enforce_available_locales!' 
    from /home/xxx/.rvm/gems/ruby-2.1.5/gems/i18n-0.7.0/lib/i18n.rb:235:in `transliterate' 
    from (irb):2 
    from /home/xxx/.rvm/rubies/ruby-2.1.5/bin/irb:11:in `<main>' 

Tôi đã thực hiện một số tìm kiếm cho vấn đề này và tôi chỉ tìm thấy các giải pháp liên quan đến cấu hình Rails. Tôi chỉ sử dụng nó trong một tập tin Ruby, không có gì liên quan đến Rails, vì vậy ... Tôi có thể làm gì?

Trả lời

35

Tôi dường như có vấn đề tương tự mà tôi đã giải quyết bằng cách kiểm tra mã nguồn được liên kết với lỗi.

tôi thấy tôi phải thiết lập một cách rõ ràng miền địa phương có sẵn như vậy:

I18n.config.available_locales = :en 

Tôi không chắc chắn nếu điều này là cách tiếp cận đúng, tôi cũng thấy rằng những điều sau đây đạt được tác dụng tương tự và có thể hơn mạnh mẽ.

+0

Điều này phải được đánh dấu là câu trả lời –

+0

Ở đâu? những gì tập tin? –

+0

@ArnoldRoa chỉ là bất kỳ tệp nào trong thư mục 'config/initializers', bạn có thể sử dụng' text_resources.rb' – bigsolom

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