forked from openlp/openlp
improve translation_utils script
This commit is contained in:
parent
c5f59d0000
commit
edce9a6117
File diff suppressed because it is too large
Load Diff
@ -262,6 +262,11 @@ This General Public License does not permit incorporating your program into prop
|
||||
<source>Show an alert message</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/alerts/alertsplugin.py" line="97"/>
|
||||
<source><b>Alerts Plugin</b><br>This plugin controls the displaying of alerts on the presentations screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AlertsPlugin.AlertForm</name>
|
||||
@ -321,6 +326,14 @@ This General Public License does not permit incorporating your program into prop
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AlertsPlugin.AlertsManager</name>
|
||||
<message>
|
||||
<location filename="openlp/plugins/alerts/lib/alertsmanager.py" line="95"/>
|
||||
<source>Alert message created and delayed</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AlertsPlugin.AlertsTab</name>
|
||||
<message>
|
||||
@ -723,10 +736,15 @@ This General Public License does not permit incorporating your program into prop
|
||||
<context>
|
||||
<name>BiblePlugin</name>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/bibleplugin.py" line="73"/>
|
||||
<location filename="openlp/plugins/bibles/bibleplugin.py" line="84"/>
|
||||
<source>&Bible</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/bibleplugin.py" line="93"/>
|
||||
<source><strong>Bible Plugin</strong><br />This plugin allows bible verses from different sources to be displayed on the screen during the service.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BiblesPlugin,BiblesTab</name>
|
||||
@ -795,6 +813,20 @@ This General Public License does not permit incorporating your program into prop
|
||||
<source>Display Dual Bible Verses</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/lib/biblestab.py" line="154"/>
|
||||
<source>Only show new chapter numbers</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BiblesPlugin.BiblesTab</name>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/lib/biblestab.py" line="177"/>
|
||||
<source>Note:
|
||||
Changes don't affect verses already in the service</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BiblesPlugin.ImportWizardForm</name>
|
||||
@ -938,6 +970,126 @@ This General Public License does not permit incorporating your program into prop
|
||||
<source>Starting import...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="313"/>
|
||||
<source>Welcome to the Bible Import Wizard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="317"/>
|
||||
<source>This wizard will help you to import Bibles from a variety of formats. Click the next button below to start the process by selecting a format to import from.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="322"/>
|
||||
<source>Select Import Source</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="324"/>
|
||||
<source>Select the import format, and where to import from.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="362"/>
|
||||
<source>Proxy Server (Optional)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="368"/>
|
||||
<source>Set up the Bible's license details.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/bibleimportwizard.py" line="379"/>
|
||||
<source>Please wait while your Bible is imported.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="125"/>
|
||||
<source>Invalid Bible Location</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="125"/>
|
||||
<source>You need to specify a file to import your Bible from.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="136"/>
|
||||
<source>Invalid Books File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="136"/>
|
||||
<source>You need to specify a file with books of the Bible to use in the import.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="146"/>
|
||||
<source>Invalid Verse File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="146"/>
|
||||
<source>You need to specify a file of Bible verses to import.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="158"/>
|
||||
<source>Invalid OpenSong Bible</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="158"/>
|
||||
<source>You need to specify an OpenSong Bible file to import.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="174"/>
|
||||
<source>Empty Version Name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="174"/>
|
||||
<source>You need to specify a version name for your Bible.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="184"/>
|
||||
<source>Empty Copyright</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="184"/>
|
||||
<source>You need to set a copyright for your Bible! Bibles in the Public Domain need to be marked as such.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="195"/>
|
||||
<source>Bible Exists</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="195"/>
|
||||
<source>This Bible already exists! Please import a different Bible or first delete the existing one.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="242"/>
|
||||
<source>Open Verses CSV File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="447"/>
|
||||
<source>Finished import.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/forms/importwizardform.py" line="451"/>
|
||||
<source>Your Bible import failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BiblesPlugin.MediaItem</name>
|
||||
@ -1046,6 +1198,11 @@ This General Public License does not permit incorporating your program into prop
|
||||
<source>Bible not fully loaded</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/bibles/lib/mediaitem.py" line="387"/>
|
||||
<source>No matching book could be found in this Bible.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BiblesPlugin.Opensong</name>
|
||||
@ -1055,6 +1212,14 @@ This General Public License does not permit incorporating your program into prop
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CustomPlugin</name>
|
||||
<message>
|
||||
<location filename="openlp/plugins/custom/customplugin.py" line="70"/>
|
||||
<source><b>Custom Plugin</b><br>This plugin allows slides to be displayed on the screen in the same way songs are. This plugin provides greater freedom over the songs plugin.<br></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CustomPlugin.CustomTab</name>
|
||||
<message>
|
||||
@ -1067,6 +1232,11 @@ This General Public License does not permit incorporating your program into prop
|
||||
<source>Display Footer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/custom/lib/customtab.py" line="58"/>
|
||||
<source>Custom Display</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CustomPlugin.EditCustomForm</name>
|
||||
@ -1171,22 +1341,22 @@ This General Public License does not permit incorporating your program into prop
|
||||
<translation type="unfinished">Autorid:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/custom/forms/editcustomform.py" line="89"/>
|
||||
<location filename="openlp/plugins/custom/forms/editcustomform.py" line="88"/>
|
||||
<source>Save && Preview</source>
|
||||
<translation type="unfinished">Salvesta && eelvaatle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/custom/forms/editcustomform.py" line="152"/>
|
||||
<location filename="openlp/plugins/custom/forms/editcustomform.py" line="151"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished">Viga</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/custom/forms/editcustomform.py" line="272"/>
|
||||
<location filename="openlp/plugins/custom/forms/editcustomform.py" line="271"/>
|
||||
<source>You need to enter a title</source>
|
||||
<translation type="unfinished">Pead sisestama pealkirja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/custom/forms/editcustomform.py" line="277"/>
|
||||
<location filename="openlp/plugins/custom/forms/editcustomform.py" line="276"/>
|
||||
<source>You need to enter a slide</source>
|
||||
<translation type="unfinished">Pead sisenema slaidile</translation>
|
||||
</message>
|
||||
@ -1198,11 +1368,21 @@ This General Public License does not permit incorporating your program into prop
|
||||
<source>Custom</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/custom/lib/mediaitem.py" line="121"/>
|
||||
<source>You must select an item to edit.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/custom/lib/mediaitem.py" line="133"/>
|
||||
<source>You must select an item to delete.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CustomPlugin.editCustomForm</name>
|
||||
<message>
|
||||
<location filename="openlp/plugins/custom/forms/editcustomform.py" line="281"/>
|
||||
<location filename="openlp/plugins/custom/forms/editcustomform.py" line="280"/>
|
||||
<source>You have unsaved data, please save or clear</source>
|
||||
<translation type="unfinished">Sul on salvestamata andmeid, palun salvesta või tühjenda</translation>
|
||||
</message>
|
||||
@ -1962,6 +2142,11 @@ You can download the latest version from http://openlp.org</source>
|
||||
<source>You must select one or more items to send live.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/core/lib/mediamanageritem.py" line="492"/>
|
||||
<source>You must select a %s service item.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MediaPlugin</name>
|
||||
@ -1992,7 +2177,7 @@ You can download the latest version from http://openlp.org</source>
|
||||
<context>
|
||||
<name>OpenLP</name>
|
||||
<message>
|
||||
<location filename="openlp/core/utils/__init__.py" line="194"/>
|
||||
<location filename="openlp/core/utils/__init__.py" line="208"/>
|
||||
<source>Image Files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2055,6 +2240,14 @@ You can download the latest version from http://openlp.org</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PresentationPlugin</name>
|
||||
<message>
|
||||
<location filename="openlp/plugins/presentations/presentationplugin.py" line="111"/>
|
||||
<source><b>Presentation Plugin</b> <br> Delivers the ability to show presentations using a number of different programs. The choice of available presentation programs is available to the user in a drop down box.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PresentationPlugin.MediaItem</name>
|
||||
<message>
|
||||
@ -2062,6 +2255,36 @@ You can download the latest version from http://openlp.org</source>
|
||||
<source>Present using:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="64"/>
|
||||
<source>Presentation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="68"/>
|
||||
<source>Select Presentation(s)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="70"/>
|
||||
<source>Automatic</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="141"/>
|
||||
<source>File exists</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="141"/>
|
||||
<source>A presentation with that filename already exists.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/presentations/lib/mediaitem.py" line="180"/>
|
||||
<source>You must select an item to delete.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PresentationPlugin.PresentationTab</name>
|
||||
@ -2070,6 +2293,24 @@ You can download the latest version from http://openlp.org</source>
|
||||
<source>available</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/presentations/lib/presentationtab.py" line="40"/>
|
||||
<source>Presentations</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/presentations/lib/presentationtab.py" line="92"/>
|
||||
<source>Available Controllers</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemotePlugin</name>
|
||||
<message>
|
||||
<location filename="openlp/plugins/remotes/remoteplugin.py" line="72"/>
|
||||
<source><b>Remote Plugin</b><br>This plugin provides the ability to send messages to a running version of openlp on a different computer via a web browser or other app<br>The Primary use for this would be to send alerts from a creche</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RemotePlugin.RemoteTab</name>
|
||||
@ -2390,6 +2631,108 @@ The content encoding is not UTF-8.</source>
|
||||
<translation>Muuda ja kuva laulu eelvaade uuesti</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SongUsagePlugin</name>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/songusageplugin.py" line="62"/>
|
||||
<source>&Song Usage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/songusageplugin.py" line="66"/>
|
||||
<source>&Delete recorded data</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/songusageplugin.py" line="68"/>
|
||||
<source>Delete song usage to specified date</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/songusageplugin.py" line="73"/>
|
||||
<source>&Extract recorded data</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/songusageplugin.py" line="75"/>
|
||||
<source>Generate report on Song Usage</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/songusageplugin.py" line="84"/>
|
||||
<source>Song Usage Status</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/songusageplugin.py" line="86"/>
|
||||
<source>Start/Stop live song usage recording</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/songusageplugin.py" line="161"/>
|
||||
<source><b>SongUsage Plugin</b><br>This plugin records the use of songs and when they have been used during a live service</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SongsPlugin</name>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/songsplugin.py" line="93"/>
|
||||
<source>&Song</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/songsplugin.py" line="95"/>
|
||||
<source>Import songs using the import wizard.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/songsplugin.py" line="102"/>
|
||||
<source>Songs of Fellowship (temp menu item)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/songsplugin.py" line="109"/>
|
||||
<source>Import songs from the VOLS1_2.RTF, sof3words.rtf and sof4words.rtf supplied with the music books</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/songsplugin.py" line="118"/>
|
||||
<source>Generic Document/Presentation Import (temp menu item)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/songsplugin.py" line="126"/>
|
||||
<source>Import songs from Word/Writer/Powerpoint/Impress</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/songsplugin.py" line="156"/>
|
||||
<source>Open Songs of Fellowship file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/songsplugin.py" line="166"/>
|
||||
<source>Import Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/songsplugin.py" line="166"/>
|
||||
<source>Error importing Songs of Fellowship file.
|
||||
OpenOffice.org must be installed and you must be using an unedited copy of the RTF included with the Songs of Fellowship Music Editions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/songsplugin.py" line="179"/>
|
||||
<source>Open documents or presentations</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/songsplugin.py" line="188"/>
|
||||
<source><strong>Song Plugin</strong><br />This plugin allows songs to be managed and displayed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SongsPlugin.AuditDeleteDialog</name>
|
||||
<message>
|
||||
@ -2415,6 +2758,11 @@ The content encoding is not UTF-8.</source>
|
||||
<source>Report Location</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/forms/songusagedetaildialog.py" line="89"/>
|
||||
<source>Song Usage Extraction</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SongsPlugin.AuthorsForm</name>
|
||||
@ -2900,6 +3248,31 @@ The content encoding is not UTF-8.</source>
|
||||
<source>CCLI Licence: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="71"/>
|
||||
<source>Maintain the lists of authors, topics and books</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="282"/>
|
||||
<source>You must select an item to edit.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="293"/>
|
||||
<source>You must select an item to delete.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="297"/>
|
||||
<source>Delete song?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/lib/mediaitem.py" line="300"/>
|
||||
<source>Delete %d songs?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SongsPlugin.SongBookForm</name>
|
||||
@ -2986,6 +3359,102 @@ The content encoding is not UTF-8.</source>
|
||||
<source>No book selected!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="229"/>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished">Viga</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="139"/>
|
||||
<source>Couldn't add your author.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="151"/>
|
||||
<source>Couldn't add your topic.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="165"/>
|
||||
<source>Couldn't add your book.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="195"/>
|
||||
<source>Couldn't save your author.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="211"/>
|
||||
<source>Couldn't save your topic.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="229"/>
|
||||
<source>Couldn't save your book.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="239"/>
|
||||
<source>Are you sure you want to delete the selected author?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="239"/>
|
||||
<source>This author can't be deleted, they are currently assigned to at least one song.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="239"/>
|
||||
<source>No author selected!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="255"/>
|
||||
<source>Are you sure you want to delete the selected topic?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="255"/>
|
||||
<source>This topic can't be deleted, it is currently assigned to at least one song.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="255"/>
|
||||
<source>No topic selected!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="271"/>
|
||||
<source>Are you sure you want to delete the selected book?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/songmaintenanceform.py" line="271"/>
|
||||
<source>This book can't be deleted, it is currently assigned to at least one song.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SongsPlugin.SongUsageDeleteForm</name>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/forms/songusagedeleteform.py" line="44"/>
|
||||
<source>Delete Selected Song Usage Events?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/forms/songusagedeleteform.py" line="44"/>
|
||||
<source>Are you sure you want to delete selected Song Usage data?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SongsPlugin.SongUsageDetailForm</name>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songusage/forms/songusagedetailform.py" line="63"/>
|
||||
<source>Output File Location</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SongsPlugin.SongsTab</name>
|
||||
@ -3004,6 +3473,11 @@ The content encoding is not UTF-8.</source>
|
||||
<source>Enable search as you type</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/lib/songstab.py" line="68"/>
|
||||
<source>Display Verses on Live Tool bar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SongsPlugin.TopicsForm</name>
|
||||
@ -3022,6 +3496,11 @@ The content encoding is not UTF-8.</source>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished">Viga</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="openlp/plugins/songs/forms/topicsform.py" line="51"/>
|
||||
<source>You need to type in a topic name!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Splashscreen</name>
|
||||
|
@ -25,33 +25,140 @@
|
||||
###############################################################################
|
||||
# Short description
|
||||
# Steps for creating languages:
|
||||
# 1. make shure that the openlp_en.ts file exist
|
||||
# 1. make sure that the openlp_en.ts file exist
|
||||
# 2. go to scripts folder and start:
|
||||
# python translation_utils.py -a
|
||||
###############################################################################
|
||||
|
||||
import os
|
||||
import urllib
|
||||
import re
|
||||
|
||||
from optparse import OptionParser
|
||||
from PyQt4 import QtCore
|
||||
from BeautifulSoup import BeautifulSoup
|
||||
|
||||
ignore_pathes = [u"./scripts", u"./openlp/core/test"]
|
||||
ignore_files = [u"setup.py"]
|
||||
translation_path = u"http://pootle.projecthq.biz/export/openlp/"
|
||||
translations = [ u"en"
|
||||
, u"af"
|
||||
, u"en_ZA"
|
||||
, u"en_GB"
|
||||
, u"de"
|
||||
, u"hu"
|
||||
, u"ko"
|
||||
, u"nb"
|
||||
, u"pt_BR"
|
||||
, u"es"
|
||||
, u"sv"]
|
||||
class TranslationUtils(object):
|
||||
def __init__(self):
|
||||
self.ignore_paths = [u'./scripts']
|
||||
self.ignore_files = [u'setup.py']
|
||||
self.server_url = u'http://pootle.projecthq.biz/export/openlp/'
|
||||
self.cmd_stack = []
|
||||
self.stack_count = 0
|
||||
self.verbose = False
|
||||
|
||||
def write_file(filename, stringlist):
|
||||
|
||||
def process_stack(self):
|
||||
if len(self.cmd_stack) > 0:
|
||||
if len(self.cmd_stack) == self.stack_count:
|
||||
print u'Process %d commands' % self.stack_count
|
||||
print u'%d. ' % (self.stack_count-len(self.cmd_stack)+1),
|
||||
command = self.cmd_stack.pop(0)
|
||||
if len(command) > 1:
|
||||
command[0](command[1])
|
||||
else:
|
||||
command[0]()
|
||||
else:
|
||||
print "Finished all commands"
|
||||
|
||||
|
||||
def downloadTranslations(self):
|
||||
print 'Download Translation files from HQ-Server'
|
||||
page = urllib.urlopen(u'%s' % (self.server_url))
|
||||
soup = BeautifulSoup(page)
|
||||
languages = soup.findAll(text=re.compile(".*\.ts"))
|
||||
for language in languages:
|
||||
filename = os.path.join(u'..', u'resources', u'i18n',
|
||||
u'openlp_%s' % language)
|
||||
self.printVerbose(u'Get Translation File: %s' % filename)
|
||||
self.get_and_write_file(language, filename)
|
||||
print u' done'
|
||||
self.process_stack()
|
||||
|
||||
def get_and_write_file(self, language, filename):
|
||||
page = urllib.urlopen(u'%s%s' % (self.server_url, language))
|
||||
content = page.read().decode('utf8')
|
||||
page.close()
|
||||
file = open(filename, u'w')
|
||||
file.write(content.encode('utf8'))
|
||||
file.close()
|
||||
|
||||
def creation(self, language):
|
||||
print "Create new Translation File"
|
||||
"""
|
||||
Use this option to create a new translation file
|
||||
this function:
|
||||
* create the new *.ts file
|
||||
"""
|
||||
filename = os.path.join(u'..', u'resources', u'i18n',
|
||||
u'openlp_%s.ts' % language)
|
||||
self.get_and_write_file(u'en.ts', filename)
|
||||
self.printVerbose("""
|
||||
Please remind: For permanent providing this language:
|
||||
this language name have to append to the global list
|
||||
variable "translations" in this file
|
||||
and this file have to be uploaded to the Pootle Server
|
||||
Please contact the developers!
|
||||
""")
|
||||
print u' done'
|
||||
self.process_stack()
|
||||
|
||||
|
||||
def preparation(self):
|
||||
print u'Generating the openlp.pro file'
|
||||
stringlist = []
|
||||
start_dir = os.path.join(u'..')
|
||||
for root, dirs, files in os.walk(start_dir):
|
||||
for file in files:
|
||||
path = u'%s' % root
|
||||
path = path.replace('\\','/')
|
||||
path = path.replace('..','.')
|
||||
|
||||
if file.startswith(u'hook-') or file.startswith(u'test_'):
|
||||
continue
|
||||
|
||||
cond = False
|
||||
for search in self.ignore_paths:
|
||||
if path.startswith(search):
|
||||
cond = True
|
||||
if cond:
|
||||
continue
|
||||
cond = False
|
||||
for search in self.ignore_files:
|
||||
if search == file:
|
||||
cond = True
|
||||
if cond:
|
||||
continue
|
||||
|
||||
if file.endswith(u'.py'):
|
||||
line = u'%s/%s' % (path, file)
|
||||
self.printVerbose(u'Parsing "%s"' % line)
|
||||
stringlist.append(u'SOURCES += %s' % line)
|
||||
elif file.endswith(u'.pyw'):
|
||||
line = u'%s/%s' % (path, file)
|
||||
self.printVerbose(u'Parsing "%s"' % line)
|
||||
stringlist.append(u'SOURCES += %s' % line)
|
||||
elif file.endswith(u'.ts'):
|
||||
line = u'%s/%s' % (path, file)
|
||||
self.printVerbose(u'Parsing "%s"' % line)
|
||||
stringlist.append(u'TRANSLATIONS += %s' % line)
|
||||
|
||||
stringlist.sort()
|
||||
self.write_file(os.path.join(start_dir, u'openlp.pro'), stringlist)
|
||||
print u' done'
|
||||
self.process_stack()
|
||||
|
||||
def update(self):
|
||||
print u'Update the translation files'
|
||||
cmd = u'pylupdate4 -verbose -noobsolete ../openlp.pro'
|
||||
self.start_cmd(cmd)
|
||||
|
||||
def generate(self):
|
||||
print u'Generate the related *.qm files'
|
||||
cmd = u'lrelease ../openlp.pro'
|
||||
self.start_cmd(cmd)
|
||||
|
||||
def write_file(self, filename, stringlist):
|
||||
content = u''
|
||||
for line in stringlist:
|
||||
content = u'%s%s\n' % (content, line)
|
||||
@ -59,109 +166,69 @@ def write_file(filename, stringlist):
|
||||
file.write(content.encode('utf8'))
|
||||
file.close()
|
||||
|
||||
def printVerbose(self, data):
|
||||
if self.verbose:
|
||||
print u' %s' % data
|
||||
|
||||
def start_cmd(self, command):
|
||||
self.printVerbose(command)
|
||||
self.process = QtCore.QProcess()
|
||||
self.process.start(command)
|
||||
while (self.process.waitForReadyRead()):
|
||||
self.printVerbose(u'ReadyRead: %s' % QtCore.QString(self.process.readAll()))
|
||||
self.printVerbose(self.process.readAllStandardError())
|
||||
self.printVerbose(self.process.readAllStandardOutput())
|
||||
print u' done'
|
||||
self.process_stack()
|
||||
|
||||
|
||||
def main():
|
||||
# start Main Class
|
||||
Util = TranslationUtils()
|
||||
|
||||
# Set up command line options.
|
||||
usage = u'Usage: %prog [options]'
|
||||
usage = u'''
|
||||
This script handle the translation files for OpenLP.
|
||||
Usage: %prog [options]
|
||||
If no option will be used, options "-d -p -u -g" will be set automatically
|
||||
'''
|
||||
parser = OptionParser(usage=usage)
|
||||
parser.add_option("-d", "--download-ts", action="store_true",
|
||||
dest="download", help="Load languages from Pootle Server")
|
||||
parser.add_option("-p", "--prepare", action="store_true", dest="prepare",
|
||||
help="preparation (generate pro file)")
|
||||
parser.add_option("-u", "--update", action="store_true", dest="update",
|
||||
help="update translation files")
|
||||
parser.add_option("-g", "--generate", action="store_true", dest="generate",
|
||||
help="generate qm files")
|
||||
parser.add_option("-a", "--all", action="store_true", dest="all",
|
||||
help="proceed all options")
|
||||
parser.add_option('-d', '--download-ts', action='store_true',
|
||||
dest='download', help='Load languages from Pootle Server')
|
||||
parser.add_option('-c', '--create', metavar='lang',
|
||||
help='creation of new translation file, Parameter: language (e.g. "en_GB"')
|
||||
parser.add_option('-p', '--prepare', action='store_true', dest='prepare',
|
||||
help='preparation (generate pro file)')
|
||||
parser.add_option('-u', '--update', action='store_true', dest='update',
|
||||
help='update translation files')
|
||||
parser.add_option('-g', '--generate', action='store_true', dest='generate',
|
||||
help='generate qm files')
|
||||
parser.add_option('-v', '--verbose', action='store_true', dest='verbose',
|
||||
help='Give more informations while processing')
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
if options.download:
|
||||
downloadTranslations()
|
||||
elif options.prepare:
|
||||
preparation()
|
||||
elif options.update:
|
||||
update()
|
||||
elif options.generate:
|
||||
generate()
|
||||
elif options.all:
|
||||
all()
|
||||
else:
|
||||
pass
|
||||
Util.cmd_stack.append([Util.downloadTranslations])
|
||||
if options.create:
|
||||
Util.cmd_stack.append([Util.creation, u'%s' % options.create])
|
||||
if options.prepare:
|
||||
Util.cmd_stack.append([Util.preparation])
|
||||
if options.update:
|
||||
Util.cmd_stack.append([Util.update])
|
||||
if options.generate:
|
||||
Util.cmd_stack.append([Util.generate])
|
||||
if options.verbose:
|
||||
Util.verbose = True
|
||||
|
||||
def downloadTranslations():
|
||||
print "download()"
|
||||
for language in translations:
|
||||
filename = os.path.join(u'..', u'resources', u'i18n',
|
||||
u"openlp_%s.ts" % language)
|
||||
print filename
|
||||
page = urllib.urlopen(u"%s%s.ts" % (translation_path, language))
|
||||
content = page.read().decode("utf8")
|
||||
page.close()
|
||||
file = open(filename, u'w')
|
||||
file.write(content.encode('utf8'))
|
||||
file.close()
|
||||
if len(Util.cmd_stack) == 0:
|
||||
Util.cmd_stack.append([Util.downloadTranslations])
|
||||
Util.cmd_stack.append([Util.preparation])
|
||||
Util.cmd_stack.append([Util.update])
|
||||
Util.cmd_stack.append([Util.generate])
|
||||
|
||||
def preparation():
|
||||
stringlist = []
|
||||
start_dir = os.path.join(u'..')
|
||||
for root, dirs, files in os.walk(start_dir):
|
||||
for file in files:
|
||||
path = u"%s" % root
|
||||
path = path.replace("\\","/")
|
||||
path = path.replace("..",".")
|
||||
Util.stack_count = len(Util.cmd_stack)
|
||||
Util.process_stack()
|
||||
|
||||
if file.startswith(u'hook-') or file.startswith(u'test_'):
|
||||
continue
|
||||
|
||||
cond = False
|
||||
for search in ignore_pathes:
|
||||
if path.startswith(search):
|
||||
cond = True
|
||||
if cond:
|
||||
continue
|
||||
cond = False
|
||||
for search in ignore_files:
|
||||
if search == file:
|
||||
cond = True
|
||||
if cond:
|
||||
continue
|
||||
|
||||
if file.endswith(u'.py'):
|
||||
line = u"%s/%s" % (path, file)
|
||||
print u'Parsing "%s"' % line
|
||||
stringlist.append(u"SOURCES += %s" % line)
|
||||
elif file.endswith(u'.pyw'):
|
||||
line = u"%s/%s" % (path, file)
|
||||
print u'Parsing "%s"' % line
|
||||
stringlist.append(u"SOURCES += %s" % line)
|
||||
elif file.endswith(u'.ts'):
|
||||
line = u"%s/%s" % (path, file)
|
||||
print u'Parsing "%s"' % line
|
||||
stringlist.append(u"TRANSLATIONS += %s" % line)
|
||||
|
||||
print u'Generating PRO file...',
|
||||
stringlist.sort()
|
||||
write_file(os.path.join(start_dir, u'openlp.pro'), stringlist)
|
||||
print u'done.'
|
||||
|
||||
def update():
|
||||
print "update()"
|
||||
updateProcess = QtCore.QProcess()
|
||||
updateProcess.start(u"pylupdate4 -noobsolete ../openlp.pro")
|
||||
updateProcess.waitForFinished(60000)
|
||||
|
||||
def generate():
|
||||
print "generate()"
|
||||
generateProcess = QtCore.QProcess()
|
||||
generateProcess.start(u"lrelease ../openlp.pro")
|
||||
generateProcess.waitForFinished(60000)
|
||||
|
||||
def all():
|
||||
print "all()"
|
||||
downloadTranslations()
|
||||
preparation()
|
||||
update()
|
||||
generate()
|
||||
|
||||
|
||||
if __name__ == u'__main__':
|
||||
|
Loading…
Reference in New Issue
Block a user