@@ -51,19 +51,18 @@ module Inflector
51
51
#
52
52
# Now you can have different transliterations for each locale:
53
53
#
54
- # I18n.locale = :en
55
- # transliterate('Jürgen')
54
+ # transliterate('Jürgen', locale: :en)
56
55
# # => "Jurgen"
57
56
#
58
- # I18n.locale = :de
59
- # transliterate('Jürgen')
57
+ # transliterate('Jürgen', locale: :de)
60
58
# # => "Juergen"
61
- def transliterate ( string , replacement = "?" )
59
+ def transliterate ( string , replacement = "?" , locale : nil )
62
60
raise ArgumentError , "Can only transliterate strings. Received #{ string . class . name } " unless string . is_a? ( String )
63
61
64
62
I18n . transliterate (
65
63
ActiveSupport ::Multibyte ::Unicode . tidy_bytes ( string ) . unicode_normalize ( :nfc ) ,
66
- replacement : replacement
64
+ replacement : replacement ,
65
+ locale : locale
67
66
)
68
67
end
69
68
@@ -89,9 +88,9 @@ def transliterate(string, replacement = "?")
89
88
# parameterize("^très|Jolie-- ", separator: "_") # => "tres_jolie--"
90
89
# parameterize("^très_Jolie-- ", separator: ".") # => "tres_jolie--"
91
90
#
92
- def parameterize ( string , separator : "-" , preserve_case : false )
91
+ def parameterize ( string , separator : "-" , preserve_case : false , locale : nil )
93
92
# Replace accented chars with their ASCII equivalents.
94
- parameterized_string = transliterate ( string )
93
+ parameterized_string = transliterate ( string , locale )
95
94
96
95
# Turn unwanted chars into the separator.
97
96
parameterized_string . gsub! ( /[^a-z0-9\- _]+/i , separator )
0 commit comments