Vietnamese slug cho Discourse
Em cũng chiến đấu với Discourse gần đây. Có viết 1 cái improve nhỏ cho Discourse để hỗ trợ Vietnamese slug. Nhưng mà pull request hoài mà không chấp nhận. Admin hay anh em nào giúp em hoàn thành để pull request vào core Discourse luôn. Code hiện tại hoạt động rất tốt.
Code:
https://github.com/thangngoc89/discourse/blob/master/lib/slug.rb
Website của em : ask.hoidapyhoc.com
Các lỗi còn tồn tại: chỉ hỗ trợ unicode dựng sẵn (1 byte) , chưa chơi với unicode tổ hợp (2 byte).
(Không thể theo cách này được vì 2 byte)
Jeff không đồng ý với slug này đâu đâu. @thangngoc89 phải thay vào
thành
Nếu stringex có
'vi'
Cái này là tuyệt đối không được.
cái này không phải là chức năng trong core nên reject là hoàn toàn dễ hiểu mà.
bạn phát triển riêng thành module plugin là được
thêm cả code style của bạn hardcode hơi quá, nhét cả text unicode vô trong string nữa là không được.
thiếu cả không có tests suite.
Ngày trước Jeff không đồng ý, nhưng sau này thì họ đồng ý slug cho các ngôn ngữ khác tiếng anh.
Nhưng theo post của @thangngoc89 trên meta.discourse.org thì em nghĩ là có giải pháp. Với điều kiện mình khai báo cho stringex
Do em không có rành về Ruby (chỉ nghiên cứu khi đến với Discourse) nên không rõ nữa.
@ltd anh có thể tiếp tục nghiên cứu không nhỉ?
@laptrinhio trong php mình có contribute vào cái Slugify. Bây giờ làm project nào thì chỉ cần require nó là được. Ruby thì mình mù tịt
Cái stringex
vi
này có vẻ không ổn lắm:thangngoc89/stringex/blob/7917085cee35f9a14b4782f48eb1a2d5cd0a73bf/locales/vi.yml
This file has been truncated. show originalĐạt cũng không rành Ruby, nhưng mình phải giải quyết theo cách sử dụng stringex cho nó gọn code chứ không thể làm 2 cái mảng như thế này được
P/S: Đã star cái này lại và nghiên cứu
@ltd cái Stringex đúng là rất không ổn.
github.com
Ngó phát qua php thì nó sẽ ra thế này
cocur/slugify/blob/master/src/Slugify.php#L444-534
This file has been truncated. show originalKhông, @thangngoc89 hiểu sai vấn đề rồi, cách họ translate vẫn rất ổn.
rsl/stringex/blob/39866d8235b757dcbcd80761f2150a799f8aa020/locales/pl.yml#L71-L88
Trước hết mình phải pull request cho
stringex vi
trước, Tuy nhiên cái commit chostringex vi
này chưa được ổnthangngoc89/stringex/blob/7917085cee35f9a14b4782f48eb1a2d5cd0a73bf/locales/vi.yml
This file has been truncated. show originalVà mình thiếu test cho cái
stringex vi
này@ltd vấn đề là nằm ở chỗ default locale của Discourse. Mình không thể setting Vietnamese lên làm mặc định được :
https://www.transifex.com/projects/p/discourse-org/language/vi_VN/
Công việc translate mới được 36% (thời gian gần đây chỉ có mình làm việc translate này)
Test file thì gần như Khoa không biết làm (Ruby noob)
Có hai lý do mà Đạt không làm cái này bởi vì
Về cái slug thì trước đây Đạt cũng nghĩ tới, có thể sẽ làm cái slug này ở local thôi, không nhất thiết phải đưa vào core.
Okie. Đạt. Hy vọng là sẽ có được một giải pháp slug nhẹ nhàng, phù hợp cho Discourse.
@thangngoc89, cái code đầu tiên bạn đưa ra ở trên của bạn cũng có thể apply cho DC local được rồi đấy, không nhất thiết phải PR để đưa vào core.
còn nếu muốn vào core thì phải làm như post trên:
Okie @ltd mình đang áp dụng nó cho local mà.
@ltd Không có gì mới, chỉ gom nó vào 1 plugin thôi
GitHub
thangngoc89/discourse-vietnamese-slug
Add Vietnamese Slug to Discourse. Contribute to thangngoc89/discourse-vietnamese-slug development by creating an account on GitHub.
Nice, Đạt sẽ install cái này vào, nếu có bug thì Đạt sẽ report
P/S: Đã install rồi nhé @thangngoc89, chạy rất tốt
Còn 1 lỗi mà làm biếng chưa bao giờ làm đó là hỗ trợ unicode tổ hợp (combine unicode)
Ví dụ topic: Hỏi vui: Mọi người hay gọi hai ký tự này là gì: '/' '\'
oh, unicode tổ hợp nó có ký tự khác hả? Vậy còn có unicode nào nữa không?
Chỉ đơn giản là quăng 1 bộ kí tự unicode và là xong
Cái topic kia bị thế có thể là do em dùng bàn phím swype trên android nên nó k giống bình thường
Như @thangngoc89 nói thì unicode tổ hợp bị lỗi. Rất có thể swype cũng sử dụng unicode tổ hợp. Cái này fix cũng dễ thôi. Có điều lười
Để sang Sing mà thấy không có ai làm thì Đạt commit cho bộ unicode tổ hợp.