Rockbox

Tasklist

FS#9067 - [GSoC] Accessibility and localization improvements

Attached to Project: Rockbox
Opened by Tom Ross (midgey34) - Tuesday, 03 June 2008, 06:41 GMT
Last edited by Tom Ross (midgey34) - Thursday, 23 July 2009, 03:05 GMT
Task Type Patches
Category Language
Status New
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

This tracker task will be used to house my Summer of Code work. For information about the goals of the project please see http://www.rockbox.org/twiki/bin/view/Main/PluginLocalization . Please read the comments and the descriptions of each patch.

Latest patch: plugin_loc.072209.diff
Posted: July 22
This task depends upon

Comment by Tom Ross (midgey34) - Tuesday, 03 June 2008, 06:46 GMT
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 .
Comment by Tom Ross (midgey34) - Wednesday, 09 July 2008, 16:42 GMT
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.
Comment by Tom Ross (midgey34) - Monday, 21 July 2008, 03:38 GMT
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.
Comment by Tom Ross (midgey34) - Wednesday, 13 August 2008, 06:41 GMT
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 required.
lang_changes.zip contains lang_changes.diff which are the required changes to the lang files
single_lang_file.diff 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.
Comment by Tom Ross (midgey34) - Tuesday, 03 March 2009, 05:22 GMT
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 important.
Patch created against r20189.
Comment by Tom Ross (midgey34) - Wednesday, 04 March 2009, 04:26 GMT
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.
Comment by alex wallis (alexwallis646) - Thursday, 25 June 2009, 14:45 GMT
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 resynced?
As 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 it.
"LD blackjack.rock
/home/Administrator/rockbox/build/apps/plugins/blackjack.o: In function `plugin_
start':
blackjack.c:(.text+0x1324): undefined reference to `plugin_use_lang'
collect2: ld returned 1 exit status
make: *** [/home/Administrator/rockbox/build/apps/plugins/blackjack.rock] Error
1"
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 form.
Thanks.
Comment by Tom Ross (midgey34) - Thursday, 23 July 2009, 03:05 GMT
Resync of the patch as requested by Alex. I'll have some time (for real this time) in August to work on this.
Comment by harry tu (bookshare) - Monday, 26 October 2009, 23:57 GMT
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?

Loading...