python-babel / flask-babel

i18n and l10n support for Flask based on Babel and pytz
https://python-babel.github.io/flask-babel/
Other
432 stars 159 forks source link

Abnormal translation when I place non-string in parameters #231

Open Muzych opened 1 year ago

Muzych commented 1 year ago

Here is our scene, we give a code to infer Chinese translations and English translations. For example , the number 10157 would infer to a SPACE between two words. When I use ('10157') in my code such as "Hello('10157')World", the result in English could be "Hello World" and "你好" in Chinese. But what I really have in output is the msgid of SPACE separator. It seems like "你10157好". I would like to know whether the flask-babel support non-string in parameters and why I get the msgid when I place non-string in parameters like this _('').

TkTech commented 1 year ago

Can you provide a code example? I'm having trouble understanding what you're trying to accomplish.

Muzych commented 1 year ago

Ok. Here's an example.

{
    "10157": {"en": " ", "zh": ""}
}

print("你" + _("10157") + "好")

What I expect to get:
Chinese:  你好
English: 你 好

What I actually get:
Chinese: 你10157好
English: 你 好

In short, it seems like flask-babel translate null string to msgid.