Hello All,
I created some tools and customized task/menu accordingly. I'd like to know does dgnlib support bilingual? I created two menus right now, chinese and english version. Both menu will show. If MS can hide one menu according to the windows/MS version, it would be prefect. I don't want to create two dgnlib. Thanks a lot.
Hi,
You may be able to do this using Named Expressions using the value of configuration variable _USTN_LOCALE_LANGUAGE. This uses standard Windows codes, 'en' for english and 'zh-cn' for Chinese (there are other Chinese variations).The example illustrated below creates a test with a True/False result depending on the value of _USTN_LOCALE_LANGUAGE.
Download the linked xml file and import it into the named Expression dialog in your DGNLIB (File > Import XML...)
/cfs-file/__key/communityserver-discussions-components-files/343321/IsLocaleEn.xml
Use this Named Expression to control the visibility of the English menu:
Create and apply a similar Named Expression for 'zh-cn' or the variation that you are using.
That should work.
Marc
Answer Verified By: Changsong Ling
Hello Marc,
Thanks for your reply. It is very useful.
I did test as per your example, there are some questions:
1. I created a variable "MyVariable", the value could be 0/1, True/False(all text string instead of boolean T/F)
2. The xml link doesn't work so I cannot download it. I created a new one as per the snapshot, and it should works, it can reture the valve of my text variable.
3. But the visibility test failed by using my named expression. I have tried other existing expression which retures boolean True/False and OK. Even I have revised MyVariable to show True/False(text string) which looks same as the boolean True/False, but failed still. It looks visibility accept boolean True/False only.
4. To get the boolean True/False, I'd like to know hot to set boolean T/F in variable, or convert it to boolean T/F in named expression as per text value of variable?
Thanks a lot!
There is only one language En in my CE, So I cannot test.
My assumption: there is no MS language in V8i, the menu is fully controlled by named expression. But for CE, even the named expression is True, but if the language of the ribbon does not match the language of CE, it won't show neither.
For CE, the best way might be set display "always" on the different ribbons, let the MS language determine which one to show.
If so, there is another problem, for example my case here, I cannot show chinese ribbon on english MS?
Thanks a lot.
answer to "BTW, did you notice that there is a "custom" suffixed on my chinese ribbon but not on the english ribbon. Shouldn't them be same?"
if you use keyin "ribbon customizations exportecxml", you'll find that there are three tabs defined in the PineApp.dgnlib two of which are duplicate with name "Pineapp.PineAPP". I don't know how this happen. Do you know how this happen?
if there are duplicate tabs, we will set one as the baseline of another and merge their groups and only display one tab. Then in our code we won't add suffix "custom" to it.
Hello Dorlig,
I created a Task and a Menu for V8i, I think that's why you saw three, a task, a menu and a ribbon.
which product do you use to create the PineApp.dgnlib? V8i ss* or Connect Edition?
How do you create them? using ribbon customization dialog? or ?
the problem here is that there are 2 ribbon tabs nearly with duplicated names. one is PineApp and another is PineAPP. the deference is the character case. but the program treat ribbon names case insensitive so that we treat one as the base of another. if one tab has base then we don't think it's a customization.