MobileRead Forums

MobileRead Forums (https://www.mobileread.com/forums/index.php)
-   Calibre (https://www.mobileread.com/forums/forumdisplay.php?f=166)
-   -   Translating long/complex strings (https://www.mobileread.com/forums/showthread.php?t=53171)

Jellby 08-10-2009 06:43 AM

Translating long/complex strings
 
I'm finishing a revision of the Spanish translation of Calibre, and I'm wondering what I should do with long or complex strings...

It seems some of the strings are used as floating tooltips, but the text is not wrapped to a manageable size, so it's displayed in the GUI as a single long line. I guess I could add hard breaks (\n) in the translated string, but would it be better if the GUI did wrap tooltips to a narrower size? (For instance: "The base font size in pts. All font sizes in the produced book...")

There are a couple of strings that include even an HTML header, notably the main text in Advanced preferences. Is this really needed? It even sets the font name! The other instance looks like an empty html file (search for DTD in the .po file).

By the way, it seems the branches in the plugin list are named by joining two strings, one with the generic name (Metadata reader, File type, etc.) and the other with " plugins". This works fine for English, but not for other languages where the modifier comes after the noun (i.e., it would be something like "Plugins for (whatever)". Could this be changed to "%s plugins" or something like that?

user_none 08-10-2009 09:10 AM

I would recommend against hard line breaks. Wrapping of text in tooltips is handled at the toolkit level but as you've found it doesn't do a very good job. Still it would be better not to have two wrappings competing for each other. At least not until some testing has been done to ensure there won't be issues.

Quote:

Originally Posted by Jellby
By the way, it seems the branches in the plugin list are named by joining two strings, one with the generic name (Metadata reader, File type, etc.) and the other with " plugins".

Can you give me an example string or a file name. I'm not exactly sure where in the source tree this is.

Jellby 08-10-2009 09:51 AM

Quote:

Originally Posted by user_none (Post 549228)
I would recommend against hard line breaks. Wrapping of text in tooltips is handled at the toolkit level but as you've found it doesn't do a very good job. Still it would be better not to have two wrappings competing for each other. At least not until some testing has been done to ensure there won't be issues.

That's what I thought, but I encounter several "\n" in the original English strings. Most are in items corresponding to command line help, where I guess they're wanted, but some of them seem to be in GUI items too.

Quote:

Can you give me an example string or a file name. I'm not exactly sure where in the source tree this is.
Sure:

#: /home/kovid/work/calibre/src/calibre/gui2/dialogs/config.py:168
msgid " plugins"
msgstr ": complementos"

#: /home/kovid/work/calibre/src/calibre/customize/__init__.py:182
msgid "Metadata reader"
msgstr "Lector de metadatos"

In English that makes "Metadata reader plugins". In Spanish it should be "Complementos de lectores de metadatos", but due to the way it's coded (the two strings seem to be concatenated), I had to make it "Lector de metadatos: complementos".

Jellby 08-10-2009 01:53 PM

In the meantime, the Spanish translation is finished.

I tried to make it consistent, and to keep the hotkeys unique, at least in the dialogs I could reach. There's still more work to do, like chosing better verb declinations for tooltips and similar things.

kovidgoyal 08-10-2009 02:02 PM

That's because I hate writing two strings, one for the CLI and one for the GUI, so I just recycle the CLI strings in the GUI. It's sub-optimal, but since calibre already has over a 1300 strings, I think it's worth the tradeoff.

Unfortunately, "Metadata reader" is the string describing plugin type and the GUI just adds plugin to it when creationg the list. I'm not sure how that can be handled multilingually.

I'll fix the HTML fragments in the next release.

kovidgoyal 08-10-2009 02:04 PM

Quote:

Originally Posted by Jellby (Post 549514)
In the meantime, the Spanish translation is finished.

I tried to make it consistent, and to keep the hotkeys unique, at least in the dialogs I could reach. There's still more work to do, like chosing better verb declinations for tooltips and similar things.

Thanks, your updates will be in 0.6.6

Jellby 08-10-2009 02:13 PM

Quote:

Originally Posted by kovidgoyal (Post 549528)
Unfortunately, "Metadata reader" is the string describing plugin type and the GUI just adds plugin to it when creationg the list. I'm not sure how that can be handled multilingually.

Can't you use a format string like "%s plugins", which I could then translate as "Complementos de %s"?

HarryT 08-10-2009 02:15 PM

Perhaps something to consider for the future might be to introduce numeric placeholders, "%1", "%2", etc, such as languages like C# use. That allows you to easily copy with different word orders in different languages.

kovidgoyal 08-10-2009 02:34 PM

Quote:

Originally Posted by Jellby (Post 549540)
Can't you use a format string like "%s plugins", which I could then translate as "Complementos de %s"?

I'm confused, how's that different from concatenation?

Jellby 08-10-2009 02:55 PM

Quote:

Originally Posted by kovidgoyal (Post 549579)
I'm confused, how's that different from concatenation?

It is concatenation, but a concatenation where the order can be controlled. What you have now in that specific case is a fixed-order concatenation (in other cases you use %s and %d already).

itimpi 08-10-2009 03:01 PM

I think he is suggesting that if one string had a %s placeholder to show where the other string was substituted, he could he could use a differernt format string in another language to control where the substition was placed. I would have thought this should be easy in Python as it uses C/C++ type format strings.

kovidgoyal 08-10-2009 05:22 PM

You mean something like

Code:

"%(type)s %(plugin)s"%dict(type="Metadata reader", plugin="plugin")

kovidgoyal 08-10-2009 05:36 PM

Done.


All times are GMT -4. The time now is 06:16 PM.

Powered by: vBulletin
Copyright ©2000 - 3.8.5, Jelsoft Enterprises Ltd.
MobileRead.com is a privately owned, operated and funded community.