• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category User Interface → Language
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by midgey34 - 2008-06-03
Last edited by speachy - 2020-12-11

FS#9067 - [GSoC] Accessibility and localization improvements

This tracker task will be used to house my Summer of Code work. For information about the goals of the project please see . Please read the comments and the descriptions of each patch.

Latest patch: plugin_loc.072209.diff
Posted: July 22

Closed by  speachy
2020-12-11 20:04
Reason for closing:  Out of Date
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

I'm going to close this; we committed localized plugin support over a year ago, based on the code in FS# 7704.

This patch is my latest attempt to allow for localized plugins. It uses the plugin buffer to store the plugin strings. As a demo, Blackjack has been translated into “Spanish” but not fully. The introduction screen is always in English and there are some formatting issues when entering a bet on certain targets. Please see the wiki page for more details on the implementation.

This patch was tested on Gigabeat F, iriver H300, and Sansa e200. For mentors following the project, this is the same as v9.5 .

This patch contains further improvements on localized plugins. Chopper and Chessbox have been mostly adapted and translated into “Spanish.” This patch also uses the user keyword from lang files to restrict access to strings. If a plugin tries to access a string that has a different user, the returned string will be blank. Originally this was an attempt at loadable strings but this version saves no new ram. I mentioned a proposal about loadable strings in my emails to Daniel and Stephane and I’d like to discuss the ideas on IRC.

Additionally in this patch plugins can now talk. Run ‘make voice’ to create a voice build as normal. Then go into Blackjack and listen to how it talks to you. So far only parts of Blackjack are voiced. It would be nice for someone to attach a voice file (created by Festival) to allow other people to quickly test out the patch.

This patch implements the beginning of loading lang strings from file offsets as I discussed with amiconn. I sent this out to Bagder and sdoyon but I think they’re both on break. Some of these changes are for my own purposes to make building take less time or get around mac specific quirks.

Here’s my latest work. This version changes to using a single lang file per language. It’s still rough around the edges but works fairly well. Like previous version, plugins can be translated into multiple languages and strings can be voiced. A fairly significant change is the ability to now use the ID2P() macro in conjunction with splashes within plugins.

I’ve split the code changes from the language changes to make the code more easily reviewable. If you want to compile a build to test out my work, both patches are
contains lang_changes.diff which are the required changes to the lang
are all the code changes

Note: I don’t think this will compile and work on target. I’ve broken that with this patch and I need to make a few changes to makefiles to fix it.

For anyone who has been following SVN, you may have noticed I’ve committed a few things related to this task. They are all in preparation and make syncing this significantly easier. Here’s an attempt at updating the patch to work with the new build system. So far I’ve only tested this on the Gigabeat F sim and target. Both seem to “work” for the most part. The build magic is not perfect and so it might quit with an error. Just make a second time and it should continue. You will probably want to test this by building a new build from scratch - not using an existing folder. Currently all lang objects are linked explicitly and some magic is needed to only link the proper lang file per plugin and only link if the plugin uses the pluginlib_lang files.

This should be considered a work in progress and is nowhere ready to commit. I’m aiming for inclusion in 3.3 so if there are no problems, this will hopefully be committed in early April.

NOTE: lang_changes.diff (or zip) is no longer needed. This patch is all that’s
created against r20189.

Cleanup some small changes that are no longer needed. Add some Spanish strings for Chopper that got lost in the sync. Slightly new build magic for producing language objects. Seems to work on my machine and make complete successfully on the first attempt. Once again I suggest you build from a completely fresh directory.

Patch created against r20196.

I was wondering any updates for this task? or any idea when it might be committed?

Even if not, is there any possibility the patch could please be
I was only able to get the patch to apply with a fuzz factor of 3, and I guess it didn’t work properly as I got the following error while making a build including

In function
blackjack.c:(.text+0×1324): undefined reference to
ld returned 1 exit
*** [/home/Administrator/rockbox/build/apps/plugins/blackjack.rock]
I would be very interested in trying it if any improvements have been made, or just if it is resynced, as I haven’t got around to trying it yet in any

Resync of the patch as requested by Alex. I’ll have some time (for real this time) in August to work on this.

I don’t understand, would that make “(corelanguagefile).lang” bigger, or would we have “language.lang” and “language-plugins.lang”? Same for the voice files. I’d like to know the status of the patch?


Available keyboard shortcuts


Task Details

Task Editing