[evolution-data-server/tintou/no-intltools] M!78 - Remove dependency on intltool
- From: Corentin Noël <corentinnoel src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server/tintou/no-intltools] M!78 - Remove dependency on intltool
- Date: Wed, 22 Sep 2021 11:51:49 +0000 (UTC)
commit 067bf117a3fc6b05a5842244e9000f2b0b0148f7
Author: Corentin Noël <corentin noel collabora com>
Date: Mon Sep 20 17:01:49 2021 +0200
M!78 - Remove dependency on intltool
Add the I18n CMake module to merge files.
Signed-off-by: Corentin Noël <corentin noel collabora com>
Closes https://gitlab.gnome.org/GNOME/evolution-data-server/-/merge_requests/78
CMakeLists.txt | 3 +-
cmake/modules/FindIntltool.cmake | 214 ---------------------
cmake/modules/I18n.cmake | 26 +++
data/CMakeLists.txt | 4 +-
.../org.gnome.Evolution-alarm-notify.desktop.in.in | 4 +-
...volution-data-server.addressbook.gschema.xml.in | 2 +-
...e.evolution-data-server.calendar.gschema.xml.in | 46 ++---
.../org.gnome.evolution-data-server.gschema.xml.in | 60 +++---
...e.evolution.shell.network-config.gschema.xml.in | 52 ++---
po/CMakeLists.txt | 87 ++++++++-
po/LINGUAS | 88 +++++++++
po/POTFILES.in | 19 --
po/POTFILES.source.in | 18 ++
.../evolution-source-registry/CMakeLists.txt | 7 +-
.../builtin/birthdays.source.in | 2 +-
.../builtin/caldav-stub.source.in | 2 +-
.../builtin/carddav-stub.source.in | 2 +-
.../builtin/contacts-stub.source.in | 2 +-
.../builtin/google-stub.source.in | 2 +-
.../builtin/ldap-stub.source.in | 2 +-
.../builtin/local-stub.source.in | 2 +-
.../builtin/local.source.in | 2 +-
.../builtin/sendmail.source.in | 2 +-
.../builtin/system-address-book.source.in | 2 +-
.../builtin/system-calendar.source.in | 2 +-
.../builtin/system-memo-list.source.in | 2 +-
.../builtin/system-proxy.source.in | 2 +-
.../builtin/system-task-list.source.in | 2 +-
.../builtin/vfolder.source.in | 2 +-
.../builtin/weather-stub.source.in | 2 +-
.../builtin/webcal-stub.source.in | 2 +-
.../builtin/webdav-notes-stub.source.in | 2 +-
32 files changed, 328 insertions(+), 338 deletions(-)
---
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0946d7371..6358035bf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -274,7 +274,8 @@ include(PkgConfigEx)
include(SetupBuildFlags)
include(UninstallTarget)
-include(FindIntltool)
+include(FindGettext)
+include(I18n)
include(FindKRB5)
include(FindLDAP)
include(FindPhonenumber)
diff --git a/cmake/modules/I18n.cmake b/cmake/modules/I18n.cmake
new file mode 100644
index 000000000..525adaa3f
--- /dev/null
+++ b/cmake/modules/I18n.cmake
@@ -0,0 +1,26 @@
+# I18n.cmake
+#
+# Macros to easily use Gettext translations capabilities
+#
+
+include(FindGettext)
+include(CMakeParseArguments)
+
+macro(i18n_merge_file _source _target _po_dir)
+ cmake_parse_arguments(_I18N "" "TYPE" "EXTRA_ARGS" ${ARGN})
+ if (NOT DEFINED _I18N_TYPE)
+ set(_I18N_TYPE "desktop")
+ elseif(NOT ((${_I18N_TYPE} STREQUAL "desktop") OR (${_I18N_TYPE} STREQUAL "xml")))
+ message(FATAL_ERROR "Wrong type supplied, only 'desktop' and 'xml' are allowed, given:
'${_I18N_TYPE}'")
+ endif()
+ add_custom_command(
+ OUTPUT ${_target}
+ DEPENDS ${_source} "${_po_dir}/LINGUAS"
+ COMMAND ${GETTEXT_MSGFMT_EXECUTABLE}
+ --${_I18N_TYPE}
+ --template=${_source}
+ -d ${_po_dir}
+ -o ${_target}
+ ${_I18N_EXTRA_ARGS}
+ )
+endmacro(i18n_merge_file)
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
index a366a9568..de24e1946 100644
--- a/data/CMakeLists.txt
+++ b/data/CMakeLists.txt
@@ -10,7 +10,7 @@ configure_file(org.gnome.Evolution-alarm-notify.desktop.in.in
@ONLY
)
-intltool_merge(${CMAKE_CURRENT_BINARY_DIR}/org.gnome.Evolution-alarm-notify.desktop.in
org.gnome.Evolution-alarm-notify.desktop --desktop-style --utf8)
+i18n_merge_file(${CMAKE_CURRENT_BINARY_DIR}/org.gnome.Evolution-alarm-notify.desktop.in
org.gnome.Evolution-alarm-notify.desktop ${CMAKE_SOURCE_DIR}/po)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.gnome.Evolution-alarm-notify.desktop
DESTINATION ${autostartdir}
@@ -36,7 +36,7 @@ set(SCHEMAS
set(BUILT_SCHEMAS)
foreach(_schema IN LISTS SCHEMAS)
- intltool_merge(${_schema}.in ${_schema} --no-translations --xml-style --utf8)
+ configure_file(${_schema}.in ${_schema} COPYONLY)
list(APPEND BUILT_SCHEMAS ${CMAKE_CURRENT_BINARY_DIR}/${_schema})
endforeach(_schema)
diff --git a/data/org.gnome.Evolution-alarm-notify.desktop.in.in
b/data/org.gnome.Evolution-alarm-notify.desktop.in.in
index e49d037fd..e83d2f67e 100644
--- a/data/org.gnome.Evolution-alarm-notify.desktop.in.in
+++ b/data/org.gnome.Evolution-alarm-notify.desktop.in.in
@@ -1,7 +1,7 @@
[Desktop Entry]
Type=Application
-_Name=Evolution Alarm Notify
-_Comment=Calendar event notifications
+Name=Evolution Alarm Notify
+Comment=Calendar event notifications
Icon=appointment-soon
Exec=@privlibexecdir@/evolution-alarm-notify
Terminal=false
diff --git a/data/org.gnome.evolution-data-server.addressbook.gschema.xml.in
b/data/org.gnome.evolution-data-server.addressbook.gschema.xml.in
index f010d318e..0aa5bb048 100644
--- a/data/org.gnome.evolution-data-server.addressbook.gschema.xml.in
+++ b/data/org.gnome.evolution-data-server.addressbook.gschema.xml.in
@@ -2,7 +2,7 @@
<schema gettext-domain="evolution-data-server" id="org.gnome.evolution-data-server.addressbook"
path="/org/gnome/evolution-data-server/addressbook/">
<key name="self-contact-uid" type="s">
<default>''</default>
- <_summary>Contact UID of a user</_summary>
+ <summary>Contact UID of a user</summary>
</key>
</schema>
</schemalist>
diff --git a/data/org.gnome.evolution-data-server.calendar.gschema.xml.in
b/data/org.gnome.evolution-data-server.calendar.gschema.xml.in
index f6c9ecd66..ee153d5a5 100644
--- a/data/org.gnome.evolution-data-server.calendar.gschema.xml.in
+++ b/data/org.gnome.evolution-data-server.calendar.gschema.xml.in
@@ -10,79 +10,79 @@
<key name="contacts-reminder-enabled" type="b">
<default>false</default>
- <_summary>Birthday and anniversary reminder</_summary>
- <_description>Whether to set a reminder for birthdays and anniversaries</_description>
+ <summary>Birthday and anniversary reminder</summary>
+ <description>Whether to set a reminder for birthdays and anniversaries</description>
</key>
<key name="contacts-reminder-interval" type="i">
<default>15</default>
- <_summary>Birthday and anniversary reminder value</_summary>
- <_description>Number of units for determining a birthday or anniversary reminder</_description>
+ <summary>Birthday and anniversary reminder value</summary>
+ <description>Number of units for determining a birthday or anniversary reminder</description>
</key>
<key name="contacts-reminder-units" enum='org.gnome.evolution-data-server.calendar.Duration'>
<default>'minutes'</default>
- <_summary>Birthday and anniversary reminder units</_summary>
- <_description>Units for a birthday or anniversary reminder, “minutes”, “hours” or “days”</_description>
+ <summary>Birthday and anniversary reminder units</summary>
+ <description>Units for a birthday or anniversary reminder, “minutes”, “hours” or “days”</description>
</key>
<key name="reminders-past" type="as">
<default>['']</default>
- <_summary>Past reminders for EReminderWatcher</_summary>
+ <summary>Past reminders for EReminderWatcher</summary>
</key>
<key name="reminders-snoozed" type="as">
<default>['']</default>
- <_summary>Snoozed reminders for EReminderWatcher</_summary>
+ <summary>Snoozed reminders for EReminderWatcher</summary>
</key>
<key name="notify-programs" type="as">
<default>[]</default>
- <_summary>Reminder programs</_summary>
- <_description>Programs that are allowed to be run by reminders</_description>
+ <summary>Reminder programs</summary>
+ <description>Programs that are allowed to be run by reminders</description>
</key>
<key name="notify-with-tray" type="b">
<default>true</default>
- <_summary>Show reminders in notification tray only</_summary>
- <_description>When set to true, the reminders are shown only in the notification tray, otherwise the
reminders dialog is shown immediately</_description>
+ <summary>Show reminders in notification tray only</summary>
+ <description>When set to true, the reminders are shown only in the notification tray, otherwise the
reminders dialog is shown immediately</description>
</key>
<key name="notify-window-on-top" type="b">
<default>true</default>
- <_summary>Show reminder notification dialog always on top</_summary>
- <_description>Whether or not to show reminder notification dialog always on top. Note this works only
as a hint for the window manager, which may or may not obey it.</_description>
+ <summary>Show reminder notification dialog always on top</summary>
+ <description>Whether or not to show reminder notification dialog always on top. Note this works only
as a hint for the window manager, which may or may not obey it.</description>
</key>
<key name="notify-window-x" type="i">
<default>-1</default>
- <_summary>X position of the reminder notification dialog</_summary>
+ <summary>X position of the reminder notification dialog</summary>
</key>
<key name="notify-window-y" type="i">
<default>-1</default>
- <_summary>Y position of the reminder notification dialog</_summary>
+ <summary>Y position of the reminder notification dialog</summary>
</key>
<key name="notify-window-width" type="i">
<default>-1</default>
- <_summary>Width of the reminder notification dialog</_summary>
+ <summary>Width of the reminder notification dialog</summary>
</key>
<key name="notify-window-height" type="i">
<default>-1</default>
- <_summary>Height of the reminder notification dialog</_summary>
+ <summary>Height of the reminder notification dialog</summary>
</key>
<key name="notify-window-paned-position" type="i">
<default>-1</default>
- <_summary>Size in pixels of the event list in the reminder notification dialog</_summary>
+ <summary>Size in pixels of the event list in the reminder notification dialog</summary>
</key>
<key name="notify-completed-tasks" type="b">
<default>true</default>
- <_summary>Show reminder notification for completed tasks</_summary>
+ <summary>Show reminder notification for completed tasks</summary>
</key>
<key name="notify-past-events" type="b">
<default>false</default>
- <_summary>Show reminder notification for past events</_summary>
+ <summary>Show reminder notification for past events</summary>
</key>
<key name="notify-last-snooze-minutes" type="i">
<default>5</default>
- <_summary>The last used snooze time, in minutes</_summary>
+ <summary>The last used snooze time, in minutes</summary>
</key>
<key name="notify-custom-snooze-minutes" type="ai">
<default>[]</default>
- <_summary>User-defined snooze times, in minutes</_summary>
+ <summary>User-defined snooze times, in minutes</summary>
</key>
</schema>
</schemalist>
diff --git a/data/org.gnome.evolution-data-server.gschema.xml.in
b/data/org.gnome.evolution-data-server.gschema.xml.in
index b6a0cbea8..bc630332a 100644
--- a/data/org.gnome.evolution-data-server.gschema.xml.in
+++ b/data/org.gnome.evolution-data-server.gschema.xml.in
@@ -2,47 +2,47 @@
<schema gettext-domain="evolution-data-server" id="org.gnome.evolution-data-server"
path="/org/gnome/evolution-data-server/">
<key name="migrated" type="b">
<default>false</default>
- <_summary>Whether the migration of old setting was already done</_summary>
+ <summary>Whether the migration of old setting was already done</summary>
</key>
<key name="camel-gpg-binary" type="s">
<default>''</default>
- <_summary>An absolute path where the gpg (or gpg2) binary is</_summary>
- <_description>An example is “/usr/bin/gpg”; when it is left empty, or an incorrect value is set, then
it will be searched for. Change requires restart of the application.</_description>
+ <summary>An absolute path where the gpg (or gpg2) binary is</summary>
+ <description>An example is “/usr/bin/gpg”; when it is left empty, or an incorrect value is set, then
it will be searched for. Change requires restart of the application.</description>
</key>
<key name="camel-cipher-load-photos" type="b">
<default>true</default>
- <_summary>Whether to load photos of signers/encrypters</_summary>
- <_description>When set to “true”, tries to load also photo of the signers/encrypters, if available in
the key/certificate.</_description>
+ <summary>Whether to load photos of signers/encrypters</summary>
+ <description>When set to “true”, tries to load also photo of the signers/encrypters, if available in
the key/certificate.</description>
</key>
<key name="camel-smtp-helo-argument" type="s">
<default>''</default>
- <_summary>Override SMTP HELO/EHLO argument</_summary>
- <_description>When not empty, it's used as the SMTP HELO/EHLO argument, instead of the local host
name/IP.</_description>
+ <summary>Override SMTP HELO/EHLO argument</summary>
+ <description>When not empty, it's used as the SMTP HELO/EHLO argument, instead of the local host
name/IP.</description>
</key>
<key name="camel-message-info-user-headers" type="as">
<default>[]</default>
- <_summary>Array of user header names</_summary>
- <_description>These headers can be stored in the folder summary, possibly being visible in the GUI.
The value can contain a pipe character ('|'), which delimits the display name from the header name. Example:
'Spam Score|X-Spam-Score'</_description>
+ <summary>Array of user header names</summary>
+ <description>These headers can be stored in the folder summary, possibly being visible in the GUI. The
value can contain a pipe character ('|'), which delimits the display name from the header name. Example:
'Spam Score|X-Spam-Score'</description>
</key>
<key name="network-monitor-gio-name" type="s">
<default>''</default>
- <_summary>GIO name of the GNetworkMonitor to use for an ENetworkMonitor instance</_summary>
- <_description>When set to an unknown value, then the default GNetworkMonitor is used in the
background. A special value “always-online” is used for no network monitoring.</_description>
+ <summary>GIO name of the GNetworkMonitor to use for an ENetworkMonitor instance</summary>
+ <description>When set to an unknown value, then the default GNetworkMonitor is used in the background.
A special value “always-online” is used for no network monitoring.</description>
</key>
<key name="autoconfig-directory" type="s">
<default>''</default>
- <_summary>A full path to a directory where .source files with preconfigured options can be
stored</_summary>
- <_description>This directory, if filled with an existing path, is checked additionally to XDG
configure directories.</_description>
+ <summary>A full path to a directory where .source files with preconfigured options can be
stored</summary>
+ <description>This directory, if filled with an existing path, is checked additionally to XDG configure
directories.</description>
</key>
<key name="autoconfig-variables" type="as">
<default>['']</default>
- <_summary>A list of variables which can be part of the autoconfig .source files</_summary>
- <_description>Each item of the array is expected to be of the form: name=value. These variables are
checked before environment variables, but after the predefined USER, REALNAME and HOST
variables.</_description>
+ <summary>A list of variables which can be part of the autoconfig .source files</summary>
+ <description>Each item of the array is expected to be of the form: name=value. These variables are
checked before environment variables, but after the predefined USER, REALNAME and HOST
variables.</description>
</key>
<key name="oauth2-services-hint" type="as">
<default>['']</default>
- <_summary>A list of hints for OAuth2 services</_summary>
- <_description>Users can extend the list of supported protocols and hostnames for defined OAuth2
services, in addition to those hard-coded.
+ <summary>A list of hints for OAuth2 services</summary>
+ <description>Users can extend the list of supported protocols and hostnames for defined OAuth2
services, in addition to those hard-coded.
Each line can be of the form:
servicename[-protocol]:hostname1,hostname2,...
where “servicename” is the actual service name;
@@ -54,37 +54,37 @@
Examples:
Company:mail.company.com — enables “Company” OAuth2 authentication for “mail.company.com” host
- Company-CalDAV:caldav.company.com — enables “Company” OAuth2 authentication for any “CalDAV” source,
which reads data from “caldav.company.com” host</_description>
+ Company-CalDAV:caldav.company.com — enables “Company” OAuth2 authentication for any “CalDAV” source,
which reads data from “caldav.company.com” host</description>
</key>
<key name="oauth2-google-client-id" type="s">
<default>''</default>
- <_summary>An OAuth2 client ID to use to connect to Google servers, instead of the one provided during
build time</_summary>
- <_description>User-specified OAuth2 client ID for Google servers. Empty string means to use the one
provided during build time. Change of this requires restart.</_description>
+ <summary>An OAuth2 client ID to use to connect to Google servers, instead of the one provided during
build time</summary>
+ <description>User-specified OAuth2 client ID for Google servers. Empty string means to use the one
provided during build time. Change of this requires restart.</description>
</key>
<key name="oauth2-google-client-secret" type="s">
<default>''</default>
- <_summary>An OAuth2 client secret to use to connect to Google servers, instead of the one provided
during build time</_summary>
- <_description>User-specified OAuth2 client secret for Google servers. Empty string means to use the
one provided during build time. Change of this requires restart.</_description>
+ <summary>An OAuth2 client secret to use to connect to Google servers, instead of the one provided
during build time</summary>
+ <description>User-specified OAuth2 client secret for Google servers. Empty string means to use the one
provided during build time. Change of this requires restart.</description>
</key>
<key name="oauth2-outlook-client-id" type="s">
<default>''</default>
- <_summary>An OAuth2 client ID to use to connect to Outlook servers, instead of the one provided during
build time</_summary>
- <_description>User-specified OAuth2 client ID for Outlook servers. Empty string means to use the one
provided during build time. Change of this requires restart.</_description>
+ <summary>An OAuth2 client ID to use to connect to Outlook servers, instead of the one provided during
build time</summary>
+ <description>User-specified OAuth2 client ID for Outlook servers. Empty string means to use the one
provided during build time. Change of this requires restart.</description>
</key>
<key name="oauth2-outlook-client-secret" type="s">
<default>''</default>
- <_summary>An OAuth2 client secret to use to connect to Outlook servers, instead of the one provided
during build time</_summary>
- <_description>User-specified OAuth2 client secret for Outlook servers. Empty string means to use the
one provided during build time. Change of this requires restart.</_description>
+ <summary>An OAuth2 client secret to use to connect to Outlook servers, instead of the one provided
during build time</summary>
+ <description>User-specified OAuth2 client secret for Outlook servers. Empty string means to use the
one provided during build time. Change of this requires restart.</description>
</key>
<key name="oauth2-yahoo-client-id" type="s">
<default>''</default>
- <_summary>An OAuth2 client ID to use to connect to Yahoo! servers, instead of the one provided during
build time</_summary>
- <_description>User-specified OAuth2 client ID for Yahoo! servers. Empty string means to use the one
provided during build time. Change of this requires restart.</_description>
+ <summary>An OAuth2 client ID to use to connect to Yahoo! servers, instead of the one provided during
build time</summary>
+ <description>User-specified OAuth2 client ID for Yahoo! servers. Empty string means to use the one
provided during build time. Change of this requires restart.</description>
</key>
<key name="oauth2-yahoo-client-secret" type="s">
<default>''</default>
- <_summary>An OAuth2 client secret to use to connect to Yahoo! servers, instead of the one provided
during build time</_summary>
- <_description>User-specified OAuth2 client secret for Yahoo! servers. Empty string means to use the
one provided during build time. Change of this requires restart.</_description>
+ <summary>An OAuth2 client secret to use to connect to Yahoo! servers, instead of the one provided
during build time</summary>
+ <description>User-specified OAuth2 client secret for Yahoo! servers. Empty string means to use the one
provided during build time. Change of this requires restart.</description>
</key>
</schema>
</schemalist>
diff --git a/data/org.gnome.evolution.shell.network-config.gschema.xml.in
b/data/org.gnome.evolution.shell.network-config.gschema.xml.in
index 9793cb95e..dee81de9b 100644
--- a/data/org.gnome.evolution.shell.network-config.gschema.xml.in
+++ b/data/org.gnome.evolution.shell.network-config.gschema.xml.in
@@ -8,68 +8,68 @@
<key name="proxy-type" type="i">
<default>0</default>
- <_summary>(Deprecated) Proxy type to use</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Proxy type to use</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="use-http-proxy" type="b">
<default>false</default>
- <_summary>(Deprecated) Whether to use http-proxy</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Whether to use http-proxy</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="use-authentication" type="b">
<default>false</default>
- <_summary>(Deprecated) Whether proxy server requires authentication</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Whether proxy server requires authentication</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="http-host" type="s">
<default>''</default>
- <_summary>(Deprecated) Host name for HTTP requests</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Host name for HTTP requests</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="http-port" type="i">
<default>0</default>
- <_summary>(Deprecated) Port number for HTTP requests</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Port number for HTTP requests</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="authentication-user" type="s">
<default>''</default>
- <_summary>(Deprecated) Proxy authentication user name</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Proxy authentication user name</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="authentication-password" type="s">
<default>''</default>
- <_summary>(Deprecated) Proxy authentication password</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Proxy authentication password</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="ignore-hosts" type="as">
<default>[]</default>
- <_summary>(Deprecated) List of hosts to connect to without proxy</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) List of hosts to connect to without proxy</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="secure-host" type="s">
<default>''</default>
- <_summary>(Deprecated) Host name for HTTPS requests</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Host name for HTTPS requests</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="secure-port" type="i">
<default>0</default>
- <_summary>(Deprecated) Port number for HTTPS requests</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Port number for HTTPS requests</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="socks-host" type="s">
<default>''</default>
- <_summary>(Deprecated) Host name for SOCKS requests</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Host name for SOCKS requests</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="socks-port" type="i">
<default>0</default>
- <_summary>(Deprecated) Port number for SOCKS requests</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Port number for SOCKS requests</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
<key name="autoconfig-url" type="s">
<default>''</default>
- <_summary>(Deprecated) Automatic proxy configuration URL</_summary>
- <_description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings
are now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</_description>
+ <summary>(Deprecated) Automatic proxy configuration URL</summary>
+ <description>This key was deprecated in version 3.12 and should no longer be used. Proxy settings are
now integrated into Evolution-Data-Server’s account system. See the ESourceProxy API documentation for
details.</description>
</key>
</schema>
</schemalist>
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index 9e81642a7..bf7423eac 100644
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -1 +1,86 @@
-intltool_setup_po_dir()
+find_program(GETTEXT_XGETTEXT_EXECUTABLE xgettext)
+
+set(DOMAIN ${FULL_PROJECT_NAME})
+set(POT_FILE ${GETTEXT_PACKAGE}.pot)
+
+file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.in TRANSLATED_FILES_1 ENCODING UTF-8 REGEX "^[^#].*")
+file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.source.in TRANSLATED_FILES_2 ENCODING UTF-8 REGEX
"^[^#].*")
+set(TRANSLATED_FILES)
+foreach(TRANSLATED_FILE ${TRANSLATED_FILES_1} ${TRANSLATED_FILES_2})
+ list(APPEND TRANSLATED_FILES "../${TRANSLATED_FILE}")
+endforeach(TRANSLATED_FILE)
+
+# Creates the .pot file containing the translations template
+add_custom_command(
+ COMMENT "Generating translation template"
+ COMMAND ${GETTEXT_XGETTEXT_EXECUTABLE} -o ${POT_FILE}
+ --directory=${CMAKE_SOURCE_DIR}
+ --package-name=${GETTEXT_PACKAGE}
+ --files-from=${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.in
+ --from-code=UTF-8
+ --add-comments
+ --keyword=_
+ --keyword=N_
+ --keyword=C_:1c,2
+ --keyword=NC_:1c,2
+ --keyword=g_dcgettext:2
+ --keyword=g_dngettext:2,3
+ --keyword=g_dpgettext2:2c,3
+ --flag=N_:1:pass-c-format
+ --flag=C_:2:pass-c-format
+ --flag=NC_:2:pass-c-format
+ --flag=g_dngettext:2:pass-c-format
+ --flag=g_strdup_printf:1:c-format
+ --flag=g_string_printf:2:c-format
+ --flag=g_string_append_printf:2:c-format
+ --flag=g_error_new:3:c-format
+ --flag=g_set_error:4:c-format
+ --flag=g_markup_printf_escaped:1:c-format
+ --flag=g_log:3:c-format
+ --flag=g_print:1:c-format
+ --flag=g_printerr:1:c-format
+ --flag=g_printf:1:c-format
+ --flag=g_fprintf:2:c-format
+ --flag=g_sprintf:2:c-format
+ --flag=g_snprintf:3:c-format
+# .source files are not standard so handle them the best we can
+ COMMAND ${GETTEXT_XGETTEXT_EXECUTABLE} -o ${POT_FILE}
+ --directory=${CMAKE_SOURCE_DIR}
+ --package-name=${GETTEXT_PACKAGE}
+ --language=Desktop
+ --join-existing
+ --files-from=${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.source.in
+ --from-code=UTF-8
+ --add-comments
+ --keyword=DisplayName
+ OUTPUT ${POT_FILE}
+ DEPENDS ${TRANSLATED_FILES}
+)
+
+file(GLOB po_files ${CMAKE_CURRENT_SOURCE_DIR}/*.po)
+set(LINGUAS)
+foreach(file IN LISTS po_files)
+ get_filename_component(lang ${file} NAME_WE)
+ list(APPEND LINGUAS ${lang})
+ gettext_process_po_files(${lang} ALL INSTALL_DESTINATION "${LOCALE_INSTALL_DIR}" PO_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/${lang}.po")
+endforeach(file)
+
+string (REPLACE ";" "\n" LINGUAS_CONTENT "${LINGUAS}")
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/LINGUAS" ${LINGUAS_CONTENT})
+add_custom_target(linguas)
+add_custom_command(TARGET linguas
+ COMMENT "Updating LINGUAS"
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/LINGUAS ${CMAKE_CURRENT_SOURCE_DIR}/LINGUAS
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/LINGUAS
+)
+
+add_custom_target(${GETTEXT_PACKAGE}-pot DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${POT_FILE})
+
+add_custom_target(${GETTEXT_PACKAGE}-update-po DEPENDS ${GETTEXT_PACKAGE}-pot)
+foreach(LANG ${LINGUAS})
+ add_custom_command(TARGET ${GETTEXT_PACKAGE}-update-po
+ COMMENT "Update ${LANG}.po"
+ COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} -q --update ${CMAKE_CURRENT_SOURCE_DIR}/${LANG}.po
${CMAKE_CURRENT_BINARY_DIR}/${POT_FILE}
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${POT_FILE}
+ )
+endforeach(LANG)
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644
index 000000000..365c3bc11
--- /dev/null
+++ b/po/LINGUAS
@@ -0,0 +1,88 @@
+am
+ar
+as
+ast
+az
+be
+bg
+bn
+bn_IN
+bs
+ca
+ca@valencia
+cs
+cy
+da
+de
+dz
+el
+en@shaw
+en_AU
+en_CA
+en_GB
+eo
+es
+et
+eu
+fa
+fi
+fr
+fur
+ga
+gl
+gu
+he
+hi
+hr
+hu
+id
+is
+it
+ja
+ka
+kk
+km
+kn
+ko
+ku
+lt
+lv
+mai
+mk
+ml
+mn
+mr
+ms
+nb
+ne
+nl
+nn
+oc
+or
+pa
+pl
+pt
+pt_BR
+ro
+ru
+rw
+si
+sk
+sl
+sq
+sr
+sr@latin
+sv
+ta
+te
+tg
+th
+tr
+ug
+uk
+vi
+wa
+xh
+zh_CN
+zh_HK
+zh_TW
\ No newline at end of file
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 111edaa5d..9d96051ab 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,6 +1,5 @@
# List of source files containing translatable strings.
# Please keep this list in alphabetic order.
-[encoding: UTF-8]
src/addressbook/backends/carddav/e-book-backend-carddav.c
src/addressbook/backends/file/e-book-backend-file.c
src/addressbook/backends/file/e-book-backend-file-migrate-bdb.c
@@ -226,24 +225,6 @@ src/modules/yahoo-backend/module-yahoo-backend.c
src/services/evolution-addressbook-factory/evolution-addressbook-factory.c
src/services/evolution-alarm-notify/e-alarm-notify.c
src/services/evolution-calendar-factory/evolution-calendar-factory.c
-[type: gettext/ini]src/services/evolution-source-registry/builtin/birthdays.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/caldav-stub.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/carddav-stub.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/contacts-stub.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/google-stub.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/ldap-stub.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/local.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/local-stub.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/sendmail.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/system-address-book.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/system-calendar.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/system-memo-list.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/system-proxy.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/system-task-list.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/vfolder.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/weather-stub.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/webcal-stub.source.in
-[type: gettext/ini]src/services/evolution-source-registry/builtin/webdav-notes-stub.source.in
src/services/evolution-source-registry/evolution-source-registry.c
src/services/evolution-user-prompter/evolution-user-prompter.c
src/services/evolution-user-prompter/prompt-user-gtk.c
diff --git a/po/POTFILES.source.in b/po/POTFILES.source.in
new file mode 100644
index 000000000..d0b666d6d
--- /dev/null
+++ b/po/POTFILES.source.in
@@ -0,0 +1,18 @@
+src/services/evolution-source-registry/builtin/birthdays.source.in
+src/services/evolution-source-registry/builtin/caldav-stub.source.in
+src/services/evolution-source-registry/builtin/carddav-stub.source.in
+src/services/evolution-source-registry/builtin/contacts-stub.source.in
+src/services/evolution-source-registry/builtin/google-stub.source.in
+src/services/evolution-source-registry/builtin/ldap-stub.source.in
+src/services/evolution-source-registry/builtin/local.source.in
+src/services/evolution-source-registry/builtin/local-stub.source.in
+src/services/evolution-source-registry/builtin/sendmail.source.in
+src/services/evolution-source-registry/builtin/system-address-book.source.in
+src/services/evolution-source-registry/builtin/system-calendar.source.in
+src/services/evolution-source-registry/builtin/system-memo-list.source.in
+src/services/evolution-source-registry/builtin/system-proxy.source.in
+src/services/evolution-source-registry/builtin/system-task-list.source.in
+src/services/evolution-source-registry/builtin/vfolder.source.in
+src/services/evolution-source-registry/builtin/weather-stub.source.in
+src/services/evolution-source-registry/builtin/webcal-stub.source.in
+src/services/evolution-source-registry/builtin/webdav-notes-stub.source.in
diff --git a/src/services/evolution-source-registry/CMakeLists.txt
b/src/services/evolution-source-registry/CMakeLists.txt
index 487f8aef2..d463c9940 100644
--- a/src/services/evolution-source-registry/CMakeLists.txt
+++ b/src/services/evolution-source-registry/CMakeLists.txt
@@ -48,7 +48,12 @@ endif(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/builtin)
set(builtin_sources)
foreach(_file ${builtin_sources_files})
- intltool_merge(${CMAKE_CURRENT_SOURCE_DIR}/builtin/${_file}.in
${CMAKE_CURRENT_BINARY_DIR}/builtin/${_file} -d -u)
+ i18n_merge_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/builtin/${_file}.in
+ ${CMAKE_CURRENT_BINARY_DIR}/builtin/${_file}
+ ${CMAKE_SOURCE_DIR}/po
+ EXTRA_ARGS "--keyword=DisplayName"
+ )
list(APPEND builtin_sources ${CMAKE_CURRENT_BINARY_DIR}/builtin/${_file})
endforeach(_file)
diff --git a/src/services/evolution-source-registry/builtin/birthdays.source.in
b/src/services/evolution-source-registry/builtin/birthdays.source.in
index 7f90f94f8..b5606f268 100644
--- a/src/services/evolution-source-registry/builtin/birthdays.source.in
+++ b/src/services/evolution-source-registry/builtin/birthdays.source.in
@@ -1,6 +1,6 @@
[Data Source]
-_DisplayName=Birthdays & Anniversaries
+DisplayName=Birthdays & Anniversaries
Enabled=true
Parent=contacts-stub
diff --git a/src/services/evolution-source-registry/builtin/caldav-stub.source.in
b/src/services/evolution-source-registry/builtin/caldav-stub.source.in
index 90081a35a..18e02f609 100644
--- a/src/services/evolution-source-registry/builtin/caldav-stub.source.in
+++ b/src/services/evolution-source-registry/builtin/caldav-stub.source.in
@@ -1,5 +1,5 @@
[Data Source]
-_DisplayName=CalDAV
+DisplayName=CalDAV
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/carddav-stub.source.in
b/src/services/evolution-source-registry/builtin/carddav-stub.source.in
index dc77afa7e..1fc9ac8e2 100644
--- a/src/services/evolution-source-registry/builtin/carddav-stub.source.in
+++ b/src/services/evolution-source-registry/builtin/carddav-stub.source.in
@@ -1,5 +1,5 @@
[Data Source]
-_DisplayName=CardDAV
+DisplayName=CardDAV
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/contacts-stub.source.in
b/src/services/evolution-source-registry/builtin/contacts-stub.source.in
index f2bcb97f3..f5cd2e2ff 100644
--- a/src/services/evolution-source-registry/builtin/contacts-stub.source.in
+++ b/src/services/evolution-source-registry/builtin/contacts-stub.source.in
@@ -1,5 +1,5 @@
[Data Source]
-_DisplayName=Contacts
+DisplayName=Contacts
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/google-stub.source.in
b/src/services/evolution-source-registry/builtin/google-stub.source.in
index 93de6f1e0..8914bb6bc 100644
--- a/src/services/evolution-source-registry/builtin/google-stub.source.in
+++ b/src/services/evolution-source-registry/builtin/google-stub.source.in
@@ -1,5 +1,5 @@
[Data Source]
-_DisplayName=Google
+DisplayName=Google
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/ldap-stub.source.in
b/src/services/evolution-source-registry/builtin/ldap-stub.source.in
index 9c5e324d9..8fbabf222 100644
--- a/src/services/evolution-source-registry/builtin/ldap-stub.source.in
+++ b/src/services/evolution-source-registry/builtin/ldap-stub.source.in
@@ -1,5 +1,5 @@
[Data Source]
-_DisplayName=On LDAP Servers
+DisplayName=On LDAP Servers
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/local-stub.source.in
b/src/services/evolution-source-registry/builtin/local-stub.source.in
index bad02f028..32e05e061 100644
--- a/src/services/evolution-source-registry/builtin/local-stub.source.in
+++ b/src/services/evolution-source-registry/builtin/local-stub.source.in
@@ -2,6 +2,6 @@
# mail store forced the introduction of this "stub" suffix.
[Data Source]
-_DisplayName=On This Computer
+DisplayName=On This Computer
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/local.source.in
b/src/services/evolution-source-registry/builtin/local.source.in
index 1c38384fa..188737a90 100644
--- a/src/services/evolution-source-registry/builtin/local.source.in
+++ b/src/services/evolution-source-registry/builtin/local.source.in
@@ -1,7 +1,7 @@
# Special built-in mail store.
[Data Source]
-_DisplayName=On This Computer
+DisplayName=On This Computer
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/sendmail.source.in
b/src/services/evolution-source-registry/builtin/sendmail.source.in
index ce825cb40..a76b5f8c6 100644
--- a/src/services/evolution-source-registry/builtin/sendmail.source.in
+++ b/src/services/evolution-source-registry/builtin/sendmail.source.in
@@ -1,6 +1,6 @@
[Data Source]
-_DisplayName=Sendmail
+DisplayName=Sendmail
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/system-address-book.source.in
b/src/services/evolution-source-registry/builtin/system-address-book.source.in
index 494f11bbf..38029b200 100644
--- a/src/services/evolution-source-registry/builtin/system-address-book.source.in
+++ b/src/services/evolution-source-registry/builtin/system-address-book.source.in
@@ -1,6 +1,6 @@
[Data Source]
-_DisplayName=Personal
+DisplayName=Personal
Enabled=true
Parent=local-stub
diff --git a/src/services/evolution-source-registry/builtin/system-calendar.source.in
b/src/services/evolution-source-registry/builtin/system-calendar.source.in
index ffbe161a8..8da0c66fa 100644
--- a/src/services/evolution-source-registry/builtin/system-calendar.source.in
+++ b/src/services/evolution-source-registry/builtin/system-calendar.source.in
@@ -1,6 +1,6 @@
[Data Source]
-_DisplayName=Personal
+DisplayName=Personal
Enabled=true
Parent=local-stub
diff --git a/src/services/evolution-source-registry/builtin/system-memo-list.source.in
b/src/services/evolution-source-registry/builtin/system-memo-list.source.in
index f53f0f030..091513f39 100644
--- a/src/services/evolution-source-registry/builtin/system-memo-list.source.in
+++ b/src/services/evolution-source-registry/builtin/system-memo-list.source.in
@@ -1,6 +1,6 @@
[Data Source]
-_DisplayName=Personal
+DisplayName=Personal
Enabled=true
Parent=local-stub
diff --git a/src/services/evolution-source-registry/builtin/system-proxy.source.in
b/src/services/evolution-source-registry/builtin/system-proxy.source.in
index a7a351f53..3ce3679b5 100644
--- a/src/services/evolution-source-registry/builtin/system-proxy.source.in
+++ b/src/services/evolution-source-registry/builtin/system-proxy.source.in
@@ -1,6 +1,6 @@
[Data Source]
-_DisplayName=Default Proxy Settings
+DisplayName=Default Proxy Settings
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/system-task-list.source.in
b/src/services/evolution-source-registry/builtin/system-task-list.source.in
index 22f40bc4b..efd39f260 100644
--- a/src/services/evolution-source-registry/builtin/system-task-list.source.in
+++ b/src/services/evolution-source-registry/builtin/system-task-list.source.in
@@ -1,6 +1,6 @@
[Data Source]
-_DisplayName=Personal
+DisplayName=Personal
Enabled=true
Parent=local-stub
diff --git a/src/services/evolution-source-registry/builtin/vfolder.source.in
b/src/services/evolution-source-registry/builtin/vfolder.source.in
index 98a9df4b1..ee9a2f401 100644
--- a/src/services/evolution-source-registry/builtin/vfolder.source.in
+++ b/src/services/evolution-source-registry/builtin/vfolder.source.in
@@ -1,7 +1,7 @@
# Special built-in mail store.
[Data Source]
-_DisplayName=Search Folders
+DisplayName=Search Folders
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/weather-stub.source.in
b/src/services/evolution-source-registry/builtin/weather-stub.source.in
index e1a549d36..76b9385fc 100644
--- a/src/services/evolution-source-registry/builtin/weather-stub.source.in
+++ b/src/services/evolution-source-registry/builtin/weather-stub.source.in
@@ -1,5 +1,5 @@
[Data Source]
-_DisplayName=Weather
+DisplayName=Weather
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/webcal-stub.source.in
b/src/services/evolution-source-registry/builtin/webcal-stub.source.in
index 178cec123..dd5f44687 100644
--- a/src/services/evolution-source-registry/builtin/webcal-stub.source.in
+++ b/src/services/evolution-source-registry/builtin/webcal-stub.source.in
@@ -1,5 +1,5 @@
[Data Source]
-_DisplayName=On The Web
+DisplayName=On The Web
Enabled=true
Parent=
diff --git a/src/services/evolution-source-registry/builtin/webdav-notes-stub.source.in
b/src/services/evolution-source-registry/builtin/webdav-notes-stub.source.in
index 01a3b0135..789060655 100644
--- a/src/services/evolution-source-registry/builtin/webdav-notes-stub.source.in
+++ b/src/services/evolution-source-registry/builtin/webdav-notes-stub.source.in
@@ -1,5 +1,5 @@
[Data Source]
-_DisplayName=WebDAV Notes
+DisplayName=WebDAV Notes
Enabled=true
Parent=
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]