Add internationalization and privilege translation 95/32195/13
authorAdam Malinowski <a.malinowsk2@partner.samsung.com>
Wed, 10 Dec 2014 09:07:12 +0000 (10:07 +0100)
committerAdam Malinowski <a.malinowsk2@partner.samsung.com>
Tue, 20 Jan 2015 11:59:33 +0000 (12:59 +0100)
Change-Id: I9f903811c1ff348e430e126971d3f9cf8bb8e00d

CMakeLists.txt
packaging/askuser.spec
src/agent/CMakeLists.txt
src/agent/main/main.cpp
src/agent/po/CMakeLists.txt [new file with mode: 0644]
src/agent/po/en.po [new file with mode: 0644]
src/agent/po/pl.po [new file with mode: 0644]

index 61ec81f..92e9414 100644 (file)
@@ -60,6 +60,8 @@ ADD_DEFINITIONS("-Wextra")                      # Generate even more extra warni
 # Don't export symbols by default
 ADD_DEFINITIONS("-fvisibility=hidden")
 
+# Pass project name to sources
+ADD_DEFINITIONS("-DPROJECT_NAME=\"${PROJECT_NAME}\"")
 
 IF (CMAKE_BUILD_TYPE MATCHES "DEBUG")
     ADD_DEFINITIONS("-DBUILD_TYPE_DEBUG")
index c3614f9..2653053 100644 (file)
@@ -8,7 +8,10 @@ Source0:    %{name}-%{version}.tar.gz
 Source1001:    %{name}.manifest
 Source1002:    libaskuser-common.manifest
 Source1003:    askuser-plugins.manifest
+BuildRequires: capi-security-privilege-manager-devel
 BuildRequires: cmake
+BuildRequires: gettext-tools
+BuildRequires: pkgconfig(capi-base-common)
 BuildRequires: pkgconfig(cynara-agent)
 BuildRequires: pkgconfig(cynara-plugin)
 BuildRequires: pkgconfig(libsystemd-daemon)
@@ -62,6 +65,7 @@ make %{?jobs:-j%jobs}
 %install
 rm -rf %{buildroot}
 %make_install
+%find_lang %{name}
 
 %post
 systemctl daemon-reload
@@ -86,7 +90,7 @@ fi
 
 %postun -n libaskuser-common -p /sbin/ldconfig
 
-%files
+%files -f %{name}.lang
 %manifest %{name}.manifest
 %license LICENSE
 %attr(755,root,root) /usr/bin/%{name}
index 8748112..0f57e63 100644 (file)
@@ -42,6 +42,9 @@ TARGET_LINK_LIBRARIES(${TARGET_ASKUSER}
     ${AGENT_DEP_LIBRARIES}
     ${ASKUSER_DEP_LIBRARIES}
     ${TARGET_ASKUSER_COMMON}
+    -lcapi-security-privilege-manager
     )
 
 INSTALL(TARGETS ${TARGET_ASKUSER} DESTINATION ${BIN_INSTALL_DIR})
+
+ADD_SUBDIRECTORY(po)
index d8857ba..34d8d6c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *  Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
  * @brief       Main ask user daemon file
  */
 
+#include <clocale>
 #include <cstdlib>
 #include <exception>
 #include <systemd/sd-journal.h>
@@ -32,6 +33,9 @@
 int main(int argc UNUSED, char **argv UNUSED) {
     init_log();
 
+    char *locale = setlocale(LC_ALL, "");
+    LOGD("Current locale is: <" << locale << ">");
+
     try {
         AskUser::Agent::Agent agent;
 
diff --git a/src/agent/po/CMakeLists.txt b/src/agent/po/CMakeLists.txt
new file mode 100644 (file)
index 0000000..3cb076f
--- /dev/null
@@ -0,0 +1,44 @@
+# Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+#
+#    Licensed under the Apache License, Version 2.0 (the "License");
+#    you may not use this file except in compliance with the License.
+#    You may obtain a copy of the License at
+#
+#        http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+# @file        CMakeLists.txt
+# @author      Adam Malinowski <a.malinowsk2@partner.samsung.com>
+#
+
+SET(POFILES
+    en.po pl.po
+)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(SHAREDIR "${PREFIX}/share")
+SET(LOCALEDIR "${SHAREDIR}/locale")
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+    SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+    MESSAGE("PO: ${pofile}")
+    GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+    GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+    SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+    ADD_CUSTOM_COMMAND(
+        OUTPUT ${moFile}
+        COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+        DEPENDS ${absPofile}
+    )
+    INSTALL(FILES ${moFile}
+        DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+    SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/src/agent/po/en.po b/src/agent/po/en.po
new file mode 100644 (file)
index 0000000..e433e84
--- /dev/null
@@ -0,0 +1,14 @@
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_TITLE"
+msgstr "Privilege request"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO"
+msgstr "No"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES"
+msgstr "Yes"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_FOR_SESSION"
+msgstr "Yes, for current session"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_MESSAGE"
+msgstr "Application: %s, ran by user: %s, requested privilege:\n%s\nGrant access to privilege?"
diff --git a/src/agent/po/pl.po b/src/agent/po/pl.po
new file mode 100644 (file)
index 0000000..37b41b4
--- /dev/null
@@ -0,0 +1,15 @@
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_TITLE"
+msgstr "Żądanie dostępu"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO"
+msgstr "Nie"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES"
+msgstr "Tak"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_FOR_SESSION"
+msgstr "Tak, dla bieżącej sesji"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_MESSAGE"
+msgstr "Aplikacja: %s, uruchomiona przez użytkownika: %s, zażądała zasobu:\n %s\nUdzielić dostępu?"
+