diff --git a/share/qtcreator/translations/check-ts.pl b/share/qtcreator/translations/check-ts.pl new file mode 100755 index 00000000000..02909f25129 --- /dev/null +++ b/share/qtcreator/translations/check-ts.pl @@ -0,0 +1,87 @@ +#! /usr/bin/perl -w +############################################################################# +## +## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +## All rights reserved. +## Contact: Nokia Corporation (qt-info@nokia.com) +## +## This file is part of the translations module of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL$ +## No Commercial Usage +## This file contains pre-release code and may not be distributed. +## You may use this file in accordance with the terms and conditions +## contained in the Technology Preview License Agreement accompanying +## this package. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 as published by the Free Software +## Foundation and appearing in the file LICENSE.LGPL included in the +## packaging of this file. Please review the following information to +## ensure the GNU Lesser General Public License version 2.1 requirements +## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## In addition, as a special exception, Nokia gives you certain additional +## rights. These rights are described in the Nokia Qt LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## If you have questions regarding the use of this file, please contact +## Nokia at qt-info@nokia.com. +## +## +## +## +## +## +## +## +## $QT_END_LICENSE$ +## +############################################################################# + + +use strict; + +my %scores = (); + +my $files = join("\n", <*_??.ts>); +my $res = `xmlpatterns -param files=\"$files\" check-ts.xq`; +for my $i (split(/ /, $res)) { + $i =~ /^(?:[^\/]+\/)*qtcreator_(..)\.ts:(.*)$/; + my ($lang, $pc) = ($1, $2); + $scores{$lang} = $pc; +} + +my $code = ""; + +for my $lang (sort(keys(%scores))) { + my $pc = $scores{$lang}; + my $fail = ""; + if (int($pc) < 98) { + $fail = " (excluded)"; + } else { + $code .= " ".$lang; + } + printf "%-5s %3d%s\n", $lang, $pc, $fail; +} + +my $fn = "translations.pro"; +my $nfn = $fn."new"; +open IN, $fn or die; +open OUT, ">".$nfn or die; +while (1) { + $_ = ; + last if (/^LANGUAGES /); + print OUT $_; +} +while ($_ =~ /\\\n$/) { + $_ = ; +} +print OUT "LANGUAGES =".$code."\n"; +while () { + print OUT $_; +} +close OUT; +close IN; +rename $nfn, $fn; diff --git a/share/qtcreator/translations/check-ts.xq b/share/qtcreator/translations/check-ts.xq new file mode 100644 index 00000000000..2d6404cefc7 --- /dev/null +++ b/share/qtcreator/translations/check-ts.xq @@ -0,0 +1,3 @@ +for $file in tokenize($files, codepoints-to-string(10)) + let $fresh := doc($file)/TS/context/message[not (translation/@type = 'obsolete')] + return concat($file, ":", count($fresh/translation[not (@type = 'unfinished')]) * 100 idiv count($fresh)) diff --git a/share/qtcreator/translations/translations.pro b/share/qtcreator/translations/translations.pro index ec37eb6585a..ae4bd5c1bd5 100644 --- a/share/qtcreator/translations/translations.pro +++ b/share/qtcreator/translations/translations.pro @@ -43,6 +43,10 @@ ts-all.commands = cd $$IDE_SOURCE_TREE && $$LUPDATE src share/qtcreator/qmldesig ts-all.depends = extract QMAKE_EXTRA_TARGETS += ts-all +check-ts.commands = (cd $$PWD && perl check-ts.pl) +check-ts.depends = ts-all +QMAKE_EXTRA_TARGETS += check-ts + isEqual(QMAKE_DIR_SEP, /) { commit-ts.commands = \ cd $$IDE_SOURCE_TREE; \