-
Notifications
You must be signed in to change notification settings - Fork 345
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
HTML Setup: Enable translation in mythbackend and setup menu.
Load the mythfrontend .ts file in mythbackend to enable translation in mythbackend's HTML server. This uses the mythfrontend .ts files because that is what mythtv-setup uses and the primary reason for enabling translation in the backend is to translate the backend setup webpages being developed. The backend normally serves only data, not presentation, so the backend should not normally be executing tr() to translate messages for the user. The HTML setup pages are different. We want the backend to automatically translate .qsp and .qjs files before they are presented to the user. This patch enables translation of the menu.qsp main menu in the HTML setup webpages. To enable translation in other .qsp and .qjs files, the translatable text should be wrapped in <i18n> and </i18n> opening and closing tags. Only .qsp and .qjs are processed for translations, so all .html and .js files needing translation must be renamed to .qsp and .qjs respectively. To rebuild the htmlstrings.h file, change to the mythtv/html directory and run ./buildhtmlstrings.sh. Once htmlstrings.h has been regenerated, change to the mythtv/i18n directory and run the normal lupdate command to pull in the strings from htmlstrings.h and allow their translation. Since mythtv-setup is already using the mythfrontend *.ts files for translations, there should be no new requirements for files to be installed on a backend server via packagers because the mythfrontend *.ts files should already be installed on both frontends and backends. The *.ts files have not been updated as part of this commit. There are some strings in htmlstrings.h which are already translated in the existing *.ts files. This commit can be tested by changing your Language setting, restarting mythbackend, and looking in the HTML setup menu at options like 'General' and 'Job Queue' which already exist in the existing *.ts files.
- Loading branch information
Showing
6 changed files
with
153 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#!/bin/sh | ||
|
||
BASEDIR="." | ||
OUTFILE="${BASEDIR}/htmlstrings.h" | ||
|
||
echo "/*********************************************************/" > ${OUTFILE} | ||
echo "/* This file is automatically generated by running the */" >> ${OUTFILE} | ||
echo "/* buildhtmlstrings.sh script which parses translatable */" >> ${OUTFILE} | ||
echo "/* strings from .qsp and .qjs files under the html */" >> ${OUTFILE} | ||
echo "/* subdirectory using getTransStringsFromFile.pl. This */" >> ${OUTFILE} | ||
echo "/* file should be regenerated before running lupdate in */" >> ${OUTFILE} | ||
echo "/* the i18n directory to regenerate the i18n/*.ts files. */" >> ${OUTFILE} | ||
echo "/*********************************************************/" >> ${OUTFILE} | ||
echo >> ${OUTFILE} | ||
echo "void html_strings_null() {" >> ${OUTFILE} | ||
|
||
find ${BASEDIR}/ -type f | egrep "\.(qsp|qjs)$" | while read FILE | ||
do | ||
echo "Checking: ${FILE}" | ||
${BASEDIR}/getTransStringsFromFile.pl ${BASEDIR}/${FILE} ${FILE} >> ${OUTFILE} | ||
done | ||
|
||
echo " QString()" >> ${OUTFILE} | ||
echo "}" >> ${OUTFILE} | ||
|
||
echo "=================================================================" | ||
cat ${OUTFILE} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
#!/usr/bin/perl -w | ||
|
||
if (!defined($ARGV[0])) { | ||
print "ERROR: Usage: getTransStringsFromFile.pl FILENAME\n"; | ||
exit -1; | ||
} | ||
|
||
my $inFile = $ARGV[0]; | ||
my $baseFile = defined($ARGV[1]) ? $ARGV[1] : $inFile; | ||
my %strings; | ||
my $contents = ""; | ||
open( IN, "< $inFile" ) || die "Can not open $inFile: $!"; | ||
while( my $line = <IN> ) { | ||
chomp($line); | ||
|
||
$line =~ s/^\s*//; | ||
$line =~ s/\s*$//; | ||
|
||
$contents .= " "; | ||
$contents .= $line; | ||
} | ||
close( IN ); | ||
|
||
my @lines = split('>', $contents); | ||
foreach my $line ( @lines ) { | ||
if ($line =~ /<\/i18n$/i) { | ||
$line =~ s/<\/i18n$//; | ||
$line =~ s/"/\\"/g; | ||
$strings{$line} = 1; | ||
} | ||
} | ||
|
||
@lines = split('\)', $contents); | ||
foreach my $line ( @lines ) { | ||
if ($line =~ /qsTr\(/i) { | ||
$line =~ s/.*qsTr\(\s*["']//i; | ||
$line =~ s/['"]$//; | ||
$strings{$line} = 1; | ||
} | ||
} | ||
|
||
if (scalar(keys %strings)) { | ||
print " /* $baseFile */\n"; | ||
foreach my $string ( sort keys %strings ) { | ||
print " QObject::tr(\"" . $string . "\"),\n"; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
/*********************************************************/ | ||
/* This file is automatically generated by running the */ | ||
/* buildhtmlstrings.sh script which parses translatable */ | ||
/* strings from .qsp and .qjs files under the html */ | ||
/* subdirectory using getTransStringsFromFile.pl. This */ | ||
/* file should be regenerated before running lupdate in */ | ||
/* the i18n directory to regenerate the i18n/*.ts files. */ | ||
/*********************************************************/ | ||
|
||
void html_strings_null() { | ||
/* ./menu.qsp */ | ||
QObject::tr("API"), | ||
QObject::tr("Advanced Setup"), | ||
QObject::tr("Backend Status"), | ||
QObject::tr("Change Password"), | ||
QObject::tr("Channel Editor"), | ||
QObject::tr("Channel Service"), | ||
QObject::tr("Content Service"), | ||
QObject::tr("DVR Service"), | ||
QObject::tr("Database"), | ||
QObject::tr("Database Tools"), | ||
QObject::tr("Expert/Dev Setup"), | ||
QObject::tr("General"), | ||
QObject::tr("GetRecorded() Example"), | ||
QObject::tr("GetStorageGroups()"), | ||
QObject::tr("Guide Data"), | ||
QObject::tr("Guide Data Sources"), | ||
QObject::tr("Guide Service"), | ||
QObject::tr("Hardware Profile"), | ||
QObject::tr("Information"), | ||
QObject::tr("Job Queue"), | ||
QObject::tr("Myth Service"), | ||
QObject::tr("Overview"), | ||
QObject::tr("Recording Devices"), | ||
QObject::tr("Send a Message"), | ||
QObject::tr("Server Side Scripting"), | ||
QObject::tr("Setup"), | ||
QObject::tr("Setup Wizard"), | ||
QObject::tr("Storage Groups"), | ||
QObject::tr("System Events"), | ||
QObject::tr("Utilities"), | ||
QObject::tr("WSDL Links"), | ||
QString() | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters