From deb450b8f0de147ecee6681ba44b08ec4d9a4f8d Mon Sep 17 00:00:00 2001 From: Ivan Office Date: Wed, 18 Dec 2024 17:01:01 +0800 Subject: [PATCH] fix chinese --- app_base_chinese/__manifest__.py | 7 +- app_base_chinese/data/res_country_data.xml | 16 ++ app_base_chinese/static/description/demo4.jpg | Bin 0 -> 52020 bytes .../static/description/index.html | 198 ++++++++++-------- 4 files changed, 132 insertions(+), 89 deletions(-) create mode 100644 app_base_chinese/static/description/demo4.jpg diff --git a/app_base_chinese/__manifest__.py b/app_base_chinese/__manifest__.py index 1f4ea5b7..563160cc 100644 --- a/app_base_chinese/__manifest__.py +++ b/app_base_chinese/__manifest__.py @@ -17,8 +17,8 @@ { - 'name': 'odoo中文版套件之基础,中国会计基础,Chinese Enhance All in One,', - 'version': '16.24.12.16', + 'name': 'odoo中国版,中文本土化套件,中国会计基础,Odoo Chinese localization Enhance All in One', + 'version': '16.24.12.18', 'author': 'odooai.cn', 'category': 'Base', 'website': 'https://www.odooai.cn', @@ -28,7 +28,7 @@ 'price': 0, 'currency': 'EUR', 'summary': ''' - odoo简体中文版全面增强. Chinese enhance. Out of the box use odoo in china. Chinese address format, number format, money format. + odoo简体中文版全面增强. 更具政策敏感性的翻译。Chinese enhance. Out of the box use odoo in china. Chinese address format, number format, money format. Set all chinese default value. Default country, timezone, currency, partner.中国会计基础模块. ''', 'description': ''' @@ -49,6 +49,7 @@ 14. 常用小数精度调整 15. 销售团队改为中国 16. 精简语言的显示,如 Chinese简体中文改为 中文 + 17. 将'国家'字段处理为'国家/地区',避免政策敏感问题(需配合我司Odoo中文翻译) 21. 多语言支持,多公司支持 22. Odoo 18,17,16,15,14,13,12, 企业版,社区版,在线SaaS.sh版,等全版本支持 23. 代码完全开源 diff --git a/app_base_chinese/data/res_country_data.xml b/app_base_chinese/data/res_country_data.xml index 6a046c5d..29c5d167 100644 --- a/app_base_chinese/data/res_country_data.xml +++ b/app_base_chinese/data/res_country_data.xml @@ -7,5 +7,21 @@ + + + + + + + + + + + + + + + + diff --git a/app_base_chinese/static/description/demo4.jpg b/app_base_chinese/static/description/demo4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d08e726f65add20a6a3cda1b426bc1fba78c12d1 GIT binary patch literal 52020 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 Hef56;&{}+f literal 0 HcmV?d00001 diff --git a/app_base_chinese/static/description/index.html b/app_base_chinese/static/description/index.html index ee00a822..65dfbae6 100644 --- a/app_base_chinese/static/description/index.html +++ b/app_base_chinese/static/description/index.html @@ -1,93 +1,109 @@ + + + + +
+

Odoo Chinese localization Enhance All in One.Local customize for china user

+

odoo中国版,中文本土化套件之基础框架,中国会计基础

+

20+项中文优化,配合 www.odooapp.cn 的Odoo中文翻译版使用最佳

+
+ +
-
+
-

Chinese Enhance All in One。 Local customize for china user

-

20+ chinese setting enhance.

-
-

Latest update: v16.23.08.02

-
-
- Key features: -
    -
  • - - 1. Chinese address format, applicable to all Chinese customers, suppliers, partners, users, employee information etc. -
  • -
  • - - 2. Default values in Chinese such as country, time zone and currency. Processing module base, product. -
  • -
  • - - 3. Add customer abbreviation and display addresses in Chinese; prioritize displaying customer codes. -
  • -
  • - - 4. Display phone numbers along with mobile numbers for customer addresses. -
  • -
  • - - 5. Currency processing with added sorting display. -
  • -
  • - - 6. Fixed bug where the category list and m2o field did not display the name of the Chinese directory. -
  • -
  • - - 7. Fixed bug where warehouse location list and m2o field did not display the name of the Chinese directory. -
  • -
  • - - 8. Superuser changed time zone to China. -
  • -
  • - - 9. Date format is year-month-day (e.g., 2023-08-08) and time is 12:34 -
  • -
  • - - 10.Country sorting added; China ranked first -
  • -
  • - - 11.Display payment-related information according to typical practices in China. -
  • -
  • - - 12.Default export translation is set to Mandarin (po). -
  • -
  • - - 13.Added 'name_en_US' field in base model which updates translation value when assigned a value. -
  • -
  • - - 14.Common decimal precision adjustments made. -
  • -
  • - - 15.Sales team changed to "China". -
  • -
  • - - 21. Multi-language Support. Multi-Company Support. -
  • -
  • - - 22. Support Odoo 18,17,16,15,14,13,12, Enterprise and Community and odoo.sh Edition. -
  • -
  • - - 23. Full Open Source.. -
  • -
-
-
-
- +

Latest update: v18.0.24.12.18

+
+
+ Key features: +
    +
  • + + 1. Chinese address format, applicable to all Chinese customers, suppliers, partners, users, employee information etc. +
  • +
  • + + 2. Default values in Chinese such as country, time zone and currency. Processing module base, product. +
  • +
  • + + 3. Add customer abbreviation and display addresses in Chinese; prioritize displaying customer codes. +
  • +
  • + + 4. Display phone numbers along with mobile numbers for customer addresses. +
  • +
  • + + 5. Currency processing with added sorting display. +
  • +
  • + + 6. Fixed bug where the category list and m2o field did not display the name of the Chinese directory. +
  • +
  • + + 7. Fixed bug where warehouse location list and m2o field did not display the name of the Chinese directory. +
  • +
  • + + 8. Superuser changed time zone to China. +
  • +
  • + + 9. Date format is year-month-day (e.g., 2023-08-08) and time is 12:34 +
  • +
  • + + 10.Country sorting added; China ranked first +
  • +
  • + + 11.Display payment-related information according to typical practices in China. +
  • +
  • + + 12.Default export translation is set to Mandarin (po). +
  • +
  • + + 13.Added 'name_en_US' field in base model which updates translation value when assigned a value. +
  • +
  • + + 14.Common decimal precision adjustments made. +
  • +
  • + + 15.Sales team changed to "China". +
  • +
  • + + 16.Correct the 'Country' to '国家/地区', More Policy sensitivity. +
  • +
  • + + 21. Multi-language Support. Multi-Company Support. +
  • +
  • + + 22. Support Odoo 18,17,16,15,14,13,12, Enterprise and Community and odoo.sh Edition. +
  • +
  • + + 23. Full Open Source.. +
  • +
+
+ +
@@ -120,6 +136,15 @@ +
+
+

将'国家'字段处理为'国家/地区',避免政策敏感问题(需配合我司Odoo中文翻译)

+
+ +
+
+
+
@@ -154,3 +179,4 @@
+ \ No newline at end of file