Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37528571
en ru br
Репозитории ALT

Группа :: Development/Tools
Пакет: kde5-lokalize

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: Add-language-team-settings-to-Lokalize.patch
Скачать


From 79cb035fc6633fc71d12197db73d45bd096e5226 Mon Sep 17 00:00:00 2001
From: Pavel Moseev <mars@altlinux.org>
Date: Fri, 1 Feb 2019 10:28:58 +0300
Subject: [PATCH] Add language-team settings to Lokalize
- add settings for explicitly setting the value of Language-Team
- it allows to specify the value of Language-Team setting for application and to override it for specific projects
---
 lokalize/src/catalog/gettextheader.cpp    | 16 +++++++++-
 lokalize/src/prefs/lokalize.kcfg          | 14 ++++++++
 lokalize/src/prefs/prefs.cpp              |  8 ++++-
 lokalize/src/prefs/prefs_identity.ui      | 39 ++++++++++++++++++-----
 lokalize/src/project/prefs_projectmain.ui | 53 ++++++++++++++++++++++++-------
 lokalize/src/project/projectbase.kcfg     | 27 ++++++++++++++++
 lokalize/src/project/projectbase.kcfgc    |  1 +
 7 files changed, 136 insertions(+), 22 deletions(-)
diff --git a/lokalize/src/catalog/gettextheader.cpp b/lokalize/src/catalog/gettextheader.cpp
index fbd2978..4817fac 100644
--- a/lokalize/src/catalog/gettextheader.cpp
+++ b/lokalize/src/catalog/gettextheader.cpp
@@ -362,7 +362,21 @@ void updateHeader(QString& header,
 
 
 
-    temp = QStringLiteral("Language-Team: ") % language % QStringLiteral(" <") % mailingList % QStringLiteral(">\\n");
+#ifndef NOKDE
+    Project::LangSource projLangSource = Project::instance()->languageSource();
+    QString projLT = Project::instance()->projLangTeam();
+    if (projLangSource == Project::LangSource::Project) {
+        temp = QStringLiteral("Language-Team: ")%projLT%QStringLiteral("\\n");
+    }
+    else if ((projLangSource == Project::LangSource::Application) && (Settings::overrideLangTeam())) {
+        temp = QStringLiteral("Language-Team: ")%Settings::userLangTeam()%QStringLiteral("\\n");
+    }
+    else {
+#endif
+        temp = QStringLiteral("Language-Team: ")%language%QStringLiteral(" <")%mailingList%QStringLiteral(">\\n");
+#ifndef NOKDE
+    }
+#endif
     if (Q_LIKELY(found))
         (*ait) = temp;
     else
diff --git a/lokalize/src/prefs/lokalize.kcfg b/lokalize/src/prefs/lokalize.kcfg
index bc8cbab..7297d5d 100644
--- a/lokalize/src/prefs/lokalize.kcfg
+++ b/lokalize/src/prefs/lokalize.kcfg
@@ -23,6 +23,20 @@
 -->
         <default code="true">KEMailSettings().getSetting(KEMailSettings::RealName)</default>
     </entry>
+    <entry key="overrideLangTeam" type="Bool">
+<!--
+        <label>Override Language Team</label>
+            <whatsthis>Use user-provided language team name instead of generating it</whatsthis>
+-->
+        <default>false</default>
+    </entry>
+    <entry key="userLangTeam" type="String">
+<!--
+        <label>Language Team</label>
+            <whatsthis>Translator team's name</whatsthis>
+-->
+        <default></default>
+    </entry>
     <entry key="authorEmail" type="String">
 <!--
             <whatsthis>Translator's email</whatsthis>
diff --git a/lokalize/src/prefs/prefs.cpp b/lokalize/src/prefs/prefs.cpp
index d4cb342..6ee67e2 100644
--- a/lokalize/src/prefs/prefs.cpp
+++ b/lokalize/src/prefs/prefs.cpp
@@ -111,6 +111,8 @@ void SettingsController::showSettingsDialog()
 
     connect(ui_prefs_identity.DefaultLangCode, QOverload<int>::of(&KComboBox::activated), ui_prefs_identity.kcfg_DefaultLangCode, &LangCodeSaver::setLangCode);
     ui_prefs_identity.kcfg_DefaultLangCode->hide();
+    connect(ui_prefs_identity.kcfg_overrideLangTeam, SIGNAL(toggled(bool)), ui_prefs_identity.kcfg_userLangTeam, SLOT(setEnabled(bool)));
+    connect(ui_prefs_identity.kcfg_overrideLangTeam, SIGNAL(toggled(bool)), ui_prefs_identity.kcfg_userLangTeam, SLOT(setFocus()));
 
     dialog->addPage(w, i18nc("@title:tab", "Identity"), "preferences-desktop-user");
 
@@ -294,7 +296,11 @@ void SettingsController::projectConfigure()
     ui_prefs_projectmain.poBaseDir->setUrl(QUrl::fromLocalFile(p.poDir()));
     ui_prefs_projectmain.glossaryTbx->setUrl(QUrl::fromLocalFile(p.glossaryPath()));
 
-
+    auto kcfg_ProjLangTeam = ui_prefs_projectmain.kcfg_ProjLangTeam;
+    connect(ui_prefs_projectmain.kcfg_LanguageSource, static_cast<void(KComboBox::*)(int)>(&KComboBox::currentIndexChanged),
+        this, [kcfg_ProjLangTeam](int index) { kcfg_ProjLangTeam->setEnabled(static_cast<Project::LangSource>(index) == Project::LangSource::Project); });
+    connect(ui_prefs_projectmain.kcfg_LanguageSource, static_cast<void(KComboBox::*)(const QString &)>(&KComboBox::currentIndexChanged),
+        this, [kcfg_ProjLangTeam] { kcfg_ProjLangTeam->setFocus(); });
 
 
 
diff --git a/lokalize/src/prefs/prefs_identity.ui b/lokalize/src/prefs/prefs_identity.ui
index 3d74a08..28f8fb0 100644
--- a/lokalize/src/prefs/prefs_identity.ui
+++ b/lokalize/src/prefs/prefs_identity.ui
@@ -14,7 +14,16 @@
    <string>Fill in your identity and information about your translation team. This information is used when updating the header of a file.</string>
   </property>
   <layout class="QGridLayout">
-   <property name="margin">
+   <property name="leftMargin">
+    <number>11</number>
+   </property>
+   <property name="topMargin">
+    <number>11</number>
+   </property>
+   <property name="rightMargin">
+    <number>11</number>
+   </property>
+   <property name="bottomMargin">
     <number>11</number>
    </property>
    <property name="spacing">
@@ -33,7 +42,7 @@
    <item row="1" column="0">
     <widget class="QLabel" name="textLabel2">
      <property name="text">
-      <string comment="@label:textbox">Email:</string>
+      <string comment="@label:textbox">&amp;Email:</string>
      </property>
      <property name="wordWrap">
       <bool>false</bool>
@@ -46,7 +55,7 @@
    <item row="0" column="0">
     <widget class="QLabel" name="textLabel2_2">
      <property name="text">
-      <string comment="@label:textbox">Name:</string>
+      <string comment="@label:textbox">&amp;Name:</string>
      </property>
      <property name="wordWrap">
       <bool>false</bool>
@@ -69,7 +78,7 @@
    <item row="3" column="0">
     <widget class="QLabel" name="label">
      <property name="text">
-      <string comment="@label:textbox">Default mailing list:</string>
+      <string comment="@label:textbox">&amp;Default mailing list:</string>
      </property>
      <property name="buddy">
       <cstring>kcfg_DefaultMailingList</cstring>
@@ -96,7 +105,7 @@
      </property>
     </widget>
    </item>
-   <item row="7" column="0" colspan="2">
+   <item row="8" column="0" colspan="2">
     <spacer>
      <property name="orientation">
       <enum>Qt::Vertical</enum>
@@ -119,14 +128,14 @@
      </property>
     </widget>
    </item>
-   <item row="5" column="1">
+   <item row="6" column="1">
     <widget class="LangCodeSaver" name="kcfg_DefaultLangCode">
      <property name="enabled">
       <bool>true</bool>
      </property>
     </widget>
    </item>
-   <item row="4" column="1">
+   <item row="5" column="1">
     <widget class="QLineEdit" name="kcfg_authorLocalizedName">
      <property name="toolTip">
       <string>Your name in your own language</string>
@@ -136,13 +145,27 @@
      </property>
     </widget>
    </item>
-   <item row="4" column="0">
+   <item row="5" column="0">
     <widget class="QLabel" name="label_2">
      <property name="text">
       <string comment="@label:textbox">Localized name:</string>
      </property>
     </widget>
    </item>
+   <item row="4" column="0">
+    <widget class="QCheckBox" name="kcfg_overrideLangTeam">
+     <property name="text">
+      <string>Language-Team:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="1">
+    <widget class="QLineEdit" name="kcfg_userLangTeam">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+    </widget>
+   </item>
   </layout>
  </widget>
  <customwidgets>
diff --git a/lokalize/src/project/prefs_projectmain.ui b/lokalize/src/project/prefs_projectmain.ui
index cf1245b..b50ab3d 100644
--- a/lokalize/src/project/prefs_projectmain.ui
+++ b/lokalize/src/project/prefs_projectmain.ui
@@ -11,10 +11,10 @@
    </rect>
   </property>
   <layout class="QGridLayout">
-   <item row="6" column="1">
+   <item row="7" column="1">
     <widget class="RelPathSaver" name="kcfg_PoBaseDir"/>
    </item>
-   <item row="7" column="1">
+   <item row="8" column="1">
     <widget class="RelPathSaver" name="kcfg_GlossaryTbx"/>
    </item>
    <item row="1" column="0">
@@ -37,7 +37,7 @@
      </property>
     </widget>
    </item>
-   <item row="3" column="1">
+   <item row="4" column="1">
     <widget class="KUrlRequester" name="poBaseDir">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
@@ -57,7 +57,7 @@ for your project (or a subproject for your target language).</string>
      </property>
     </widget>
    </item>
-   <item row="4" column="1">
+   <item row="5" column="1">
     <widget class="KUrlRequester" name="glossaryTbx">
      <property name="sizePolicy">
       <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@@ -73,7 +73,7 @@ for your project (or a subproject for your target language).</string>
      </property>
     </widget>
    </item>
-   <item row="3" column="0">
+   <item row="4" column="0">
     <widget class="QLabel" name="l1">
      <property name="text">
       <string comment="@label:textbox">Root folder:</string>
@@ -83,13 +83,16 @@ for your project (or a subproject for your target language).</string>
      </property>
     </widget>
    </item>
-   <item row="4" column="0">
+   <item row="5" column="0">
     <widget class="QLabel" name="l2">
      <property name="text">
       <string comment="@label:textbox">Glossary:</string>
      </property>
     </widget>
    </item>
+   <item row="2" column="1">
+    <widget class="QLineEdit" name="kcfg_MailingList"/>
+   </item>
    <item row="0" column="1">
     <widget class="QLineEdit" name="kcfg_ProjectID">
      <property name="toolTip">
@@ -107,8 +110,8 @@ For example, if you have several projects for translating KDE applications
      </property>
     </widget>
    </item>
-   <item row="2" column="1">
-    <widget class="QLineEdit" name="kcfg_MailingList"/>
+   <item row="6" column="1">
+    <widget class="LangCodeSaver" name="kcfg_LangCode"/>
    </item>
    <item row="2" column="0">
     <widget class="QLabel" name="l4">
@@ -117,7 +120,7 @@ For example, if you have several projects for translating KDE applications
      </property>
     </widget>
    </item>
-   <item row="8" column="0">
+   <item row="9" column="0">
     <spacer name="verticalSpacer">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
@@ -130,15 +133,41 @@ For example, if you have several projects for translating KDE applications
      </property>
     </spacer>
    </item>
-   <item row="5" column="1">
-    <widget class="LangCodeSaver" name="kcfg_LangCode"/>
+   <item row="3" column="1">
+    <widget class="QLineEdit" name="kcfg_ProjLangTeam">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="0">
+    <widget class="KComboBox" name="kcfg_LanguageSource">
+     <property name="currentIndex">
+      <number>1</number>
+     </property>
+     <item>
+      <property name="text">
+       <string>Automatic</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Application</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Project</string>
+      </property>
+     </item>
+    </widget>
    </item>
   </layout>
  </widget>
  <customwidgets>
   <customwidget>
    <class>KUrlRequester</class>
-   <extends>QFrame</extends>
+   <extends>QWidget</extends>
    <header>kurlrequester.h</header>
    <container>1</container>
   </customwidget>
diff --git a/lokalize/src/project/projectbase.kcfg b/lokalize/src/project/projectbase.kcfg
index 2df707f..e3ac6fc 100644
--- a/lokalize/src/project/projectbase.kcfg
+++ b/lokalize/src/project/projectbase.kcfg
@@ -26,6 +26,33 @@
     <entry name="MailingList"  type="String">
         <default code="true">getMailingList()</default>
     </entry>
+    <entry name="UserLangTeam" type="String">
+<!--
+        <label>User Language Team in Lokalize settings</label>
+-->
+        <default></default>
+    </entry>
+    <entry name="OverrideLangTeam" type="Bool">
+<!--
+        <label>Override Lokalize Language Team</label>
+-->
+        <default>false</default>
+    </entry>
+    <entry name="ProjLangTeam" type="String">
+<!--
+        <label>Project Language Team</label>
+-->
+        <default></default>
+    </entry>
+    <entry name="LanguageSource" type="Enum">
+            <choices name="LangSource">
+            <choice name="Automatic" />
+            <choice name="Application" />
+            <choice name="Project" />
+            <choice name="Undefined" />
+        </choices>
+        <default>Application</default>
+    </entry>
     <entry name="PoBaseDir"  type="String">
 <!--
         <label>The base directory for PO files (translations)</label>
diff --git a/lokalize/src/project/projectbase.kcfgc b/lokalize/src/project/projectbase.kcfgc
index 289fd81..2999109 100644
--- a/lokalize/src/project/projectbase.kcfgc
+++ b/lokalize/src/project/projectbase.kcfgc
@@ -3,3 +3,4 @@ ClassName=ProjectBase
 Singleton=false
 Mutators=true
 GlobalEnums=true
+UseEnumTypes=true
-- 
2.10.2
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin