Multi language Environment (Chinese and English) - howto display every translated "thing"?

Hi @ll,
I want to use ERPNext in a multi language Environment, at least in Chinese and English.

In this setup the English speaking users are not able to read Chinese (Hanzi) … and many of the Chinese speaking users are not able to read Englisch.

For that I need a “translation for everything”, but even if I fill up the translation list … in many cases the translation is not displayed, sometimes I can customize it (hook at “translation”) … sometimes I even cannot find a way to display the translation … especially in case of ID fields/ Table views / “Choosing lists” …

Do I need to do a “general” thing for full translation … or how does the “multi language” works?

Best regards
schmutzfuss

2 Likes

encourage you to install two localized app for Chinese

https://gitee.com/yuzelin/erpnext_oob

especially erpnext_oob fixed some untranslatable strings via hooks (i.e always load translated text for those source text not retrieved in standard system) and changed labels(for same label with different meaning in different context).

welcome to join our local community QQ group 756185211

1 Like

May be this link can help you.

Set Language.

Thanks & Regards,
Karan.

Hi Karan,
that’s actually how I tried it, additional with adding some translations hooks and many translations … but it doesn’t work in all cases. Probably it would be enough if all user have a base knowledge about the “setup” language in openerp. But that’s not the case here.

Anyway, thank you for your feedback :slight_smile:

Greetings
schmutzfuss

@szufisher
thank you … I will check it out … “but” looks all chinese (I mean also your documentation, e.g. howto install) :wink: … I will try to translate and install it … but one question before.

Is the installation for multi language or is suddenly all in Chinese and the English speakers are lost? And what should be the setup language, can it be e.g. English and every Chinese speaker can read all (coz of your app) or should it be Chinese?

Greetings
schmutzfuss

@szufisher,
i tried to download your app …
bench get-app --branch version-14 https://gitee.com/yuzelin/erpnext_oob.git

but got an error …

bench get-app --branch version-14 https://gitee.com/yuzelin/erpnext_oob.git
Getting erpnext_oob
$ git clone https://gitee.com/yuzelin/erpnext_oob.git --branch version-14 --depth 1 --origin upstream
Cloning into 'erpnext_oob'...
remote: Enumerating objects: 123, done.
remote: Counting objects: 100% (123/123), done.
remote: Compressing objects: 100% (114/114), done.
remote: Total 123 (delta 0), reused 43 (delta 0), pack-reused 0
Receiving objects: 100% (123/123), 257.07 KiB | 671.00 KiB/s, done.
Ignoring dependencies of https://gitee.com/yuzelin/erpnext_oob.git. To install dependencies use --resolve-deps
Installing erpnext_oob
$ /opt/bench/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /opt/bench/frappe-bench/apps/erpnext_oob 
ERROR: Could not find a version that satisfies the requirement erpnext_chinese (from erpnext-oob) (from versions: none)
ERROR: No matching distribution found for erpnext_chinese
ERROR: 
Traceback (m

i will downlaod it on another way … this feedback only in case you like to know it.

because current erpnext_chinese is on verson 13 which is also compatible with version 14. when you try to install erpnext_oob on version 14, it will auto install the dependency erpnext_chinese on version 14 too.

so please first install erpnext_chinese without the branch option, it will auto select the master branch which is version 13.

it will depend on user language setting in user master.

Again this topic, coz still no idea how to solve it.

Hi Community,
does someone has experience with a “real” multi language environment? I’m struggling with a full translation, don’t know how to realize it … already thinking it’s impossible … but maybe someone can give me a helpful hint?

Our Environment is a combination of European and chinese users, so we need even to translate productnames, accountnames, storage names, material names, and so on and so on…

If i setup in Chinese, the western user cannot read many values, if I setup in English (I would prefer that, as the world language), the Chinese user cannot read many values

Just one Example made by user input:
Productname English: Cola
Productname Chinese: 可乐
and one example made by initial setup
Warehouse (English): Goods In Transit
Warehouse (Chinese): 在制品
Whatever you choose, for the other language is not translated, even if I make the field translatable and add the translation. This is he same with the predefined values, which you get after initial setup.

Any idea how to deal with that?

Best regards
schmutzfuss

P.S.
Is there a change to ask/contact the developers, how they recommend to deal with that issue?

to translate field values follow below steps

  1. check Translatable for the target field in custom form

  2. translate the value in popup dialog by clicking the global icon beside the field label

  3. print view switch to the target language

  1. if you want like to see field value in user logon language in the standard list/form/report view, custom field with small script in 2nd language needed.

  2. here the client script for your kind reference, mouse over display the translated value

frappe.ui.form.on('Item', {
	refresh(frm) {
	    let f = frm.get_field('item_name');
		f.$input_wrapper.attr('title', __(frm.doc.item_name));
	}
})

anyway, if you need further help you can join our local community.

1 Like

Hi,
thx for your answer … maybe I didn’t mention it, the print out in reports is no problem, I already did before what you described, and the reports ar ok so far. But for the daily work, the employees cannot always make a print, to see where they have to click …

Or is do you get the same translation in the GUI? … Coz I cannot get (see) that translation in the GUI…

after created the client script, in the item form view, poit your mouse/cursor on item name value , you will see the hint in Chinese.

here the updated version of the client script

frappe.ui.form.on('Item', {
	refresh(frm) {
	    let f = frm.get_field('item_name');
		f.$input_wrapper.attr('title', __(frm.doc.item_name));
		let field = frm.get_field('item_name');
		field.set_formatted_input(__(field.get_value()));
	}
})

thank you :slight_smile: for that script/idea