Erreur 'Body semble indéfini' lorsque les utilisateurs tapent en chinois

يسعدني رؤية هذا الأمر معالجًا! :+1: ندير منتدى دوليًا وبينما الإنجليزية هي اللغة الرئيسية، لدينا فئات مخصصة للغات أخرى وكان هذا مصدر إزعاج طويل الأمد.

الآن بعد أن تم استخدام skipped_locale فقط لـ seems_unpretentious، أتساءل عما إذا كان بإمكاننا تخطي ‘ko’ لأن اللغة الكورية الحديثة تستخدم المسافات؟ ضع في اعتبارك أنني لا أتحدث الكورية، لذلك قد ترغب في التحقق من ذلك مرة أخرى.

بينما لفت انتباهك، هناك شيء آخر أعتقد أنه يمكن أن يكون تحسينًا سهلاً لـ TextSentinel ولكني لم أجرؤ على لمسه (مرة أخرى، لست مطور Ruby). إذا كان لديك لحظة، أعتقد أنه بسيط جدًا ويمكن أن يحقق مكاسب أداء مجانية.

على حد فهمي، هذا يتحقق مما إذا كانت الكلمة أطول من الحد عن طريق تقسيم النص إلى كلمات، وحساب طول كل كلمة، ومسح جميع الأطوال للعثور على الأطول، ثم مقارنة ذلك بالحد.

هل يمكننا ربما تخطي كل ذلك عن طريق محاولة مطابقة النص مع شيء مثل /\\p{Alnum}{#{max_word_length + 1},}/ (الصيغة على الأرجح خاطئة، ولكن نأمل أن تفهم الفكرة)؟

بدون معرفة العمليات الداخلية لـ Ruby، من المرجح أن يتوقف التحقق بمجرد وجود تطابق، وإذا لم تكن هناك كلمة طويلة جدًا (وهي الحالة الأكثر شيوعًا)، يتم مسح النص مرة واحدة فقط، مع تخطي التقسيم، وفحص طول الكلمة الفردية، وما إلى ذلك.

آسف إذا كنت أقوم باختطاف الموضوع هنا، ولكن نظرًا لأن طلب السحب الجديد قد تم دمجه بالفعل، لست متأكدًا من أفضل مكان لنشر هذا لأنه ربما يكون صغيرًا جدًا بحيث لا يستحق موضوعًا جديدًا، ولكنه يبدو مكسبًا سهلاً. لا تتردد في المضي قدمًا.

إعجاب واحد (1)