Original patch by Mario Lang
Heavily updated by Igor Poretsky
Further updated by myself
This patch breaks binary API compatibility by placing the new
functions where they make the most logical sense. IMO this is
the better approach to take given the scope of the changes needed
for talk support.
Since binary API is changing, the patch also moves some other
functions around to more logical locations.
As well as voice support in plugins, this patch voice-enables several
simple plugins. There will be follow-up patches for many plugins that
build on this one.
Change-Id: I18070c06e77e8a3c016c2eb6b6c5dbe6633b9b54
Extend genlang to create files holding the voice strings in a binary format
similar to lng. Create such files for all languages during a normal build, put
them in a zip file and add them to rockbox.zip so they are installed with a
main build.
Creating a voice file requires access to the voice strings, which are currently
not distributed with Rockbox. Therefore it is necessary to either have access
to the source code of the installed build or to use a build the genlang service
on rockbox.org can retrieve the strings for, making it impossible for normal
users to generate a voice file for custom builds, test builds and older builds
that aren't supported by the rockbox.org script. It also requires a network
connection when creating voice files with Rockbox Utility even if creating a
voice file by itself isn't network related.
Furthermore, putting the voice strings on the target is also a prerequisite for
eventually supporting a TTS on the player.
Strip voice strings path.
Change-Id: Ic2f86130909b3b257986a348e5cfcf618c4500c3
voicefont uses the id prefix VOICE_ to recognize voice-only strings. Unused ids
get a NOT_USED prefixed entry to keep order correct. However, since this
applies to voice-only entries as well voicefont doesn't recognize those as
voice entries and puts them at the end of the lang strings table. This messes
up the order in the created voice file, so add VOICE_ as prefix so voicefont
can identify them.
Change-Id: Ic3f2ec038ce1ed93c84286979e6583b478fa697e
New genlang code forgot to allow for the wildcard being the full target name
with a * appended.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30514 a1c6a512-1295-4272-9138-f99709370657
With this change generating all languages takes only two-thirds the
time. It changes the acceptable syntax for target wildcards in language
files, however: instead of a comma-separated list of glob-style
wildcards it requires that it be a comma-separated list of prefix
matches, i.e. the * can only appear at the end of each wildcard, and ?
cannot be used. This does not require any changes to existing language
files as they are all already in this form.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30481 a1c6a512-1295-4272-9138-f99709370657
Amiconn: "langv2" had nothing to do with the language version byte in the
generated .lng file, so "langv4" makes no sense. It refers to the format of the
.lang. The current, tag-based format which allows to restrict strings to
certain targets or features is called langv2 versus the old, simpler format.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22939 a1c6a512-1295-4272-9138-f99709370657
- In the future, they should be united.
- Fix bug in max size calculation
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22930 a1c6a512-1295-4272-9138-f99709370657
FS#7576, and it typically caused a bazillion of LANG_SET_BOOL_YES to get output
when -o was used with non-english
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14277 a1c6a512-1295-4272-9138-f99709370657
strings. I also added the numerical id number for strings in the generated
header file, which is useful when the new lngdump tool is used and you want to
compare the ids for the built-in strings to the ones in the generated binary
files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14274 a1c6a512-1295-4272-9138-f99709370657
1) Introduces apps/features.txt that controls which strings are included
for each target based on defines.
2) .lng and .voice files are now target specific and the format versions
of both these file types have been bumped, which means that new voice
files are needed.
3) Use the 'features' mechanism to exclude strings for targets that
didn't use them.
4) Delete unused and deprecated and duplicated strings, sort strings in
english.lang
Some string IDs were changed so translations will be slightly worse than
before.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14198 a1c6a512-1295-4272-9138-f99709370657
dictate when a certain phrase doesn't exist and should be ignored in the
output
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14150 a1c6a512-1295-4272-9138-f99709370657
account so that the binary and source code output gets the same numbering.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13443 a1c6a512-1295-4272-9138-f99709370657
info to the warning output and moved a comment to the accurate place
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11371 a1c6a512-1295-4272-9138-f99709370657
Now this treats a string given without quotes as "" (but still warns about it).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9824 a1c6a512-1295-4272-9138-f99709370657
* allow 'deprecated' as a keyword for strings marked as ... deprecated!
* warns on stderr if a given string is given without quotes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9533 a1c6a512-1295-4272-9138-f99709370657