لقد جربت الترميز ولكن في الواقع يمكن رؤية عنوان URL بشكل جيد في شريط عنوان متصفح الإنترنت. ومع ذلك، عند نسخه أو إرساله، يكون عنوان URL الفعلي عبارة عن سلسلة هروب وغير ودود بعد الآن.
لقد تحققت من lib/slug.rb واقترحت تغيير دالة encoded_generator بهذا الشكل:
def self.encoded_generator(string, downcase: true)
# This generator will sanitize almost all special characters,
# including reserved characters from RFC3986.
# See also URI::REGEXP::PATTERN.
string = I18n.transliterate(string, :locale => SiteSetting.default_locale)
string = string.strip.gsub(/\s+/, "-").gsub(CHAR_FILTER_REGEXP, "")
string = string.downcase if downcase
string
#CGI.escape(string)
end
لقد جربت مع إعدادات اللغة الفيتنامية وحصلت على النتائج المرجوة. آمل أن يعمل مع لغات أخرى.
لستُ كاتب أكواد روبي، ولكن قرأت المستند ووجدت هذا:
Setting a Hash in <locale>.yml:
i18n:
transliterate:
rule:
ü: "ue"
ö: "oe"
لذلك هذه هي الطريقة لتخصيص النسخ الصوتي في الإعداد، في نهاية الدالة، نحصل على نص لاتيني (عنوان URL مناسب) فقط. لقد جربت بلغتي الأم، ولا حاجة لتعريف إعدادات هاش مخصصة.