mirror of
https://github.com/LHY0125/PathEditor.git
synced 2026-05-10 02:09:46 +08:00
feat(i18n): 添加多语言支持功能
- 新增国际化系统,支持中英文切换 - 添加语言选择对话框和语言切换按钮回调 - 扩展配置系统以支持语言设置存储 - 创建语言文件目录结构和占位文件 - 更新主窗口支持UI文本动态刷新
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# nls.m4
|
||||
# serial 7 (gettext-1.0)
|
||||
dnl Copyright (C) 1995-2026 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
dnl This file is offered as-is, without any warranty.
|
||||
dnl
|
||||
dnl This file can be used in projects which are not available under
|
||||
dnl the GNU General Public License or the GNU Lesser General Public
|
||||
dnl License but which still want to provide support for the GNU gettext
|
||||
dnl functionality.
|
||||
dnl Please note that the actual code of the GNU gettext library is covered
|
||||
dnl by the GNU Lesser General Public License, and the rest of the GNU
|
||||
dnl gettext package is covered by the GNU General Public License.
|
||||
dnl They are *not* in the public domain.
|
||||
|
||||
dnl From Ulrich Drepper, Bruno Haible.
|
||||
|
||||
AC_PREREQ([2.50])
|
||||
|
||||
AC_DEFUN([AM_NLS],
|
||||
[
|
||||
AC_MSG_CHECKING([whether NLS is requested])
|
||||
dnl Default is enabled NLS
|
||||
AC_ARG_ENABLE([nls],
|
||||
[ --disable-nls do not use Native Language Support],
|
||||
USE_NLS=$enableval, USE_NLS=yes)
|
||||
AC_MSG_RESULT([$USE_NLS])
|
||||
AC_SUBST([USE_NLS])
|
||||
])
|
||||
@@ -0,0 +1,148 @@
|
||||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title>AUTOPOINT</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 align="center">AUTOPOINT</h1>
|
||||
|
||||
<a href="#NAME">NAME</a><br>
|
||||
<a href="#SYNOPSIS">SYNOPSIS</a><br>
|
||||
<a href="#DESCRIPTION">DESCRIPTION</a><br>
|
||||
<a href="#OPTIONS">OPTIONS</a><br>
|
||||
<a href="#AUTHOR">AUTHOR</a><br>
|
||||
<a href="#REPORTING BUGS">REPORTING BUGS</a><br>
|
||||
<a href="#COPYRIGHT">COPYRIGHT</a><br>
|
||||
<a href="#SEE ALSO">SEE ALSO</a><br>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<h2>NAME
|
||||
<a name="NAME"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">autopoint
|
||||
- copies standard gettext infrastructure</p>
|
||||
|
||||
<h2>SYNOPSIS
|
||||
<a name="SYNOPSIS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>autopoint</b>
|
||||
[<i>OPTION</i>]...</p>
|
||||
|
||||
<h2>DESCRIPTION
|
||||
<a name="DESCRIPTION"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Copies standard
|
||||
gettext infrastructure files into a source package.</p>
|
||||
|
||||
<h2>OPTIONS
|
||||
<a name="OPTIONS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="9%">
|
||||
|
||||
|
||||
<p style="margin-top: 1em"><b>--help</b></p></td>
|
||||
<td width="2%"></td>
|
||||
<td width="36%">
|
||||
|
||||
|
||||
<p style="margin-top: 1em">print this help and exit</p></td>
|
||||
<td width="42%">
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
|
||||
<p style="margin-left:11%;"><b>--version</b></p>
|
||||
|
||||
<p style="margin-left:22%;">print version information and
|
||||
exit</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-f</b>,
|
||||
<b>--force</b></p>
|
||||
|
||||
<p style="margin-left:22%;">force overwriting of files that
|
||||
already exist</p>
|
||||
|
||||
<p style="margin-left:11%;"><b>-n</b>,
|
||||
<b>--dry-run</b></p>
|
||||
|
||||
<p style="margin-left:22%;">print modifications but
|
||||
don’t perform them</p>
|
||||
|
||||
<h2>AUTHOR
|
||||
<a name="AUTHOR"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Written by
|
||||
Bruno Haible.</p>
|
||||
|
||||
<h2>REPORTING BUGS
|
||||
<a name="REPORTING BUGS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Report bugs in
|
||||
the bug tracker at
|
||||
<https://savannah.gnu.org/projects/gettext> or by
|
||||
email to <bug-gettext@gnu.org>.</p>
|
||||
|
||||
<h2>COPYRIGHT
|
||||
<a name="COPYRIGHT"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Copyright
|
||||
© 2002-2026 Free Software Foundation, Inc.
|
||||
License GPLv3+: GNU GPL version 3 or later
|
||||
<https://gnu.org/licenses/gpl.html> <br>
|
||||
This is free software: you are free to change and
|
||||
redistribute it. There is NO WARRANTY, to the extent
|
||||
permitted by law.</p>
|
||||
|
||||
<h2>SEE ALSO
|
||||
<a name="SEE ALSO"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The full
|
||||
documentation for <b>autopoint</b> is maintained as a
|
||||
Texinfo manual. If the <b>info</b> and <b>autopoint</b>
|
||||
programs are properly installed at your site, the
|
||||
command</p>
|
||||
|
||||
<p style="margin-left:22%; margin-top: 1em"><b>info
|
||||
autopoint</b></p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">should give you
|
||||
access to the complete manual.</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,158 @@
|
||||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title>BIND_TEXTDOMAIN_CODESET</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 align="center">BIND_TEXTDOMAIN_CODESET</h1>
|
||||
|
||||
<a href="#NAME">NAME</a><br>
|
||||
<a href="#SYNOPSIS">SYNOPSIS</a><br>
|
||||
<a href="#DESCRIPTION">DESCRIPTION</a><br>
|
||||
<a href="#RETURN VALUE">RETURN VALUE</a><br>
|
||||
<a href="#ERRORS">ERRORS</a><br>
|
||||
<a href="#BUGS">BUGS</a><br>
|
||||
<a href="#SEE ALSO">SEE ALSO</a><br>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<h2>NAME
|
||||
<a name="NAME"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">bind_textdomain_codeset
|
||||
- set encoding of message translations</p>
|
||||
|
||||
<h2>SYNOPSIS
|
||||
<a name="SYNOPSIS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>#include
|
||||
<libintl.h></b></p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>char *
|
||||
bind_textdomain_codeset (const char *</b>
|
||||
<i>domainname</i><b>, <br>
|
||||
const char *</b> <i>codeset</i><b>);</b></p>
|
||||
|
||||
<h2>DESCRIPTION
|
||||
<a name="DESCRIPTION"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The
|
||||
<b>bind_textdomain_codeset</b> function sets the output
|
||||
codeset for message catalogs for domain
|
||||
<i>domainname</i>.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">A message
|
||||
domain is a set of translatable <i>msgid</i> messages.
|
||||
Usually, every software package has its own message
|
||||
domain.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">By default, the
|
||||
<b>gettext</b> family of functions returns translated
|
||||
messages in the locale’s character encoding, which can
|
||||
be retrieved as <b>nl_langinfo (CODESET)</b>. The need for
|
||||
calling <b>bind_textdomain_codeset</b> arises for programs
|
||||
which store strings in a locale independent way (e.g. UTF-8)
|
||||
and want to avoid an extra character set conversion on the
|
||||
returned translated messages.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><i>domainname</i>
|
||||
must be a non-empty string.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If
|
||||
<i>codeset</i> is not NULL, it must be a valid encoding name
|
||||
which can be used for the <b>iconv_open</b> function. The
|
||||
<b>bind_textdomain_codeset</b> function sets the output
|
||||
codeset for message catalogs belonging to domain
|
||||
<i>domainname</i> to <i>codeset</i>. The function makes
|
||||
copies of the argument strings as needed.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If
|
||||
<i>codeset</i> is NULL, the function returns the previously
|
||||
set codeset for domain <i>domainname</i>. The default is
|
||||
NULL, denoting the locale’s character encoding.</p>
|
||||
|
||||
<h2>RETURN VALUE
|
||||
<a name="RETURN VALUE"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If successful,
|
||||
the <b>bind_textdomain_codeset</b> function returns the
|
||||
current codeset for domain <i>domainname</i>, after possibly
|
||||
changing it. The resulting string is valid until the next
|
||||
<b>bind_textdomain_codeset</b> call for the same
|
||||
<i>domainname</i> and must not be modified or freed. If a
|
||||
memory allocation failure occurs, it sets <b>errno</b> to
|
||||
<b>ENOMEM</b> and returns NULL. If no codeset has been set
|
||||
for domain <i>domainname</i>, it returns NULL.</p>
|
||||
|
||||
<h2>ERRORS
|
||||
<a name="ERRORS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The following
|
||||
error can occur, among others:</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="9%">
|
||||
|
||||
|
||||
<p><b>ENOMEM</b></p></td>
|
||||
<td width="2%"></td>
|
||||
<td width="43%">
|
||||
|
||||
|
||||
<p>Not enough memory available.</p></td>
|
||||
<td width="35%">
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<h2>BUGS
|
||||
<a name="BUGS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The return type
|
||||
ought to be <b>const char *</b>, but is <b>char *</b> to
|
||||
avoid warnings in C code predating ANSI C.</p>
|
||||
|
||||
<h2>SEE ALSO
|
||||
<a name="SEE ALSO"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>gettext</b>(3),
|
||||
<b>dgettext</b>(3), <b>dcgettext</b>(3), <b>ngettext</b>(3),
|
||||
<b>dngettext</b>(3), <b>dcngettext</b>(3),
|
||||
<b>textdomain</b>(3), <b>nl_langinfo</b>(3),
|
||||
<b>iconv_open</b>(3)</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,154 @@
|
||||
<!-- Creator : groff version 1.22.3 -->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<meta name="Content-Style" content="text/css">
|
||||
<style type="text/css">
|
||||
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
||||
h1 { text-align: center }
|
||||
</style>
|
||||
<title>BINDTEXTDOMAIN</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 align="center">BINDTEXTDOMAIN</h1>
|
||||
|
||||
<a href="#NAME">NAME</a><br>
|
||||
<a href="#SYNOPSIS">SYNOPSIS</a><br>
|
||||
<a href="#DESCRIPTION">DESCRIPTION</a><br>
|
||||
<a href="#RETURN VALUE">RETURN VALUE</a><br>
|
||||
<a href="#ERRORS">ERRORS</a><br>
|
||||
<a href="#BUGS">BUGS</a><br>
|
||||
<a href="#SEE ALSO">SEE ALSO</a><br>
|
||||
|
||||
<hr>
|
||||
|
||||
|
||||
<h2>NAME
|
||||
<a name="NAME"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">bindtextdomain
|
||||
- set directory containing message catalogs</p>
|
||||
|
||||
<h2>SYNOPSIS
|
||||
<a name="SYNOPSIS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>#include
|
||||
<libintl.h></b></p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>char *
|
||||
bindtextdomain (const char *</b> <i>domainname</i><b>, const
|
||||
char *</b> <i>dirname</i><b>);</b></p>
|
||||
|
||||
<h2>DESCRIPTION
|
||||
<a name="DESCRIPTION"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The
|
||||
<b>bindtextdomain</b> function sets the base directory of
|
||||
the hierarchy containing message catalogs for a given
|
||||
message domain.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">A message
|
||||
domain is a set of translatable <i>msgid</i> messages.
|
||||
Usually, every software package has its own message domain.
|
||||
The need for calling <b>bindtextdomain</b> arises because
|
||||
packages are not always installed with the same prefix as
|
||||
the <libintl.h> header and the libc/libintl
|
||||
libraries.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Message
|
||||
catalogs will be expected at the pathnames
|
||||
<i>dirname</i>/<i>locale</i>/<i>category</i>/<i>domainname</i>.mo,
|
||||
where <i>locale</i> is a locale name and <i>category</i> is
|
||||
a locale facet such as <b>LC_MESSAGES</b>.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><i>domainname</i>
|
||||
must be a non-empty string.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If
|
||||
<i>dirname</i> is not NULL, the base directory for message
|
||||
catalogs belonging to domain <i>domainname</i> is set to
|
||||
<i>dirname</i>. The function makes copies of the argument
|
||||
strings as needed. If the program wishes to call the
|
||||
<b>chdir</b> function, it is important that <i>dirname</i>
|
||||
be an absolute pathname; otherwise it cannot be guaranteed
|
||||
that the message catalogs will be found.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If
|
||||
<i>dirname</i> is NULL, the function returns the previously
|
||||
set base directory for domain <i>domainname</i>.</p>
|
||||
|
||||
<h2>RETURN VALUE
|
||||
<a name="RETURN VALUE"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">If successful,
|
||||
the <b>bindtextdomain</b> function returns the current base
|
||||
directory for domain <i>domainname</i>, after possibly
|
||||
changing it. The resulting string is valid until the next
|
||||
<b>bindtextdomain</b> call for the same <i>domainname</i>
|
||||
and must not be modified or freed. If a memory allocation
|
||||
failure occurs, it sets <b>errno</b> to <b>ENOMEM</b> and
|
||||
returns NULL.</p>
|
||||
|
||||
<h2>ERRORS
|
||||
<a name="ERRORS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The following
|
||||
error can occur, among others:</p>
|
||||
|
||||
<table width="100%" border="0" rules="none" frame="void"
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="9%">
|
||||
|
||||
|
||||
<p><b>ENOMEM</b></p></td>
|
||||
<td width="2%"></td>
|
||||
<td width="43%">
|
||||
|
||||
|
||||
<p>Not enough memory available.</p></td>
|
||||
<td width="35%">
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<h2>BUGS
|
||||
<a name="BUGS"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">The return type
|
||||
ought to be <b>const char *</b>, but is <b>char *</b> to
|
||||
avoid warnings in C code predating ANSI C.</p>
|
||||
|
||||
<h2>SEE ALSO
|
||||
<a name="SEE ALSO"></a>
|
||||
</h2>
|
||||
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>gettext</b>(3),
|
||||
<b>dgettext</b>(3), <b>dcgettext</b>(3), <b>ngettext</b>(3),
|
||||
<b>dngettext</b>(3), <b>dcngettext</b>(3),
|
||||
<b>textdomain</b>(3), <b>realpath</b>(3)</p>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<HTML>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<I>GNU.Gettext Namespace</I><P>
|
||||
|
||||
<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GettextResourceManager</A><BR>
|
||||
<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GettextResourceSet</A><BR>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,305 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>GNU.Gettext.GettextResourceManager Class</TITLE>
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<H3>GNU.Gettext.GettextResourceManager Class</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public class GettextResourceManager: System.Resources.ResourceManager</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Base Types</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
System.Resources.ResourceManager<BR>
|
||||
GettextResourceManager<P>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Library</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
GNU.Gettext
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Each instance of this class can be used to lookup translations for a
|
||||
given resource name. For each <CODE>CultureInfo</CODE>, it performs the lookup
|
||||
in several assemblies, from most specific over territory-neutral to
|
||||
language-neutral.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Members</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P>
|
||||
|
||||
GettextResourceManager Constructors<P>
|
||||
|
||||
<A HREF="#GettextResourceManager%28System.String%29%20Constructor" TARGET="contents">GettextResourceManager(System.String) Constructor</A><BR>
|
||||
<A HREF="#GettextResourceManager%28System.String%2C%20System.Reflection.Assembly%29%20Constructor" TARGET="contents">GettextResourceManager(System.String, System.Reflection.Assembly) Constructor</A><BR>
|
||||
<P>
|
||||
|
||||
GettextResourceManager Methods<P>
|
||||
|
||||
<A HREF="#GettextResourceManager.GetPluralString%28System.String%2C%20System.String%2C%20long%2C%20System.Globalization.CultureInfo%29%20Method" TARGET="contents">GettextResourceManager.GetPluralString(System.String, System.String, long, System.Globalization.CultureInfo) Method</A><BR>
|
||||
<A HREF="#GettextResourceManager.GetPluralString%28System.String%2C%20System.String%2C%20long%29%20Method" TARGET="contents">GettextResourceManager.GetPluralString(System.String, System.String, long) Method</A><BR>
|
||||
<A HREF="#GettextResourceManager.GetString%28System.String%2C%20System.Globalization.CultureInfo%29%20Method" TARGET="contents">GettextResourceManager.GetString(System.String, System.Globalization.CultureInfo) Method</A><BR>
|
||||
<A HREF="#GettextResourceManager.GetString%28System.String%29%20Method" TARGET="contents">GettextResourceManager.GetString(System.String) Method</A><BR>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceManager%28System.String%29%20Constructor"><H3>GettextResourceManager(System.String) Constructor</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public GettextResourceManager(System.String baseName);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Constructor.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Parameters</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT>baseName</DT>
|
||||
<DD>the resource name, also the assembly base
|
||||
name</DD>
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceManager%28System.String%2C%20System.Reflection.Assembly%29%20Constructor"><H3>GettextResourceManager(System.String, System.Reflection.Assembly) Constructor</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public GettextResourceManager(System.String baseName, System.Reflection.Assembly assembly);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Constructor.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Parameters</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT>baseName</DT>
|
||||
<DD>the resource name, also the assembly base
|
||||
name</DD>
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceManager.GetPluralString%28System.String%2C%20System.String%2C%20long%2C%20System.Globalization.CultureInfo%29%20Method"><H3>GettextResourceManager.GetPluralString(System.String, System.String, long, System.Globalization.CultureInfo) Method</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public virtual System.String GetPluralString(System.String msgid, System.String msgidPlural, long n, System.Globalization.CultureInfo culture);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Returns the translation of <I>msgid</I> and
|
||||
<I>msgidPlural</I> in a given culture, choosing the right
|
||||
plural form depending on the number <I>n</I>.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Parameters</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT>msgid</DT>
|
||||
<DD>the key string to be translated, an ASCII
|
||||
string</DD>
|
||||
<DT>msgidPlural</DT>
|
||||
<DD>the English plural of <I>msgid</I>,
|
||||
an ASCII string</DD>
|
||||
<DT>n</DT>
|
||||
<DD>the number, should be >= 0</DD>
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Return Value</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
the translation, or <I>msgid</I> or
|
||||
<I>msgidPlural</I> if none is found
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceManager.GetPluralString%28System.String%2C%20System.String%2C%20long%29%20Method"><H3>GettextResourceManager.GetPluralString(System.String, System.String, long) Method</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public virtual System.String GetPluralString(System.String msgid, System.String msgidPlural, long n);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Returns the translation of <I>msgid</I> and
|
||||
<I>msgidPlural</I> in the current culture, choosing the
|
||||
right plural form depending on the number <I>n</I>.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Parameters</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT>msgid</DT>
|
||||
<DD>the key string to be translated, an ASCII
|
||||
string</DD>
|
||||
<DT>msgidPlural</DT>
|
||||
<DD>the English plural of <I>msgid</I>,
|
||||
an ASCII string</DD>
|
||||
<DT>n</DT>
|
||||
<DD>the number, should be >= 0</DD>
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Return Value</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
the translation, or <I>msgid</I> or
|
||||
<I>msgidPlural</I> if none is found
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceManager.GetString%28System.String%2C%20System.Globalization.CultureInfo%29%20Method"><H3>GettextResourceManager.GetString(System.String, System.Globalization.CultureInfo) Method</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public override System.String GetString(System.String msgid, System.Globalization.CultureInfo culture);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Returns the translation of <I>msgid</I> in a given culture.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Parameters</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT>msgid</DT>
|
||||
<DD>the key string to be translated, an ASCII
|
||||
string</DD>
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Return Value</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
the translation of <I>msgid</I>, or
|
||||
<I>msgid</I> if none is found
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceManager.GetString%28System.String%29%20Method"><H3>GettextResourceManager.GetString(System.String) Method</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public override System.String GetString(System.String msgid);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Returns the translation of <I>msgid</I> in the current
|
||||
culture.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Parameters</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT>msgid</DT>
|
||||
<DD>the key string to be translated, an ASCII
|
||||
string</DD>
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Return Value</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
the translation of <I>msgid</I>, or
|
||||
<I>msgid</I> if none is found
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceManager.html" TARGET="contents">GNU.Gettext.GettextResourceManager Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,356 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>GNU.Gettext.GettextResourceSet Class</TITLE>
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<H3>GNU.Gettext.GettextResourceSet Class</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public class GettextResourceSet: System.Resources.ResourceSet</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Base Types</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
System.Resources.ResourceSet<BR>
|
||||
GettextResourceSet<P>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Library</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
GNU.Gettext
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Each instance of this class encapsulates a single PO file.
|
||||
<P>
|
||||
|
||||
|
||||
This API of this class is not meant to be used directly; use
|
||||
<CODE>GettextResourceManager</CODE> instead.
|
||||
<P>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Members</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P>
|
||||
|
||||
GettextResourceSet Constructors<P>
|
||||
|
||||
<A HREF="#GettextResourceSet%28%29%20Constructor" TARGET="contents">GettextResourceSet() Constructor</A><BR>
|
||||
<A HREF="#GettextResourceSet%28System.Resources.IResourceReader%29%20Constructor" TARGET="contents">GettextResourceSet(System.Resources.IResourceReader) Constructor</A><BR>
|
||||
<A HREF="#GettextResourceSet%28System.IO.Stream%29%20Constructor" TARGET="contents">GettextResourceSet(System.IO.Stream) Constructor</A><BR>
|
||||
<A HREF="#GettextResourceSet%28System.String%29%20Constructor" TARGET="contents">GettextResourceSet(System.String) Constructor</A><BR>
|
||||
<P>
|
||||
|
||||
GettextResourceSet Methods<P>
|
||||
|
||||
<A HREF="#GettextResourceSet.GetPluralString%20Method" TARGET="contents">GettextResourceSet.GetPluralString Method</A><BR>
|
||||
<A HREF="#GettextResourceSet.GetString%28System.String%29%20Method" TARGET="contents">GettextResourceSet.GetString(System.String) Method</A><BR>
|
||||
<A HREF="#GettextResourceSet.GetString%28System.String%2C%20bool%29%20Method" TARGET="contents">GettextResourceSet.GetString(System.String, bool) Method</A><BR>
|
||||
<A HREF="#GettextResourceSet.PluralEval%20Method" TARGET="contents">GettextResourceSet.PluralEval Method</A><BR>
|
||||
<P>
|
||||
|
||||
GettextResourceSet Properties<P>
|
||||
|
||||
<A HREF="#GettextResourceSet.Keys%20Property" TARGET="contents">GettextResourceSet.Keys Property</A><BR>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceSet%28%29%20Constructor"><H3>GettextResourceSet() Constructor</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>protected GettextResourceSet();</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Creates a new message catalog. When using this constructor, you
|
||||
must override the <CODE>ReadResources</CODE> method, in order to initialize
|
||||
the <CODE>Table</CODE> property. The message catalog will support plural
|
||||
forms only if the <CODE>ReadResources</CODE> method installs values of type
|
||||
<CODE>String[]</CODE> and if the <CODE>PluralEval</CODE> method is overridden.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceSet%28System.Resources.IResourceReader%29%20Constructor"><H3>GettextResourceSet(System.Resources.IResourceReader) Constructor</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public GettextResourceSet(System.Resources.IResourceReader reader);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Creates a new message catalog, by reading the string/value pairs from
|
||||
the given <I>reader</I>. The message catalog will support
|
||||
plural forms only if the reader can produce values of type
|
||||
<CODE>String[]</CODE> and if the <CODE>PluralEval</CODE> method is overridden.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceSet%28System.IO.Stream%29%20Constructor"><H3>GettextResourceSet(System.IO.Stream) Constructor</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public GettextResourceSet(System.IO.Stream stream);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Creates a new message catalog, by reading the string/value pairs from
|
||||
the given <I>stream</I>, which should have the format of
|
||||
a <CODE>.resources</CODE> file. The message catalog will not support plural
|
||||
forms.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceSet%28System.String%29%20Constructor"><H3>GettextResourceSet(System.String) Constructor</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public GettextResourceSet(System.String fileName);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Creates a new message catalog, by reading the string/value pairs from
|
||||
the file with the given <I>fileName</I>. The file should
|
||||
be in the format of a <CODE>.resources</CODE> file. The message catalog will
|
||||
not support plural forms.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceSet.GetPluralString%20Method"><H3>GettextResourceSet.GetPluralString Method</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public virtual System.String GetPluralString(System.String msgid, System.String msgidPlural, long n);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Returns the translation of <I>msgid</I> and
|
||||
<I>msgidPlural</I>, choosing the right plural form
|
||||
depending on the number <I>n</I>.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Parameters</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT>msgid</DT>
|
||||
<DD>the key string to be translated, an ASCII
|
||||
string</DD>
|
||||
<DT>msgidPlural</DT>
|
||||
<DD>the English plural of <I>msgid</I>,
|
||||
an ASCII string</DD>
|
||||
<DT>n</DT>
|
||||
<DD>the number, should be >= 0</DD>
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Return Value</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
the translation, or <CODE>null</CODE> if none is found
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceSet.GetString%28System.String%29%20Method"><H3>GettextResourceSet.GetString(System.String) Method</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public override System.String GetString(System.String msgid);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Returns the translation of <I>msgid</I>.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Parameters</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT>msgid</DT>
|
||||
<DD>the key string to be translated, an ASCII
|
||||
string</DD>
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Return Value</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
the translation of <I>msgid</I>, or <CODE>null</CODE> if
|
||||
none is found
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceSet.GetString%28System.String%2C%20bool%29%20Method"><H3>GettextResourceSet.GetString(System.String, bool) Method</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public override System.String GetString(System.String msgid, bool ignoreCase);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Returns the translation of <I>msgid</I>, with possibly
|
||||
case-insensitive lookup.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Parameters</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT>msgid</DT>
|
||||
<DD>the key string to be translated, an ASCII
|
||||
string</DD>
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Return Value</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
the translation of <I>msgid</I>, or <CODE>null</CODE> if
|
||||
none is found
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceSet.PluralEval%20Method"><H3>GettextResourceSet.PluralEval Method</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>protected virtual long PluralEval(long n);</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Returns the index of the plural form to be chosen for a given number.
|
||||
The default implementation is the Germanic plural formula:
|
||||
zero for <I>n</I> == 1, one for <I>n</I> != 1.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<HR>
|
||||
|
||||
<A NAME="GettextResourceSet.Keys%20Property"><H3>GettextResourceSet.Keys Property</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<TABLE COLS="1" ROWS="1" WIDTH="100%">
|
||||
<TR><TD BGCOLOR="#C0C0C0"><PRE>public virtual System.Collections.ICollection Keys { get; }</PRE></TD></TR>
|
||||
</TABLE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>Summary</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
|
||||
Returns the keys of this resource set, i.e. the strings for which
|
||||
<CODE>GetObject()</CODE> can return a non-null value.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H4>See Also</H4>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext_GettextResourceSet.html" TARGET="contents">GNU.Gettext.GettextResourceSet Class</A>, <A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,11 @@
|
||||
<HTML>
|
||||
<HEAD><TITLE>-</TITLE></HEAD>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<H1>-</H1>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext Namespace</A><BR>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,10 @@
|
||||
<HTML>
|
||||
<HEAD><TITLE>-</TITLE></HEAD>
|
||||
<FRAMESET COLS="150,*">
|
||||
<FRAMESET ROWS="50%,50%">
|
||||
<FRAME SRC="namespaces.html" NAME="namespaces">
|
||||
<FRAME SRC="GNU_Gettext.html" NAME="members">
|
||||
</FRAMESET>
|
||||
<FRAME SRC="begin.html" NAME="contents">
|
||||
</FRAMESET>
|
||||
</HTML>
|
||||
@@ -0,0 +1,6 @@
|
||||
<HTML>
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
<I>Namespaces</I><P>
|
||||
<A HREF="GNU_Gettext.html" TARGET="members">GNU.Gettext</A><BR>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,117 @@
|
||||
This directory contains simple examples of the use of GNU gettext.
|
||||
Each example is a simple "hello world" program with a very small message
|
||||
catalog, written in a particular programming language for a particular
|
||||
environment.
|
||||
|
||||
Example Language GUI Environment
|
||||
|
||||
hello-c C
|
||||
hello-c-gnome2 C GNOME 2 (obsolete)
|
||||
hello-c-gnome3 C GNOME 3.10 or later
|
||||
hello-c-http C web browser
|
||||
hello-c++ C++
|
||||
hello-c++20 C++ 20
|
||||
hello-c++-qt C++ Qt
|
||||
hello-c++-kde C++ KDE
|
||||
hello-c++-gnome2 C++ GNOME 2 (obsolete)
|
||||
hello-c++-gnome3 C++ GNOME 3.10 or later
|
||||
hello-c++-wxwidgets C++ wxWidgets
|
||||
hello-objc ObjectiveC
|
||||
hello-objc-gnustep ObjectiveC GNUstep
|
||||
hello-objc-gnome2 ObjectiveC GNOME 2 (obsolete)
|
||||
hello-python Python
|
||||
hello-java Java
|
||||
hello-java-awt Java AWT
|
||||
hello-java-swing Java Swing
|
||||
hello-java-qtjambi Java Qt
|
||||
hello-csharp C#
|
||||
hello-csharp-forms C# Forms
|
||||
hello-guile Scheme
|
||||
hello-clisp Lisp
|
||||
hello-librep librep
|
||||
hello-rust Rust
|
||||
hello-go Go
|
||||
hello-go-http Go web browser
|
||||
hello-ruby Ruby
|
||||
hello-sh Shell
|
||||
hello-gawk awk
|
||||
hello-pascal Pascal
|
||||
hello-modula2 Modula-2
|
||||
hello-d D
|
||||
hello-ocaml OCaml
|
||||
hello-smalltalk Smalltalk
|
||||
hello-tcl Tcl
|
||||
hello-tcl-tk Tcl Tk
|
||||
hello-perl Perl
|
||||
hello-php PHP
|
||||
hello-ycp YCP libyui
|
||||
|
||||
Before building an example, you need to
|
||||
1. Build and install the GNU gettext package, as described in the INSTALL
|
||||
file.
|
||||
2. cd to the example and do
|
||||
./autogen.sh
|
||||
3. Then you can build the example as usual:
|
||||
./configure --prefix=/some/prefix
|
||||
make
|
||||
make install
|
||||
and see it work by executing
|
||||
/some/prefix/bin/hello
|
||||
|
||||
The po/ directories of the examples use different binary catalog formats and
|
||||
Makefile types:
|
||||
|
||||
Example Binary catalog format Makefile type
|
||||
|
||||
hello-c .gmo Makefile.in.in
|
||||
hello-c-gnome2 .gmo Makefile.in.in
|
||||
hello-c-gnome3 .gmo Makefile.in.in
|
||||
hello-c-http .gmo Makefile.in.in
|
||||
hello-c++ .gmo Makefile.in.in
|
||||
hello-c++20 .gmo Makefile.in.in
|
||||
hello-c++-kde .gmo Makefile.in.in
|
||||
hello-c++-gnome2 .gmo Makefile.in.in
|
||||
hello-c++-gnome3 .gmo Makefile.in.in
|
||||
hello-objc .gmo Makefile.in.in
|
||||
hello-objc-gnome2 .gmo Makefile.in.in
|
||||
hello-c++-wxwidgets .gmo Makefile.am
|
||||
hello-python .gmo Makefile.am
|
||||
hello-guile .gmo Makefile.am
|
||||
hello-clisp .gmo Makefile.am
|
||||
hello-librep .gmo Makefile.am
|
||||
hello-rust .gmo Makefile.am
|
||||
hello-go .gmo Makefile.am
|
||||
hello-go-http .gmo Makefile.am
|
||||
hello-ruby .gmo Makefile.am
|
||||
hello-sh .gmo Makefile.am
|
||||
hello-gawk .gmo Makefile.am
|
||||
hello-pascal .gmo Makefile.am
|
||||
hello-modula2 .gmo Makefile.am
|
||||
hello-d .gmo Makefile.am
|
||||
hello-ocaml .gmo Makefile.am
|
||||
hello-smalltalk .gmo Makefile.am
|
||||
hello-perl .gmo Makefile.am
|
||||
hello-php .gmo Makefile.am
|
||||
hello-ycp .gmo Makefile.am
|
||||
hello-java .properties Makefile.am
|
||||
hello-java-awt .properties Makefile.am
|
||||
hello-java-swing .properties Makefile.am
|
||||
hello-java-qtjambi .properties Makefile.am
|
||||
hello-csharp .resources.dll Makefile.am
|
||||
hello-csharp-forms .resources.dll Makefile.am
|
||||
hello-tcl .msg Makefile.am
|
||||
hello-tcl-tk .msg Makefile.am
|
||||
hello-c++-qt .qm Makefile.am
|
||||
hello-objc-gnustep .strings GNUmakefile
|
||||
|
||||
The Makefiles in the po/ directories make use of the variable assignment
|
||||
operator != standardized by POSIX:2024
|
||||
<https://pubs.opengroup.org/onlinepubs/9799919799/utilities/make.html>.
|
||||
They thus require a 'make' implementation that supports this operator !=.
|
||||
As of 2024, these are: GNU make >= 4.0, FreeBSD make, NetBSD make,
|
||||
OpenBSD make. This means that building on specific platforms requires
|
||||
use of GNU make:
|
||||
- On macOS, use /opt/homebrew/bin/gmake.
|
||||
- On Solaris 11 OpenIndiana, use /usr/bin/gmake = /usr/gnu/bin/make.
|
||||
- On Solaris 11.4, install GNU make yourself.
|
||||
- On AIX, use /opt/freeware/bin/make.
|
||||
@@ -0,0 +1,34 @@
|
||||
# csharp.m4
|
||||
# serial 5
|
||||
dnl Copyright (C) 2004-2005, 2009-2026 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
dnl This file is offered as-is, without any warranty.
|
||||
|
||||
# Sets CSHARP_CHOICE to the preferred C# implementation:
|
||||
# 'mono' or 'dotnet' or 'any' or 'no'.
|
||||
# Here
|
||||
# - 'mono' means <https://en.wikipedia.org/wiki/Mono_(software)>.
|
||||
# - 'dotnet' means the (newer) .NET <https://en.wikipedia.org/wiki/.NET>,
|
||||
# *not* the .NET framework <https://en.wikipedia.org/wiki/.NET_Framework>.
|
||||
AC_DEFUN([gt_CSHARP_CHOICE],
|
||||
[
|
||||
AC_MSG_CHECKING([for preferred C[#] implementation])
|
||||
AC_ARG_ENABLE([csharp],
|
||||
[ --enable-csharp[[=IMPL]] choose preferred C[#] implementation (mono, dotnet)],
|
||||
[CSHARP_CHOICE="$enableval"],
|
||||
CSHARP_CHOICE=any)
|
||||
AC_SUBST([CSHARP_CHOICE])
|
||||
AC_MSG_RESULT([$CSHARP_CHOICE])
|
||||
case "$CSHARP_CHOICE" in
|
||||
mono)
|
||||
AC_DEFINE([CSHARP_CHOICE_MONO], [1],
|
||||
[Define if mono is the preferred C# implementation.])
|
||||
;;
|
||||
dotnet)
|
||||
AC_DEFINE([CSHARP_CHOICE_DOTNET], [1],
|
||||
[Define if dotnet is the preferred C# implementation.])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
@@ -0,0 +1,93 @@
|
||||
# csharpcomp.m4
|
||||
# serial 11
|
||||
dnl Copyright (C) 2003-2005, 2007, 2009-2026 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
dnl This file is offered as-is, without any warranty.
|
||||
|
||||
# Prerequisites of csharpcomp.sh.
|
||||
# Checks for a C# compiler.
|
||||
# Sets at most one of HAVE_MCS, HAVE_DOTNET_SDK, HAVE_DOTNET_CSC, HAVE_CSC.
|
||||
# Sets HAVE_CSHARPCOMP to nonempty if csharpcomp.sh will work.
|
||||
# Also sets CSHARPCOMPFLAGS.
|
||||
AC_DEFUN([gt_CSHARPCOMP],
|
||||
[
|
||||
AC_REQUIRE([gt_CSHARP_CHOICE])
|
||||
AC_MSG_CHECKING([for C[#] compiler])
|
||||
HAVE_CSHARPCOMP=1
|
||||
pushdef([AC_MSG_CHECKING],[:])dnl
|
||||
pushdef([AC_CHECKING],[:])dnl
|
||||
pushdef([AC_MSG_RESULT],[:])dnl
|
||||
AC_CHECK_PROG([HAVE_MCS_IN_PATH], [mcs], [yes])
|
||||
AC_CHECK_PROG([HAVE_DOTNET_IN_PATH], [dotnet], [yes])
|
||||
AC_CHECK_PROG([HAVE_CSC_IN_PATH], [csc], [yes])
|
||||
popdef([AC_MSG_RESULT])dnl
|
||||
popdef([AC_CHECKING])dnl
|
||||
popdef([AC_MSG_CHECKING])dnl
|
||||
for impl in "$CSHARP_CHOICE" mono dotnet sscli no; do
|
||||
case "$impl" in
|
||||
mono)
|
||||
if test -n "$HAVE_MCS_IN_PATH" \
|
||||
&& mcs --version >/dev/null 2>/dev/null \
|
||||
&& mcs --version 2>/dev/null | grep Mono >/dev/null; then
|
||||
HAVE_MCS=1
|
||||
ac_result="mcs"
|
||||
break
|
||||
fi
|
||||
;;
|
||||
dotnet)
|
||||
# The dotnet compiler is called "Roslyn".
|
||||
# <https://en.wikipedia.org/wiki/Roslyn_(compiler)>
|
||||
# There are two situations:
|
||||
# - A dotnet SDK, that contains a 'dotnet' program and the Roslyn
|
||||
# compiler as csc.dll.
|
||||
# - An MSVC installation, that contains the Roslyn compiler as csc.exe
|
||||
# (e.g. in C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\Roslyn\csc.exe).
|
||||
# In the first case, the user only has to make sure that 'dotnet' is
|
||||
# found in $PATH.
|
||||
# In the second case, they need to make sure that both 'dotnet' and
|
||||
# 'csc' are found in $PATH.
|
||||
if test -n "$HAVE_DOTNET_IN_PATH" \
|
||||
&& dotnet --list-runtimes >/dev/null 2>/dev/null \
|
||||
&& test -n "`dotnet --list-sdks 2>/dev/null`"; then
|
||||
HAVE_DOTNET_SDK=1
|
||||
ac_result="dotnet"
|
||||
break
|
||||
else
|
||||
if test -n "$HAVE_CSC_IN_PATH" \
|
||||
&& csc -help 2>/dev/null | grep analyzer >/dev/null \
|
||||
&& { if csc -help 2>/dev/null | grep -i chicken > /dev/null; then false; else true; fi; }; then
|
||||
HAVE_DOTNET_CSC=1
|
||||
ac_result="dotnet"
|
||||
break
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
sscli)
|
||||
if test -n "$HAVE_CSC_IN_PATH" \
|
||||
&& csc -help >/dev/null 2>/dev/null \
|
||||
&& { if csc -help 2>/dev/null | grep -i chicken > /dev/null; then false; else true; fi; }; then
|
||||
HAVE_CSC=1
|
||||
ac_result="csc"
|
||||
break
|
||||
fi
|
||||
;;
|
||||
no)
|
||||
HAVE_CSHARPCOMP=
|
||||
ac_result="no"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
AC_MSG_RESULT([$ac_result])
|
||||
AC_SUBST([HAVE_MCS])
|
||||
AC_SUBST([HAVE_DOTNET_SDK])
|
||||
AC_SUBST([HAVE_DOTNET_CSC])
|
||||
AC_SUBST([HAVE_CSC])
|
||||
dnl Provide a default for CSHARPCOMPFLAGS.
|
||||
if test -z "${CSHARPCOMPFLAGS+set}"; then
|
||||
CSHARPCOMPFLAGS="-O -g"
|
||||
fi
|
||||
AC_SUBST([CSHARPCOMPFLAGS])
|
||||
])
|
||||
@@ -0,0 +1,247 @@
|
||||
#!/bin/sh
|
||||
# Compile a C# program.
|
||||
|
||||
# Copyright (C) 2003-2026 Free Software Foundation, Inc.
|
||||
# Written by Bruno Haible <bruno@clisp.org>, 2003.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# This uses the same choices as csharpcomp.c, but instead of relying on the
|
||||
# environment settings at run time, it uses the environment variables
|
||||
# present at configuration time.
|
||||
#
|
||||
# This is a separate shell script, because the various C# compilers have
|
||||
# different command line options.
|
||||
#
|
||||
# Usage: /bin/sh csharpcomp.sh [OPTION] SOURCE.cs ... RES.resource ...
|
||||
# Options:
|
||||
# -o PROGRAM.exe or -o LIBRARY.dll
|
||||
# set the output assembly name
|
||||
# -L DIRECTORY search for C# libraries also in DIRECTORY
|
||||
# -l LIBRARY reference the C# library LIBRARY.dll
|
||||
# -O optimize
|
||||
# -g generate debugging information
|
||||
|
||||
# func_tmpdir
|
||||
# creates a temporary directory.
|
||||
# Sets variable
|
||||
# - tmp pathname of freshly created temporary directory
|
||||
func_tmpdir ()
|
||||
{
|
||||
# Use the environment variable TMPDIR, falling back to /tmp. This allows
|
||||
# users to specify a different temporary directory, for example, if their
|
||||
# /tmp is filled up or too small.
|
||||
: "${TMPDIR=/tmp}"
|
||||
{
|
||||
# Use the mktemp program if available. If not available, hide the error
|
||||
# message.
|
||||
tmp=`(umask 077 && mktemp -d -q "$TMPDIR/gtXXXXXX") 2>/dev/null` &&
|
||||
test -n "$tmp" && test -d "$tmp"
|
||||
} ||
|
||||
{
|
||||
# Use a simple mkdir command. It is guaranteed to fail if the directory
|
||||
# already exists. $RANDOM is bash specific and expands to empty in shells
|
||||
# other than bash, ksh and zsh. Its use does not increase security;
|
||||
# rather, it minimizes the probability of failure in a very cluttered /tmp
|
||||
# directory.
|
||||
tmp=$TMPDIR/gt$$-$RANDOM
|
||||
(umask 077 && mkdir "$tmp")
|
||||
} ||
|
||||
{
|
||||
echo "$0: cannot create a temporary directory in $TMPDIR" >&2
|
||||
{ (exit 1); exit 1; }
|
||||
}
|
||||
}
|
||||
|
||||
# In order to construct a command that invokes csc, we need 'eval', because
|
||||
# some of the arguments may contain spaces.
|
||||
command_for_print=
|
||||
command_for_eval=
|
||||
options_csc_for_print=
|
||||
options_csc_for_eval=
|
||||
sources_csc_for_print=
|
||||
sources_csc_for_eval=
|
||||
# Protecting special characters, hiding them from 'eval':
|
||||
# Double each backslash.
|
||||
sed_protect_1='s/\\/\\\\/g'
|
||||
# Escape each dollar, backquote, double-quote.
|
||||
sed_protect_2a='s/\$/\\$/g'
|
||||
sed_protect_2b='s/`/\\`/g'
|
||||
sed_protect_2c='s/"/\\"/g'
|
||||
# Add double-quotes at the beginning and end of the word.
|
||||
sed_protect_3a='1s/^/"/'
|
||||
sed_protect_3b='$s/$/"/'
|
||||
func_add_word_to_command ()
|
||||
{
|
||||
command_for_print="${command_for_print:+$command_for_print }$1"
|
||||
word_protected=`echo "$1" | sed -e "$sed_protect_1" -e "$sed_protect_2a" -e "$sed_protect_2b" -e "$sed_protect_2c" -e "$sed_protect_3a" -e "$sed_protect_3b"`
|
||||
command_for_eval="${command_for_eval:+$command_for_eval }$word_protected"
|
||||
}
|
||||
func_add_word_to_options_csc ()
|
||||
{
|
||||
options_csc_for_print="${options_csc_for_print:+$options_csc_for_print }$1"
|
||||
word_protected=`echo "$1" | sed -e "$sed_protect_1" -e "$sed_protect_2a" -e "$sed_protect_2b" -e "$sed_protect_2c" -e "$sed_protect_3a" -e "$sed_protect_3b"`
|
||||
options_csc_for_eval="${options_csc_for_eval:+$options_csc_for_eval }$word_protected"
|
||||
}
|
||||
func_add_word_to_sources_csc ()
|
||||
{
|
||||
sources_csc_for_print="${sources_csc_for_print:+$sources_csc_for_print }$1"
|
||||
word_protected=`echo "$1" | sed -e "$sed_protect_1" -e "$sed_protect_2a" -e "$sed_protect_2b" -e "$sed_protect_2c" -e "$sed_protect_3a" -e "$sed_protect_3b"`
|
||||
sources_csc_for_eval="${sources_csc_for_eval:+$sources_csc_for_eval }$word_protected"
|
||||
}
|
||||
|
||||
sed_quote_subst='s/\([|&;<>()$`"'"'"'*?[#~=% \\]\)/\\\1/g'
|
||||
|
||||
options_mcs=
|
||||
sources=
|
||||
func_add_word_to_options_csc "-nologo"
|
||||
while test $# != 0; do
|
||||
case "$1" in
|
||||
-o)
|
||||
case "$2" in
|
||||
*.dll)
|
||||
options_mcs="$options_mcs -target:library"
|
||||
func_add_word_to_options_csc "-target:library"
|
||||
;;
|
||||
*.exe)
|
||||
func_add_word_to_options_csc "-target:exe"
|
||||
;;
|
||||
esac
|
||||
options_mcs="$options_mcs -out:"`echo "$2" | sed -e "$sed_quote_subst"`
|
||||
# On Windows, assume that 'dotnet' and 'csc' are native Windows programs,
|
||||
# not Cygwin programs.
|
||||
arg="$2"
|
||||
case "@build_os@" in
|
||||
cygwin*)
|
||||
arg=`cygpath -w "$arg"`
|
||||
;;
|
||||
esac
|
||||
func_add_word_to_options_csc "-out:$arg"
|
||||
shift
|
||||
;;
|
||||
-L)
|
||||
options_mcs="$options_mcs -lib:"`echo "$2" | sed -e "$sed_quote_subst"`
|
||||
# On Windows, assume that 'dotnet' and 'csc' are native Windows programs,
|
||||
# not Cygwin programs.
|
||||
arg="$2"
|
||||
case "@build_os@" in
|
||||
cygwin*)
|
||||
arg=`cygpath -w "$arg"`
|
||||
;;
|
||||
esac
|
||||
func_add_word_to_options_csc "-lib:$arg"
|
||||
shift
|
||||
;;
|
||||
-l)
|
||||
options_mcs="$options_mcs -reference:"`echo "$2" | sed -e "$sed_quote_subst"`
|
||||
func_add_word_to_options_csc "-reference:$2.dll"
|
||||
shift
|
||||
;;
|
||||
-O)
|
||||
func_add_word_to_options_csc "-optimize+"
|
||||
;;
|
||||
-g)
|
||||
options_mcs="$options_mcs -debug"
|
||||
func_add_word_to_options_csc "-debug+"
|
||||
;;
|
||||
-*)
|
||||
echo "csharpcomp: unknown option '$1'" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
*.resources)
|
||||
options_mcs="$options_mcs -resource:"`echo "$1" | sed -e "$sed_quote_subst"`
|
||||
# On Windows, assume that 'dotnet' and 'csc' are native Windows programs,
|
||||
# not Cygwin programs.
|
||||
arg="$1"
|
||||
case "@build_os@" in
|
||||
cygwin*)
|
||||
arg=`cygpath -w "$arg"`
|
||||
;;
|
||||
esac
|
||||
func_add_word_to_options_csc "-resource:$arg"
|
||||
;;
|
||||
*.cs)
|
||||
sources="$sources "`echo "$1" | sed -e "$sed_quote_subst"`
|
||||
# On Windows, assume that 'dotnet' and 'csc' are native Windows programs,
|
||||
# not Cygwin programs.
|
||||
arg="$1"
|
||||
case "@build_os@" in
|
||||
cygwin*)
|
||||
arg=`cygpath -w "$arg"`
|
||||
;;
|
||||
esac
|
||||
func_add_word_to_sources_csc "$arg"
|
||||
;;
|
||||
*)
|
||||
echo "csharpcomp: unknown type of argument '$1'" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if test -n "@HAVE_MCS@"; then
|
||||
# mcs prints it errors and warnings to stdout, not stderr. Furthermore it
|
||||
# adds a useless line "Compilation succeeded..." at the end. Correct both.
|
||||
sed_drop_success_line='${
|
||||
/^Compilation succeeded/d
|
||||
}'
|
||||
func_tmpdir
|
||||
trap 'rm -rf "$tmp"' HUP INT QUIT TERM
|
||||
test -z "$CSHARP_VERBOSE" || echo mcs $options_mcs $sources 1>&2
|
||||
mcs $options_mcs $sources > "$tmp"/mcs.err
|
||||
result=$?
|
||||
sed -e "$sed_drop_success_line" < "$tmp"/mcs.err >&2
|
||||
rm -rf "$tmp"
|
||||
exit $result
|
||||
else
|
||||
if test -n "@HAVE_DOTNET_SDK@"; then
|
||||
dotnet_runtime_dir=`dotnet --list-runtimes | sed -n -e 's/Microsoft.NETCore.App \([^ ]*\) \[\(.*\)\].*/\2\/\1/p' | sed -e 1q`
|
||||
dotnet_sdk_dir=`dotnet --list-sdks | sed -e 's/\([^ ]*\) \[\(.*\)\].*/\2\/\1/p' | sed -e 1q`
|
||||
# Add -lib and -reference options, so that the compiler finds Object, Console, String, etc.
|
||||
arg="$dotnet_runtime_dir"
|
||||
case "@build_os@" in
|
||||
cygwin*)
|
||||
arg=`cygpath -w "$arg"`
|
||||
;;
|
||||
esac
|
||||
func_add_word_to_options_csc "-lib:$arg"
|
||||
for file in `cd "$dotnet_runtime_dir" && echo [ABCDEFGHIJKLMNOPQRSTUVWXYZ]*.dll`; do
|
||||
case "$file" in
|
||||
*.Native.*) ;;
|
||||
*) func_add_word_to_options_csc "-reference:$file" ;;
|
||||
esac
|
||||
done
|
||||
func_add_word_to_command dotnet
|
||||
csc="$dotnet_sdk_dir/Roslyn/bincore/csc.dll"
|
||||
case "@build_os@" in
|
||||
cygwin*)
|
||||
csc=`cygpath -w "$csc"`
|
||||
;;
|
||||
esac
|
||||
func_add_word_to_command "$csc"
|
||||
test -z "$CSHARP_VERBOSE" || echo "$command_for_print $options_csc_for_print $sources_csc_for_print" 1>&2
|
||||
eval "$command_for_eval $options_csc_for_eval $sources_csc_for_eval"
|
||||
exit $?
|
||||
else
|
||||
if test -n "@HAVE_DOTNET_CSC@" || test -n "@HAVE_CSC@"; then
|
||||
test -z "$CSHARP_VERBOSE" || echo "csc $options_csc_for_print $sources_csc_for_print" 1>&2
|
||||
eval "csc $options_csc_for_eval $sources_csc_for_eval"
|
||||
exit $?
|
||||
else
|
||||
echo 'C# compiler not found, try installing mono or dotnet, then reconfigure' 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
Binary file not shown.
@@ -0,0 +1,88 @@
|
||||
# csharpexec.m4
|
||||
# serial 10
|
||||
dnl Copyright (C) 2003-2005, 2009-2026 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
dnl This file is offered as-is, without any warranty.
|
||||
|
||||
# Prerequisites of csharpexec.sh.
|
||||
# Checks for a C# execution engine.
|
||||
# gt_CSHARPEXEC or gt_CSHARPEXEC(testexecutable, its-directory)
|
||||
# Sets at most one of HAVE_MONO, HAVE_DOTNET, HAVE_CLIX.
|
||||
# Sets HAVE_CSHARPEXEC to nonempty if csharpexec.sh will work.
|
||||
AC_DEFUN([gt_CSHARPEXEC],
|
||||
[
|
||||
AC_REQUIRE([gt_CSHARP_CHOICE])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
|
||||
AC_MSG_CHECKING([for C[#] program execution engine])
|
||||
AC_EGREP_CPP([yes], [
|
||||
#if defined _WIN32 || defined __EMX__ || defined __DJGPP__
|
||||
yes
|
||||
#endif
|
||||
], MONO_PATH_SEPARATOR=';', MONO_PATH_SEPARATOR=':')
|
||||
HAVE_CSHARPEXEC=1
|
||||
pushdef([AC_MSG_CHECKING],[:])dnl
|
||||
pushdef([AC_CHECKING],[:])dnl
|
||||
pushdef([AC_MSG_RESULT],[:])dnl
|
||||
AC_CHECK_PROG([HAVE_MONO_IN_PATH], [mono], [yes])
|
||||
AC_CHECK_PROG([HAVE_DOTNET_IN_PATH], [dotnet], [yes])
|
||||
AC_CHECK_PROG([HAVE_CLIX_IN_PATH], [clix], [yes])
|
||||
popdef([AC_MSG_RESULT])dnl
|
||||
popdef([AC_CHECKING])dnl
|
||||
popdef([AC_MSG_CHECKING])dnl
|
||||
for impl in "$CSHARP_CHOICE" mono dotnet no; do
|
||||
case "$impl" in
|
||||
mono)
|
||||
if test -n "$HAVE_MONO_IN_PATH" \
|
||||
&& mono --version >/dev/null 2>/dev/null \
|
||||
m4_if([$1], , , [&& mono $2/$1 >/dev/null 2>/dev/null]); then
|
||||
HAVE_MONO=1
|
||||
ac_result="mono"
|
||||
break
|
||||
fi
|
||||
;;
|
||||
dotnet)
|
||||
if test -n "$HAVE_DOTNET_IN_PATH" \
|
||||
&& dotnet --list-runtimes >/dev/null 2>/dev/null; then
|
||||
HAVE_DOTNET=1
|
||||
ac_result="dotnet"
|
||||
break
|
||||
fi
|
||||
;;
|
||||
sscli)
|
||||
if test -n "$HAVE_CLIX_IN_PATH" \
|
||||
m4_if([$1], , , [&& clix $2/$1 >/dev/null 2>/dev/null]); then
|
||||
HAVE_CLIX=1
|
||||
case $host_os in
|
||||
cygwin* | mingw* | windows* | pw32*)
|
||||
CLIX_PATH_VAR=PATH
|
||||
;;
|
||||
darwin* | rhapsody*)
|
||||
CLIX_PATH_VAR=DYLD_LIBRARY_PATH
|
||||
;;
|
||||
*)
|
||||
CLIX_PATH_VAR=LD_LIBRARY_PATH
|
||||
;;
|
||||
esac
|
||||
eval CLIX_PATH=\"\$CLIX_PATH_VAR\"
|
||||
ac_result="clix"
|
||||
break
|
||||
fi
|
||||
;;
|
||||
no)
|
||||
HAVE_CSHARPEXEC=
|
||||
ac_result="no"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
AC_MSG_RESULT([$ac_result])
|
||||
AC_SUBST([MONO_PATH])
|
||||
AC_SUBST([MONO_PATH_SEPARATOR])
|
||||
AC_SUBST([CLIX_PATH_VAR])
|
||||
AC_SUBST([CLIX_PATH])
|
||||
AC_SUBST([HAVE_MONO])
|
||||
AC_SUBST([HAVE_DOTNET])
|
||||
AC_SUBST([HAVE_CLIX])
|
||||
])
|
||||
@@ -0,0 +1,213 @@
|
||||
#!/bin/sh
|
||||
# Execute a C# program.
|
||||
|
||||
# Copyright (C) 2003-2026 Free Software Foundation, Inc.
|
||||
# Written by Bruno Haible <bruno@clisp.org>, 2003.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# This uses the same choices as csharpexec.c, but instead of relying on the
|
||||
# environment settings at run time, it uses the environment variables
|
||||
# present at configuration time.
|
||||
#
|
||||
# This is a separate shell script, because the various C# interpreters have
|
||||
# different command line options.
|
||||
#
|
||||
# Usage: /bin/sh csharpexec.sh [OPTION] program.exe [ARGUMENTS]
|
||||
# Options:
|
||||
# -L DIRECTORY search for C# libraries also in DIRECTORY
|
||||
|
||||
# func_tmpdir
|
||||
# creates a temporary directory.
|
||||
# Sets variable
|
||||
# - tmp pathname of freshly created temporary directory
|
||||
func_tmpdir ()
|
||||
{
|
||||
# Use the environment variable TMPDIR, falling back to /tmp. This allows
|
||||
# users to specify a different temporary directory, for example, if their
|
||||
# /tmp is filled up or too small.
|
||||
: "${TMPDIR=/tmp}"
|
||||
{
|
||||
# Use the mktemp program if available. If not available, hide the error
|
||||
# message.
|
||||
tmp=`(umask 077 && mktemp -d -q "$TMPDIR/gtXXXXXX") 2>/dev/null` &&
|
||||
test -n "$tmp" && test -d "$tmp"
|
||||
} ||
|
||||
{
|
||||
# Use a simple mkdir command. It is guaranteed to fail if the directory
|
||||
# already exists. $RANDOM is bash specific and expands to empty in shells
|
||||
# other than bash, ksh and zsh. Its use does not increase security;
|
||||
# rather, it minimizes the probability of failure in a very cluttered /tmp
|
||||
# directory.
|
||||
tmp=$TMPDIR/gt$$-$RANDOM
|
||||
(umask 077 && mkdir "$tmp")
|
||||
} ||
|
||||
{
|
||||
echo "$0: cannot create a temporary directory in $TMPDIR" >&2
|
||||
{ (exit 1); exit 1; }
|
||||
}
|
||||
}
|
||||
|
||||
libdirs_mono=
|
||||
libdirs_dotnet=
|
||||
prog=
|
||||
while test $# != 0; do
|
||||
case "$1" in
|
||||
-L)
|
||||
libdirs_mono="${libdirs_mono:+$libdirs_mono@MONO_PATH_SEPARATOR@}$2"
|
||||
libdirs_dotnet="${libdirs_dotnet:+$libdirs_dotnet|}$2"
|
||||
shift
|
||||
;;
|
||||
-*)
|
||||
echo "csharpexec: unknown option '$1'" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
prog="$1"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
if test -z "$prog"; then
|
||||
echo "csharpexec: no program specified" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
case "$prog" in
|
||||
*.exe) ;;
|
||||
*)
|
||||
echo "csharpexec: program is not a .exe" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -n "@HAVE_MONO@"; then
|
||||
CONF_MONO_PATH='@MONO_PATH@'
|
||||
if test -n "$libdirs_mono"; then
|
||||
MONO_PATH="$libdirs_mono${CONF_MONO_PATH:+@MONO_PATH_SEPARATOR@$CONF_MONO_PATH}"
|
||||
else
|
||||
MONO_PATH="$CONF_MONO_PATH"
|
||||
fi
|
||||
export MONO_PATH
|
||||
test -z "$CSHARP_VERBOSE" || echo mono "$@" 1>&2
|
||||
exec mono "$@"
|
||||
else
|
||||
if test -n "@HAVE_DOTNET@"; then
|
||||
# Invoke 'dotnet $prog ...'.
|
||||
# Documentation:
|
||||
# <https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet#options-for-running-an-application>
|
||||
# This could be optimized on Windows platforms, because C# .exe files are
|
||||
# directly executable there. But there's no point in optimizing specifically
|
||||
# a non-free platform, especially since it would increase the test matrix.
|
||||
shift
|
||||
# On Windows, assume that 'dotnet' is a native Windows program, not a Cygwin program.
|
||||
prog_arg="$prog"
|
||||
case "@build_os@" in
|
||||
cygwin*)
|
||||
prog_arg=`cygpath -w "$prog"`
|
||||
;;
|
||||
esac
|
||||
# Handle the -L options.
|
||||
# The way this works is that we have to copy (or symlink) the DLLs into the
|
||||
# directory where FOO.exe resides.
|
||||
# Maybe there is another way to do this, but I haven't found it, trying
|
||||
# - the --additionalprobingpath command-line option,
|
||||
# - the additionalProbingPaths property in runtimeconfig.json,
|
||||
# - adding a --deps deps.json option,
|
||||
# cf. <https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet#options-for-running-an-application>
|
||||
# and <https://github.com/dotnet/runtime/blob/main/docs/design/features/host-probing.md>.
|
||||
tmpfiles=
|
||||
if test -n "$libdirs_dotnet"; then
|
||||
# Make sure the added DLLs are removed when this script terminates.
|
||||
func_cleanup_tmpfiles()
|
||||
{
|
||||
saved_IFS="$IFS"
|
||||
IFS='|'
|
||||
for file in $tmpfiles; do
|
||||
IFS="$saved_IFS"
|
||||
rm -f "$file"
|
||||
done
|
||||
IFS="$saved_IFS"
|
||||
}
|
||||
trap func_cleanup_tmpfiles HUP INT QUIT PIPE TERM
|
||||
trap 'exit_status=$?; func_cleanup_tmpfiles; exit $exit_status' EXIT
|
||||
# Copy the DLLs.
|
||||
prog_dir=`dirname "$prog"`
|
||||
saved_IFS="$IFS"
|
||||
IFS='|'
|
||||
for dir in $libdirs_dotnet; do
|
||||
IFS="$saved_IFS"
|
||||
for file in `cd "$dir" && echo *.dll`; do
|
||||
if test -f "$prog_dir/$file"; then
|
||||
# A DLL of this name is already at the expected location.
|
||||
:
|
||||
else
|
||||
tmpfiles="${tmpfiles:+$tmpfiles|}$prog_dir/$file"
|
||||
cp "$dir/$file" "$prog_dir/$file" || exit 1
|
||||
fi
|
||||
done
|
||||
done
|
||||
IFS="$saved_IFS"
|
||||
fi
|
||||
if test -f "${prog%.exe}.runtimeconfig.json"; then
|
||||
# There is already a FOO.runtimeconfig.json alongside FOO.exe.
|
||||
dotnet exec "$prog_arg" "$@"
|
||||
result=$?
|
||||
else
|
||||
# dotnet needs a FOO.runtimeconfig.json alongside FOO.exe in order to
|
||||
# execute FOO.exe. Create a dummy one in a temporary directory
|
||||
# (because the directory where FOO.exe sits is not necessarily writable).
|
||||
# Documentation of this file format:
|
||||
# <https://learn.microsoft.com/en-us/dotnet/core/runtime-config/>
|
||||
func_tmpdir
|
||||
runtimeconfig="$tmp"/runtimeconfig.json
|
||||
dotnet --list-runtimes | sed -n -e 's/Microsoft.NETCore.App \([^ ]*\) .*/{ "runtimeOptions": { "framework": { "name": "Microsoft.NETCore.App", "version": "\1" } } }/p' > "$runtimeconfig"
|
||||
runtimeconfig_arg="$runtimeconfig"
|
||||
case "@build_os@" in
|
||||
cygwin*)
|
||||
runtimeconfig_arg=`cygpath -w "$runtimeconfig"`
|
||||
;;
|
||||
esac
|
||||
test -z "$CSHARP_VERBOSE" || echo dotnet exec --runtimeconfig "$runtimeconfig_arg" "$prog_arg" "$@" 1>&2
|
||||
dotnet exec --runtimeconfig "$runtimeconfig_arg" "$prog_arg" "$@"
|
||||
result=$?
|
||||
rm -f "$runtimeconfig"
|
||||
rmdir "$tmp"
|
||||
fi
|
||||
exit $result
|
||||
else
|
||||
if test -n "@HAVE_CLIX@"; then
|
||||
CONF_CLIX_PATH='@CLIX_PATH@'
|
||||
if test -n "$libdirs_mono"; then
|
||||
@CLIX_PATH_VAR@="$libdirs_mono${CONF_CLIX_PATH:+@MONO_PATH_SEPARATOR@$CONF_CLIX_PATH}"
|
||||
else
|
||||
@CLIX_PATH_VAR@="$CONF_CLIX_PATH"
|
||||
fi
|
||||
export @CLIX_PATH_VAR@
|
||||
shift
|
||||
# On Windows, assume that 'clix' is a native Windows program,
|
||||
# not a Cygwin program.
|
||||
case "@build_os@" in
|
||||
cygwin*)
|
||||
prog=`cygpath -w "$prog"`
|
||||
;;
|
||||
esac
|
||||
test -z "$CSHARP_VERBOSE" || echo clix "$prog" "$@" 1>&2
|
||||
exec clix "$prog" "$@"
|
||||
else
|
||||
echo 'C# virtual machine not found, try installing mono or dotnet, then reconfigure' 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,100 @@
|
||||
# dcomp.m4
|
||||
# serial 3
|
||||
dnl Copyright (C) 2025-2026 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
dnl This file is offered as-is, without any warranty.
|
||||
|
||||
# There are three D implementations, see
|
||||
# <https://en.wikipedia.org/wiki/D_(programming_language)#Implementations>
|
||||
# <https://wiki.dlang.org/Compilers>
|
||||
# <https://dub.pm/dub-reference/build_settings/#buildoptions>
|
||||
# Although each has different possible options, a few options are accepted by
|
||||
# all of the implementations: -c, -I, -g, -O. Some essential options, however,
|
||||
# are different:
|
||||
# gdc ldc2 dmd
|
||||
# ---------- ------------------- ------------
|
||||
# -oFILE -of=FILE, --of=FILE -of=FILE
|
||||
# -lLIBRARY -L -lLIBRARY -L=-lLIBRARY
|
||||
# -LDIR -L -LDIR -L=-LDIR
|
||||
# -Wl,OPTION -L OPTION -L=OPTION
|
||||
|
||||
# Checks for a D implementation.
|
||||
# Sets DC and DFLAGS (options that can be used with "$DC").
|
||||
AC_DEFUN([gt_DCOMP],
|
||||
[
|
||||
AC_MSG_CHECKING([for D compiler])
|
||||
pushdef([AC_MSG_CHECKING],[:])dnl
|
||||
pushdef([AC_CHECKING],[:])dnl
|
||||
pushdef([AC_MSG_RESULT],[:])dnl
|
||||
AC_ARG_VAR([DC], [D compiler command])
|
||||
AC_ARG_VAR([DFLAGS], [D compiler options])
|
||||
dnl On OpenBSD, gdc is called 'egdc' and works less well than dmd.
|
||||
dnl Like AC_CHECK_TOOLS([DC], [gdc ldc2 dmd egdc]) but check whether the
|
||||
dnl compiler can actually compile a trivial program. We may simplify this
|
||||
dnl once <https://savannah.gnu.org/support/index.php?111256> is implemented.
|
||||
if test -z "$DC"; then
|
||||
echo > empty.d
|
||||
if test -n "${host_alias}"; then
|
||||
if test -z "$DC"; then
|
||||
DC="${host_alias}-gdc"
|
||||
echo "$as_me:${as_lineno-$LINENO}: trying ${DC}..." >&AS_MESSAGE_LOG_FD
|
||||
if ${DC} -c empty.d 2>&AS_MESSAGE_LOG_FD; then :; else DC= ; fi
|
||||
fi
|
||||
if test -z "$DC"; then
|
||||
DC="${host_alias}-ldc2"
|
||||
echo "$as_me:${as_lineno-$LINENO}: trying ${DC}..." >&AS_MESSAGE_LOG_FD
|
||||
if ${DC} -c empty.d 2>&AS_MESSAGE_LOG_FD; then :; else DC= ; fi
|
||||
fi
|
||||
if test -z "$DC"; then
|
||||
DC="${host_alias}-dmd"
|
||||
echo "$as_me:${as_lineno-$LINENO}: trying ${DC}..." >&AS_MESSAGE_LOG_FD
|
||||
if ${DC} -c empty.d 2>&AS_MESSAGE_LOG_FD; then :; else DC= ; fi
|
||||
fi
|
||||
if test -z "$DC"; then
|
||||
DC="${host_alias}-egdc"
|
||||
echo "$as_me:${as_lineno-$LINENO}: trying ${DC}..." >&AS_MESSAGE_LOG_FD
|
||||
if ${DC} -c empty.d 2>&AS_MESSAGE_LOG_FD; then :; else DC= ; fi
|
||||
fi
|
||||
fi
|
||||
if test -z "$DC"; then
|
||||
DC="gdc"
|
||||
echo "$as_me:${as_lineno-$LINENO}: trying ${DC}..." >&AS_MESSAGE_LOG_FD
|
||||
if ${DC} -c empty.d 2>&AS_MESSAGE_LOG_FD; then :; else DC= ; fi
|
||||
fi
|
||||
if test -z "$DC"; then
|
||||
DC="ldc2"
|
||||
echo "$as_me:${as_lineno-$LINENO}: trying ${DC}..." >&AS_MESSAGE_LOG_FD
|
||||
if ${DC} -c empty.d 2>&AS_MESSAGE_LOG_FD; then :; else DC= ; fi
|
||||
fi
|
||||
if test -z "$DC"; then
|
||||
DC="dmd"
|
||||
echo "$as_me:${as_lineno-$LINENO}: trying ${DC}..." >&AS_MESSAGE_LOG_FD
|
||||
if ${DC} -c empty.d 2>&AS_MESSAGE_LOG_FD; then :; else DC= ; fi
|
||||
fi
|
||||
if test -z "$DC"; then
|
||||
DC="egdc"
|
||||
echo "$as_me:${as_lineno-$LINENO}: trying ${DC}..." >&AS_MESSAGE_LOG_FD
|
||||
if ${DC} -c empty.d 2>&AS_MESSAGE_LOG_FD; then :; else DC= ; fi
|
||||
fi
|
||||
rm -f empty.d empty.o empty.obj
|
||||
fi
|
||||
popdef([AC_MSG_RESULT])dnl
|
||||
popdef([AC_CHECKING])dnl
|
||||
popdef([AC_MSG_CHECKING])dnl
|
||||
if test -n "$DC"; then
|
||||
ac_result="$DC"
|
||||
else
|
||||
ac_result="no"
|
||||
fi
|
||||
AC_MSG_RESULT([$ac_result])
|
||||
AC_SUBST([DC])
|
||||
if test -z "$DFLAGS" && test -n "$DC"; then
|
||||
case `$DC --version | sed -e 's/ .*//' -e 1q` in
|
||||
gdc | *-gdc | egdc | *-egdc | LDC*) DFLAGS="-g -O2" ;;
|
||||
*) DFLAGS="-g -O" ;;
|
||||
esac
|
||||
fi
|
||||
AC_SUBST([DFLAGS])
|
||||
])
|
||||
@@ -0,0 +1,139 @@
|
||||
#!/bin/sh
|
||||
# Compile a D program, library, or compilation unit.
|
||||
|
||||
# Copyright (C) 2025-2026 Free Software Foundation, Inc.
|
||||
# Written by Bruno Haible <bruno@clisp.org>, 2025.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# Usage: /bin/sh dcomp.sh [OPTION] SOURCE.d ...
|
||||
# where the supported OPTIONs are:
|
||||
# -I DIR
|
||||
# -c
|
||||
# -g
|
||||
# -O (mapped to -O or -O2, depending on implementation)
|
||||
# -o FILE (for libtool compatibility)
|
||||
# -lLIBRARY (for libtool compatibility)
|
||||
# -LDIR (for libtool compatibility)
|
||||
# -pthread (for libtool compatibility)
|
||||
# -Wl,OPTION (for libtool compatibility)
|
||||
|
||||
# Find out which implementation we are using.
|
||||
case `@DC@ --version | sed -e 's/ .*//' -e 1q` in
|
||||
gdc | *-gdc | egdc | *-egdc) flavor=gdc ;;
|
||||
LDC*) flavor=ldc ;;
|
||||
DMD*) flavor=dmd ;;
|
||||
*)
|
||||
echo "Warning: implementation flavor of '"'@DC@'"' not recognized." 1>&2
|
||||
flavor=dmd ;;
|
||||
esac
|
||||
|
||||
# In order to construct a command that invokes the D compiler, we need 'eval',
|
||||
# because some of the arguments may contain spaces.
|
||||
options_for_print=
|
||||
options_for_eval=
|
||||
# Protecting special characters, hiding them from 'eval':
|
||||
# Double each backslash.
|
||||
sed_protect_1='s/\\/\\\\/g'
|
||||
# Escape each dollar, backquote, double-quote.
|
||||
sed_protect_2a='s/\$/\\$/g'
|
||||
sed_protect_2b='s/`/\\`/g'
|
||||
sed_protect_2c='s/"/\\"/g'
|
||||
# Add double-quotes at the beginning and end of the word.
|
||||
sed_protect_3a='1s/^/"/'
|
||||
sed_protect_3b='$s/$/"/'
|
||||
func_add_word_to_options ()
|
||||
{
|
||||
options_for_print="${options_for_print:+$options_for_print }$1"
|
||||
word_protected=`echo "$1" | sed -e "$sed_protect_1" -e "$sed_protect_2a" -e "$sed_protect_2b" -e "$sed_protect_2c" -e "$sed_protect_3a" -e "$sed_protect_3b"`
|
||||
options_for_eval="${options_for_eval:+$options_for_eval }$word_protected"
|
||||
}
|
||||
|
||||
# Process the arguments.
|
||||
next_is_arg_of=
|
||||
for arg
|
||||
do
|
||||
if test -z "$next_is_arg_of"; then
|
||||
case "$arg" in
|
||||
-I | -l | -L)
|
||||
echo "dcomp: Unsupported option: $arg. Combine with next argument." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
-I* | -c | -g)
|
||||
func_add_word_to_options "$arg"
|
||||
;;
|
||||
-O)
|
||||
case "$flavor" in
|
||||
gdc | ldc) func_add_word_to_options "-O2" ;;
|
||||
dmd) func_add_word_to_options "-O" ;;
|
||||
esac
|
||||
;;
|
||||
-o) next_is_arg_of='o' ;;
|
||||
-l* | -L* | -pthread)
|
||||
case "$arg" in
|
||||
-pthread) arg='-lpthread' ;;
|
||||
esac
|
||||
case "$flavor" in
|
||||
gdc) func_add_word_to_options "$arg" ;;
|
||||
ldc) func_add_word_to_options '-L'; func_add_word_to_options "$arg" ;;
|
||||
dmd) func_add_word_to_options "-L=$arg" ;;
|
||||
esac
|
||||
;;
|
||||
-Wl,*)
|
||||
if test "$flavor" = gdc; then
|
||||
func_add_word_to_options "$arg"
|
||||
else
|
||||
option=`echo "$arg" | sed -e 's/^-Wl,//'`
|
||||
case "$flavor" in
|
||||
ldc) func_add_word_to_options '-L'; func_add_word_to_options "$option" ;;
|
||||
dmd) func_add_word_to_options "-L=$option" ;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
-*)
|
||||
echo "dcomp: Unsupported option: $arg" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
# dmd rejects shared library file names such as libfoo.so.1.3:
|
||||
# "Error: unrecognized file extension 3"
|
||||
if test "$flavor" = dmd \
|
||||
&& case `basename "$arg"` in lib*.so.*) true ;; *) false ;; esac; then
|
||||
func_add_word_to_options "-L=$arg"
|
||||
else
|
||||
func_add_word_to_options "$arg"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
else
|
||||
case "$next_is_arg_of" in
|
||||
o)
|
||||
case "$flavor" in
|
||||
gdc) func_add_word_to_options '-o'; func_add_word_to_options "$arg" ;;
|
||||
*) func_add_word_to_options "-of=$arg" ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
next_is_arg_of=
|
||||
fi
|
||||
done
|
||||
if test -n "$next_is_arg_of"; then
|
||||
echo "dcomp: missing argument to option -$next_is_arg_of" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Execute the command.
|
||||
test -z "$D_VERBOSE" || echo "@DC@ @DFLAGS@ $options_for_print" 1>&2
|
||||
eval "@DC@ @DFLAGS@ $options_for_eval"
|
||||
exit $?
|
||||
@@ -0,0 +1,127 @@
|
||||
# gocomp.m4
|
||||
# serial 1
|
||||
dnl Copyright (C) 2025-2026 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
dnl This file is offered as-is, without any warranty.
|
||||
|
||||
# There are two Go implementations, that differ essentially only regarding
|
||||
# the compiler and the used runtime version:
|
||||
# * The golang Go is the original implementation, typically a little more
|
||||
# up-to-date. It supports only the major computing platforms.
|
||||
# * The GCC Go implementation is part of the GNU Compiler Collection.
|
||||
# It lags behind a bit. It supports all platforms supported by GCC.
|
||||
# The golang Go implementation produces smaller executables, and the
|
||||
# binary packages needed for development are smaller as well.
|
||||
#
|
||||
# Therefore the preferred implementation is
|
||||
# * golang where available,
|
||||
# * GCC on the platforms where golang is not available. This includes in
|
||||
# particular:
|
||||
# - Linux/alpha, Linux/hppa, Linux/m68k, Linux/sparc, Linux/powerpc (32-bit)
|
||||
# - GNU/Hurd
|
||||
# - Solaris/sparc
|
||||
# - Haiku
|
||||
|
||||
# Sets GO_CHOICE to the preferred Go compiler implementation:
|
||||
# 'golang' or 'gcc' or 'any' or 'no'.
|
||||
# Here
|
||||
# - 'golang' means the original Go compiler.
|
||||
# - 'gcc' means GCC Go compiler.
|
||||
# The runtime library of both is the same (possibly in different versions,
|
||||
# though).
|
||||
AC_DEFUN([gt_GO_CHOICE],
|
||||
[
|
||||
AC_MSG_CHECKING([for preferred Go compiler])
|
||||
AC_ARG_ENABLE([go],
|
||||
[ --enable-go[[=IMPL]] choose preferred Go compiler (golang, gcc)],
|
||||
[GO_CHOICE="$enableval"],
|
||||
[GO_CHOICE=any])
|
||||
AC_SUBST([GO_CHOICE])
|
||||
AC_MSG_RESULT([$GO_CHOICE])
|
||||
])
|
||||
|
||||
# How to run Go programs?
|
||||
# Assume you want to distribute a Go program. In which form? And what are
|
||||
# the dependencies to do so?
|
||||
#
|
||||
# There are three ways to do so:
|
||||
#
|
||||
# * Run the program by compiling it on-the-fly in a temporary directory
|
||||
# and running it from there:
|
||||
# ${GO} run foo.go
|
||||
# You would distribute foo.go (very small).
|
||||
# But the dependencies are large: the Go development environment.
|
||||
# On Ubuntu 24.04 this is:
|
||||
# - with 'golang': the package 'golang-go'
|
||||
# 11 MB for /usr/lib/go-1.22/bin/go,
|
||||
# 85 MB for /usr/lib/go-1.22/pkg/tool/linux_amd64/*
|
||||
# = 96 MB in total
|
||||
# - with 'gccgo': the package 'gccgo-13'
|
||||
# 60 MB for /usr/lib/x86_64-linux-gnu/libgo.so.22.0.0,
|
||||
# > 40 MB for /usr/libexec/gcc/x86_64-linux-gnu/13/go1
|
||||
# and /usr/bin/x86_64-linux-gnu-go-13,
|
||||
# 116 MB for /usr/lib/gcc/x86_64-linux-gnu/13/libgo.a
|
||||
# = 216 MB in total.
|
||||
#
|
||||
# * You distribute the binary, linked against the shared Go runtime library.
|
||||
# Running the program is just invoking that binary.
|
||||
# On Ubuntu the dependencies are:
|
||||
# - with 'golang': unsupported.
|
||||
# - with 'gccgo': the package 'libgo22'
|
||||
# 60 MB for /usr/lib/x86_64-linux-gnu/libgo.so.22.0.0
|
||||
# = 60 MB in total.
|
||||
#
|
||||
# * You distribute the binary, linked statically with the needed parts
|
||||
# of the Go runtime library:
|
||||
# ${GO} build ${GOCOMPFLAGS} foo.go
|
||||
# Running the program is just invoking that binary.
|
||||
# On Ubuntu the dependencies are:
|
||||
# - with 'golang': No dependencies; the binary is statically linked.
|
||||
# The stripped executable's size is >= 1 MB.
|
||||
# - with 'gccgo': No dependencies; the binary is statically linked
|
||||
# (when using GOCOMPFLAGS='-static') or statically linked except for
|
||||
# the standard C library (when using GOCOMPFLAGS='-static-libgo').
|
||||
# The stripped executable's size is 5 MB or 6 MB, respectively.
|
||||
# Distros generally prefer avoiding dynamic linking with libc,
|
||||
# so let's use that.
|
||||
#
|
||||
# It is clear that the third approach will be preferred for small programs.
|
||||
|
||||
# Prerequisites of gocomp.sh.
|
||||
# Checks for a Go implementation.
|
||||
# Sets HAVE_GOCOMP to nonempty if gocomp.sh will work.
|
||||
# Also sets GO and GOCOMPFLAGS (options that can be used with "$GO build").
|
||||
AC_DEFUN([gt_GOCOMP],
|
||||
[
|
||||
AC_REQUIRE([gt_GO_CHOICE])
|
||||
AC_MSG_CHECKING([for Go compiler])
|
||||
HAVE_GOCOMP=1
|
||||
pushdef([AC_MSG_CHECKING],[:])dnl
|
||||
pushdef([AC_CHECKING],[:])dnl
|
||||
pushdef([AC_MSG_RESULT],[:])dnl
|
||||
dnl Prefer golang over gcc by default, because it produces much smaller
|
||||
dnl executables (see above).
|
||||
if test "$GO_CHOICE" = gcc; then
|
||||
AC_PATH_PROGS([GO], [go-30 go-29 go-28 go-27 go-26 go-25 go-24 go-23 go-22 go-21 go-20 go-19 go-18 go-17 go-16 go-15 go-14 go-13 go-12 go-11 go-10 go-9 go-8 go-7 go-6 go-5 go])
|
||||
else
|
||||
AC_PATH_PROGS([GO], [go go-30 go-29 go-28 go-27 go-26 go-25 go-24 go-23 go-22 go-21 go-20 go-19 go-18 go-17 go-16 go-15 go-14 go-13 go-12 go-11 go-10 go-9 go-8 go-7 go-6 go-5])
|
||||
fi
|
||||
popdef([AC_MSG_RESULT])dnl
|
||||
popdef([AC_CHECKING])dnl
|
||||
popdef([AC_MSG_CHECKING])dnl
|
||||
if test -n "$GO"; then
|
||||
case "$GO" in
|
||||
go | */go ) GOCOMPFLAGS= ;;
|
||||
*) GOCOMPFLAGS='-gccgoflags=-static-libgo' ;;
|
||||
esac
|
||||
ac_result="$GO"
|
||||
else
|
||||
HAVE_GOCOMP=
|
||||
ac_result="no"
|
||||
fi
|
||||
AC_MSG_RESULT([$ac_result])
|
||||
AC_SUBST([GO])
|
||||
AC_SUBST([GOCOMPFLAGS])
|
||||
])
|
||||
@@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
# Compile a Go program.
|
||||
|
||||
# Copyright (C) 2025-2026 Free Software Foundation, Inc.
|
||||
# Written by Bruno Haible <haible@clisp.cons.org>, 2025.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# Usage: /bin/sh gocomp.sh [OPTION] SOURCE.go ...
|
||||
#
|
||||
# Limitation: Go programs that make use of the C to Go interface ('cgo') are
|
||||
# unsupported.
|
||||
|
||||
# Avoid error "CC environment variable is relative; must be absolute path"
|
||||
# on native Windows. Cf.
|
||||
# <https://github.com/golang/go/commit/aa161e799df7e1eba99d2be10271e76b6f758142>
|
||||
unset CC
|
||||
unset CXX
|
||||
|
||||
test -z "$GO_VERBOSE" || echo "@GO@ build @GOCOMPFLAGS@ $@"
|
||||
exec @GO@ build @GOCOMPFLAGS@ "$@"
|
||||
@@ -0,0 +1,477 @@
|
||||
# javacomp.m4
|
||||
# serial 27
|
||||
dnl Copyright (C) 2001-2003, 2006-2007, 2009-2026 Free Software Foundation,
|
||||
dnl Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
dnl This file is offered as-is, without any warranty.
|
||||
|
||||
# Prerequisites of javacomp.sh.
|
||||
# gt_JAVACOMP([source-version], [target-version])
|
||||
# Sets HAVE_JAVACOMP to nonempty if javacomp.sh will allow Java source code
|
||||
# according to source-version to be compiled to Java bytecode classes in the
|
||||
# target-version format.
|
||||
#
|
||||
# source-version can be: support for
|
||||
# 1.8 lambdas
|
||||
# 9 private interface methods
|
||||
# 10 type inference for local variables
|
||||
# 11 'var' in parameters of lambda expressions
|
||||
# ...
|
||||
# (For reference, see <https://en.wikipedia.org/wiki/Java_version_history>.)
|
||||
# If source-version 1.3 or 1.4 or 1.5 or 1.6 or 1.7 is requested, it gets mapped
|
||||
# to 1.8, for backward compatibility. (Currently the minimum Java and javac
|
||||
# version we need to support is Java 1.8, since older versions are
|
||||
# out-of-support, see
|
||||
# <https://en.wikipedia.org/wiki/Java_version_history#Release_table>.)
|
||||
#
|
||||
# target-version can be: classfile version:
|
||||
# 1.8 52.0
|
||||
# 9 53.0
|
||||
# 10 54.0
|
||||
# 11 55.0
|
||||
# ... ...
|
||||
# The classfile version of a .class file can be determined through the "file"
|
||||
# command. More portably, the classfile major version can be determined through
|
||||
# "od -A n -t d1 -j 7 -N 1 classfile".
|
||||
# If a target-version below 1.8 is requested, it gets mapped to 1.8, for
|
||||
# backward compatibility. (Currently the minimum Java and javac version we need
|
||||
# to support is Java 1.8, since older versions are out-of-support, see
|
||||
# <https://en.wikipedia.org/wiki/Java_version_history#Release_table>.)
|
||||
#
|
||||
# target-version can also be omitted. In this case, the required target-version
|
||||
# is determined from the found JVM (see macro gt_JAVAEXEC):
|
||||
# target-version for JVM
|
||||
# 1.8 JDK/JRE 8
|
||||
# 9 JDK/JRE 9
|
||||
# 10 JDK/JRE 10
|
||||
# 11 JDK/JRE 11
|
||||
# ... ...
|
||||
#
|
||||
# Specifying target-version is useful when building a library (.jar) that is
|
||||
# useful outside the given package. Omitting target-version is useful when
|
||||
# building an application.
|
||||
#
|
||||
# It is unreasonable to ask for a target-version < source-version, such as
|
||||
# - target-version < 1.4 with source-version >= 1.4, or
|
||||
# - target-version < 1.5 with source-version >= 1.5, or
|
||||
# - target_version < 1.6 with source_version >= 1.6, or
|
||||
# - target_version < 1.7 with source_version >= 1.7, or
|
||||
# - target_version < 1.8 with source_version >= 1.8, or
|
||||
# - target_version < 9 with source_version >= 9, or
|
||||
# - target_version < 10 with source_version >= 10, or
|
||||
# - target_version < 11 with source_version >= 11, or
|
||||
# - ...
|
||||
# because even Sun's/Oracle's javac doesn't support these combinations.
|
||||
#
|
||||
# It is redundant to ask for a target-version > source-version, since the
|
||||
# smaller target-version = source-version will also always work and newer JVMs
|
||||
# support the older target-versions too.
|
||||
|
||||
AC_DEFUN([gt_JAVACOMP],
|
||||
[
|
||||
m4_if([$2], [], [AC_REQUIRE([gt_JAVAEXEC])], [])
|
||||
AC_EGREP_CPP([yes], [
|
||||
#if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
|
||||
yes
|
||||
#endif
|
||||
], CLASSPATH_SEPARATOR=';', CLASSPATH_SEPARATOR=':')
|
||||
source_version=$1
|
||||
test -n "$source_version" || {
|
||||
AC_MSG_ERROR([missing source-version argument to gt_@&t@JAVACOMP])
|
||||
}
|
||||
case "$source_version" in
|
||||
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7) source_version='1.8' ;;
|
||||
esac
|
||||
m4_if([$2], [],
|
||||
[if test -n "$HAVE_JAVAEXEC"; then
|
||||
dnl Use $CONF_JAVA to determine the JVM's version.
|
||||
changequote(,)dnl
|
||||
cat > conftestver.java <<EOF
|
||||
public class conftestver {
|
||||
public static void main (String[] args) {
|
||||
System.out.println(System.getProperty("java.specification.version"));
|
||||
}
|
||||
}
|
||||
EOF
|
||||
changequote([,])dnl
|
||||
dnl A precompiled version of conftestver.java, compiled with
|
||||
dnl "javac -target 1.1". This avoids having to compile conftestver.java
|
||||
dnl during each test for a suitable Java compiler.
|
||||
dnl For the conversion from binary to this ASCII encapsulation, avoiding
|
||||
dnl to assume the presence of uudecode, use the command
|
||||
dnl $ od -A n -t o1 < conftestver.class | tr ' ' '\012'| sort | uniq | sed -e '/^$/d' -e 's,^,\\,' | tr -d '\012'
|
||||
dnl and the long tr command in opposite direction.
|
||||
dnl Finally move the position corresponding to \055 to the last position,
|
||||
dnl to work around a coreutils-5.x bug.
|
||||
echo 'yzwx!$!I!D,!)!3+!4!5*!6,!4!7,!8!9)!:)!;"!(MeienN"!$FGW"!%Ojab"!2QeibRohZblVYZgb"!%hYei"!9FXQfYpYKgYidKUnleidLGW"!,Ujol_bPegb"!3_jicnbmnpblJfYpY/!*!+)!</!=!>"!=fYpYJmkb_ece_YnejiJpblmeji/!?!@)!A/!B!C"!._jicnbmnpbl"!3fYpYKgYidKSZfb_n"!3fYpYKgYidKUqmnbh"!$jon"!8QfYpYKejKTleinUnlbYhL"!.dbnTljkblnq"!EFQfYpYKgYidKUnleidLGQfYpYKgYidKUnleidL"!6fYpYKejKTleinUnlbYh"!)kleingi"!8FQfYpYKgYidKUnleidLGW!D!(!)!!!!!#!"!*!+!"!,!!!@!"!"!!!&Hu!"r!!!"!.!!!(!"!!!"!+!/!0!"!,!!!F!#!"!!!/s!#5$v!%t!&r!!!"!.!!!,!#!!!$!.!%!"!1!!!#!2' \
|
||||
| tr -d '\012\015' \
|
||||
| tr '!"#$%&()*+,./0123456789:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzI' '\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\046\050\051\052\056\057\073\074\076\103\106\114\116\117\120\123\124\126\133\141\142\143\144\145\146\147\151\152\154\155\156\157\160\162\163\164\165\166\171\261\262\266\267\270\272\276\312\376\055' \
|
||||
> conftestver.class
|
||||
java_exec_version=`{
|
||||
unset JAVA_HOME
|
||||
echo "$as_me:__oline__: CLASSPATH=.${CLASSPATH:+$CLASSPATH_SEPARATOR$CLASSPATH} $CONF_JAVA conftestver" >&AS_MESSAGE_LOG_FD
|
||||
CLASSPATH=.${CLASSPATH:+$CLASSPATH_SEPARATOR$CLASSPATH} $CONF_JAVA conftestver 2>&AS_MESSAGE_LOG_FD
|
||||
}`
|
||||
case "$java_exec_version" in
|
||||
null)
|
||||
dnl JDK 1.1.X returns null.
|
||||
java_exec_version=1.1 ;;
|
||||
esac
|
||||
case "$java_exec_version" in
|
||||
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7)
|
||||
AC_MSG_WARN([$CONF_JAVA is too old, cannot compile Java code for this old version any more])
|
||||
target_version=1.8 ;;
|
||||
changequote(,)dnl
|
||||
1.8 | 9 | [1-9][0-9])
|
||||
changequote([,])dnl
|
||||
dnl Here we could choose any target_version between $source_version
|
||||
dnl and the $java_exec_version. (If it is too small, it will be
|
||||
dnl incremented below until it works.) Since we documented above that
|
||||
dnl it is determined from the JVM, we do that:
|
||||
target_version="$java_exec_version" ;;
|
||||
*) AC_MSG_WARN([unknown target-version $target_version, please update gt_@&t@JAVACOMP macro])
|
||||
target_version=1.8 ;;
|
||||
esac
|
||||
else
|
||||
target_version="1.8"
|
||||
fi
|
||||
],
|
||||
[target_version=$2
|
||||
case "$target_version" in
|
||||
1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 1.6 | 1.7) target_version='1.8' ;;
|
||||
esac
|
||||
])
|
||||
case "$source_version" in
|
||||
changequote(,)dnl
|
||||
1.8 | 9 | [1-9][0-9]) ;;
|
||||
changequote([,])dnl
|
||||
*) AC_MSG_ERROR([invalid source-version argument to gt_@&t@JAVACOMP: $source_version]) ;;
|
||||
esac
|
||||
case "$target_version" in
|
||||
changequote(,)dnl
|
||||
1.8 | 9 | [1-9][0-9]) ;;
|
||||
changequote([,])dnl
|
||||
*) AC_MSG_ERROR([invalid target-version argument to gt_@&t@JAVACOMP: $target_version]) ;;
|
||||
esac
|
||||
# Function to output the classfile version of a file (8th byte) in decimal.
|
||||
if od -A x < /dev/null >/dev/null 2>/dev/null; then
|
||||
# Use POSIX od.
|
||||
func_classfile_version ()
|
||||
{
|
||||
od -A n -t d1 -j 7 -N 1 "[$]1"
|
||||
}
|
||||
else
|
||||
# Use BSD hexdump.
|
||||
func_classfile_version ()
|
||||
{
|
||||
dd if="[$]1" bs=1 count=1 skip=7 2>/dev/null | hexdump -e '1/1 "%3d "'
|
||||
echo
|
||||
}
|
||||
fi
|
||||
AC_MSG_CHECKING([for Java compiler])
|
||||
dnl
|
||||
dnl The support of Sun/Oracle javac for target-version and source-version:
|
||||
dnl
|
||||
dnl javac 1.8: -target 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 default: 1.8
|
||||
dnl -source 1.3 1.4 1.5 1.6 1.7 1.8 default: 1.8
|
||||
dnl -target 1.1/1.2/1.3 only possible with -source 1.3
|
||||
dnl -target 1.4 only possible with -source 1.3/1.4
|
||||
dnl -target 1.5 only possible with -source 1.3/1.4/1.5
|
||||
dnl -target 1.6 only possible with -source 1.3/1.4/1.5/1.6
|
||||
dnl -target 1.7 only possible with -source 1.3/1.4/1.5/1.6/1.7
|
||||
dnl
|
||||
dnl javac 9: -target 1.6 1.7 1.8 9 default: 9
|
||||
dnl -source 1.6 1.7 1.8 9 default: 9
|
||||
dnl -target 1.6 only possible with -source 1.6
|
||||
dnl -target 1.7 only possible with -source 1.6/1.7
|
||||
dnl -target 1.8 only possible with -source 1.6/1.7/1.8
|
||||
dnl
|
||||
dnl javac 10: -target 1.6 1.7 1.8 9 10 default: 10
|
||||
dnl -source 1.6 1.7 1.8 9 10 default: 10
|
||||
dnl -target 1.6 only possible with -source 1.6
|
||||
dnl -target 1.7 only possible with -source 1.6/1.7
|
||||
dnl -target 1.8 only possible with -source 1.6/1.7/1.8
|
||||
dnl -target 9 only possible with -source 1.6/1.7/1.8/9
|
||||
dnl
|
||||
dnl and so on.
|
||||
dnl This can be summarized in this table:
|
||||
dnl
|
||||
dnl javac classfile valid -source and obsolete -source
|
||||
dnl version default version -target values and -target values
|
||||
dnl ------- --------------- ----------------- ------------------
|
||||
dnl 1.8 52.0 1.3 .. 1.8 1.3 .. 1.5
|
||||
dnl 9 53.0 1.6 .. 9 1.6
|
||||
dnl 10 54.0 1.6 .. 10 1.6
|
||||
dnl 11 55.0 1.6 .. 11 1.6
|
||||
dnl 12 56.0 1.7 .. 12 1.7
|
||||
dnl 13 57.0 1.7 .. 13 1.7
|
||||
dnl 14 58.0 1.7 .. 14 1.7
|
||||
dnl 15 59.0 1.7 .. 15 1.7
|
||||
dnl 16 60.0 1.7 .. 16 1.7
|
||||
dnl 17 61.0 1.7 .. 17 1.7
|
||||
dnl 18 62.0 1.7 .. 18 1.7
|
||||
dnl 19 63.0 1.7 .. 19 1.7
|
||||
dnl 20 64.0 1.8 .. 20 1.8
|
||||
dnl
|
||||
dnl The -source option value must be <= the -target option value.
|
||||
dnl The minimal -source and -target option value produces an "is obsolete"
|
||||
dnl warning (in javac 1.8 or newer). Additionally, if the -source option
|
||||
dnl value is not the maximal possible one, i.e. not redundant, it produces a
|
||||
dnl "bootstrap class path not set in conjunction with -source ..." warning
|
||||
dnl (in javac 1.7 or newer).
|
||||
dnl
|
||||
dnl To get rid of these warnings, two options are available:
|
||||
dnl * -nowarn. This option is supported since javac 1.6 at least. But
|
||||
dnl it is overkill, because it would also silence warnings about the
|
||||
dnl code being compiled.
|
||||
dnl * -Xlint:-options. This option is supported since javac 1.6 at least.
|
||||
dnl In javac 1.6 it is an undocumented no-op.
|
||||
dnl We use -Xlint:-options and omit it only if we find that the compiler
|
||||
dnl does not support it (which is unlikely).
|
||||
dnl
|
||||
dnl Canonicalize source_version and target_version, for easier arithmetic.
|
||||
case "$source_version" in
|
||||
1.*) source_version=`echo "$source_version" | sed -e 's/^1\.//'` ;;
|
||||
esac
|
||||
case "$target_version" in
|
||||
1.*) target_version=`echo "$target_version" | sed -e 's/^1\.//'` ;;
|
||||
esac
|
||||
CONF_JAVAC=
|
||||
HAVE_JAVAC_ENVVAR=
|
||||
HAVE_JAVAC=
|
||||
HAVE_JAVACOMP=
|
||||
dnl Sanity check.
|
||||
if expr $source_version '<=' $target_version >/dev/null; then
|
||||
echo 'class conftest {}' > conftest.java
|
||||
dnl If the user has set the JAVAC environment variable, use that, if it
|
||||
dnl satisfies the constraints (possibly after adding -target and -source
|
||||
dnl options).
|
||||
if test -n "$JAVAC"; then
|
||||
dnl Test whether $JAVAC is usable.
|
||||
dnl At the same time, determine which option to use to inhibit warnings;
|
||||
dnl see the discussion above.
|
||||
nowarn_option=' -Xlint:-options'
|
||||
if { rm -f conftest.class \
|
||||
&& { echo "$as_me:__oline__: $JAVAC$nowarn_option -d . conftest.java" >&AS_MESSAGE_LOG_FD
|
||||
$JAVAC$nowarn_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1
|
||||
} \
|
||||
&& test -f conftest.class
|
||||
} || { \
|
||||
nowarn_option=
|
||||
rm -f conftest.class \
|
||||
&& { echo "$as_me:__oline__: $JAVAC$nowarn_option -d . conftest.java" >&AS_MESSAGE_LOG_FD
|
||||
$JAVAC$nowarn_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1
|
||||
} \
|
||||
&& test -f conftest.class
|
||||
}; then
|
||||
compiler_cfversion=`func_classfile_version conftest.class`
|
||||
compiler_target_version=`expr $compiler_cfversion - 44`
|
||||
dnl It is hard to determine the compiler_source_version. This would
|
||||
dnl require a list of code snippets that can be compiled only with a
|
||||
dnl specific '-source' option and up, and this list would need to grow
|
||||
dnl every 6 months.
|
||||
dnl Also, $JAVAC may already include a '-source' option.
|
||||
dnl Therefore, pass a '-source' option always.
|
||||
source_option=' -source '`case "$source_version" in 6|7|8) echo 1. ;; esac`"$source_version"
|
||||
dnl And pass a '-target' option as well, if needed.
|
||||
dnl (All supported javac versions support both, see the table above.)
|
||||
if expr $target_version = $compiler_target_version >/dev/null; then
|
||||
target_option=
|
||||
else
|
||||
target_option=' -target '`case "$target_version" in 6|7|8) echo 1. ;; esac`"$target_version"
|
||||
fi
|
||||
if { echo "$as_me:__oline__: $JAVAC$nowarn_option$source_option$target_option -d . conftest.java" >&AS_MESSAGE_LOG_FD
|
||||
$JAVAC$nowarn_option$source_option$target_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1
|
||||
} \
|
||||
&& test -f conftest.class; then
|
||||
dnl The compiler directly supports the desired source_version and
|
||||
dnl target_version. Perfect.
|
||||
CONF_JAVAC="$JAVAC$nowarn_option$source_option$target_option"
|
||||
HAVE_JAVAC_ENVVAR=1
|
||||
HAVE_JAVACOMP=1
|
||||
else
|
||||
dnl If the desired source_version or target_version were too large
|
||||
dnl for the compiler, there's nothing else we can do.
|
||||
compiler_version=`echo "$as_me:__oline__: $JAVAC -version | sed -e 1q" >&AS_MESSAGE_LOG_FD
|
||||
$JAVAC -version | sed -e 1q`
|
||||
changequote(,)dnl
|
||||
compiler_version=`echo "$compiler_version" | sed -e 's/^[^0-9]*\([0-9][0-9.]*\).*/\1/'`
|
||||
changequote([,])dnl
|
||||
case "$compiler_version" in
|
||||
1.*) dnl Map 1.8.0_151 to 8.
|
||||
compiler_version=`echo "$compiler_version" | sed -e 's/^1\.//' -e 's/\..*//'`
|
||||
;;
|
||||
*) dnl Map 9.0.4 to 9, 10.0.2 to 10, etc.
|
||||
compiler_version=`echo "$compiler_version" | sed -e 's/\..*//'`
|
||||
;;
|
||||
esac
|
||||
if expr $source_version '<=' "$compiler_version" >/dev/null \
|
||||
&& expr $target_version '<=' "$compiler_version" >/dev/null; then
|
||||
dnl Increase $source_version and $compiler_version until the
|
||||
dnl compiler accepts these values. This is necessary to make
|
||||
dnl e.g. $source_version = 6 work with Java 12 or newer, or
|
||||
dnl $source_version = 7 work with Java 20 or newer.
|
||||
try_source_version="$source_version"
|
||||
try_target_version="$target_version"
|
||||
while true; do
|
||||
dnl Invariant: $try_source_version <= $try_target_version.
|
||||
if expr $try_source_version = $try_target_version >/dev/null; then
|
||||
try_target_version=`expr $try_target_version + 1`
|
||||
fi
|
||||
try_source_version=`expr $try_source_version + 1`
|
||||
expr $try_source_version '<=' $compiler_version >/dev/null || break
|
||||
source_option=' -source '`case "$try_source_version" in 8) echo 1. ;; esac`"$try_source_version"
|
||||
if expr $try_target_version = $compiler_target_version >/dev/null; then
|
||||
target_option=
|
||||
else
|
||||
target_option=' -target '`case "$try_target_version" in 8) echo 1. ;; esac`"$try_target_version"
|
||||
fi
|
||||
if { echo "$as_me:__oline__: $JAVAC$nowarn_option$source_option$target_option -d . conftest.java" >&AS_MESSAGE_LOG_FD
|
||||
$JAVAC$nowarn_option$source_option$target_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1
|
||||
} \
|
||||
&& test -f conftest.class; then
|
||||
dnl The compiler supports the try_source_version and
|
||||
dnl try_target_version. It's better than nothing.
|
||||
CONF_JAVAC="$JAVAC$nowarn_option$source_option$target_option"
|
||||
HAVE_JAVAC_ENVVAR=1
|
||||
HAVE_JAVACOMP=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test -z "$HAVE_JAVACOMP"; then
|
||||
pushdef([AC_MSG_CHECKING],[:])dnl
|
||||
pushdef([AC_CHECKING],[:])dnl
|
||||
pushdef([AC_MSG_RESULT],[:])dnl
|
||||
AC_CHECK_PROG([HAVE_JAVAC_IN_PATH], [javac], [yes])
|
||||
popdef([AC_MSG_RESULT])dnl
|
||||
popdef([AC_CHECKING])dnl
|
||||
popdef([AC_MSG_CHECKING])dnl
|
||||
if test -z "$HAVE_JAVACOMP" && test -n "$HAVE_JAVAC_IN_PATH"; then
|
||||
dnl Test whether javac is usable.
|
||||
dnl At the same time, determine which option to use to inhibit warnings;
|
||||
dnl see the discussion above.
|
||||
nowarn_option=' -Xlint:-options'
|
||||
if { rm -f conftest.class \
|
||||
&& { echo "$as_me:__oline__: javac$nowarn_option -d . conftest.java" >&AS_MESSAGE_LOG_FD
|
||||
javac$nowarn_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1
|
||||
} \
|
||||
&& test -f conftest.class
|
||||
} || { \
|
||||
nowarn_option=
|
||||
rm -f conftest.class \
|
||||
&& { echo "$as_me:__oline__: javac$nowarn_option -d . conftest.java" >&AS_MESSAGE_LOG_FD
|
||||
javac$nowarn_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1
|
||||
} \
|
||||
&& test -f conftest.class
|
||||
}; then
|
||||
compiler_cfversion=`func_classfile_version conftest.class`
|
||||
compiler_target_version=`expr $compiler_cfversion - 44`
|
||||
dnl It is hard to determine the compiler_source_version. This would
|
||||
dnl require a list of code snippets that can be compiled only with a
|
||||
dnl specific '-source' option and up, and this list would need to grow
|
||||
dnl every 6 months.
|
||||
dnl Also, javac may point to a shell script that already includes a
|
||||
dnl '-source' option.
|
||||
dnl Therefore, pass a '-source' option always.
|
||||
source_option=' -source '`case "$source_version" in 8) echo 1. ;; esac`"$source_version"
|
||||
dnl And pass a '-target' option as well, if needed.
|
||||
dnl (All supported javac versions support both, see the table above.)
|
||||
if expr $target_version = $compiler_target_version >/dev/null; then
|
||||
target_option=
|
||||
else
|
||||
target_option=' -target '`case "$target_version" in 8) echo 1. ;; esac`"$target_version"
|
||||
fi
|
||||
if { echo "$as_me:__oline__: javac$nowarn_option$source_option$target_option -d . conftest.java" >&AS_MESSAGE_LOG_FD
|
||||
javac$nowarn_option$source_option$target_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1
|
||||
} \
|
||||
&& test -f conftest.class; then
|
||||
dnl The compiler directly supports the desired source_version and
|
||||
dnl target_version. Perfect.
|
||||
CONF_JAVAC="javac$nowarn_option$source_option$target_option"
|
||||
HAVE_JAVAC=1
|
||||
HAVE_JAVACOMP=1
|
||||
else
|
||||
dnl If the desired source_version or target_version were too large
|
||||
dnl for the compiler, there's nothing else we can do.
|
||||
compiler_version=`echo "$as_me:__oline__: javac -version | sed -e 1q" >&AS_MESSAGE_LOG_FD
|
||||
javac -version | sed -e 1q`
|
||||
changequote(,)dnl
|
||||
compiler_version=`echo "$compiler_version" | sed -e 's/^[^0-9]*\([0-9][0-9.]*\).*/\1/'`
|
||||
changequote([,])dnl
|
||||
case "$compiler_version" in
|
||||
1.*) dnl Map 1.8.0_151 to 8.
|
||||
compiler_version=`echo "$compiler_version" | sed -e 's/^1\.//' -e 's/\..*//'`
|
||||
;;
|
||||
*) dnl Map 9.0.4 to 9, 10.0.2 to 10, etc.
|
||||
compiler_version=`echo "$compiler_version" | sed -e 's/\..*//'`
|
||||
;;
|
||||
esac
|
||||
if expr $source_version '<=' "$compiler_version" >/dev/null \
|
||||
&& expr $target_version '<=' "$compiler_version" >/dev/null; then
|
||||
dnl Increase $source_version and $compiler_version until the
|
||||
dnl compiler accepts these values. This is necessary to make
|
||||
dnl e.g. $source_version = 6 work with Java 12 or newer, or
|
||||
dnl $source_version = 7 work with Java 20 or newer.
|
||||
try_source_version="$source_version"
|
||||
try_target_version="$target_version"
|
||||
while true; do
|
||||
dnl Invariant: $try_source_version <= $try_target_version.
|
||||
if expr $try_source_version = $try_target_version >/dev/null; then
|
||||
try_target_version=`expr $try_target_version + 1`
|
||||
fi
|
||||
try_source_version=`expr $try_source_version + 1`
|
||||
expr $try_source_version '<=' $compiler_version >/dev/null || break
|
||||
source_option=' -source '`case "$try_source_version" in 8) echo 1. ;; esac`"$try_source_version"
|
||||
if expr $try_target_version = $compiler_target_version >/dev/null; then
|
||||
target_option=
|
||||
else
|
||||
target_option=' -target '`case "$try_target_version" in 8) echo 1. ;; esac`"$try_target_version"
|
||||
fi
|
||||
if { echo "$as_me:__oline__: javac$nowarn_option$source_option$target_option -d . conftest.java" >&AS_MESSAGE_LOG_FD
|
||||
javac$nowarn_option$source_option$target_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1
|
||||
} \
|
||||
&& test -f conftest.class; then
|
||||
dnl The compiler supports the try_source_version and
|
||||
dnl try_target_version. It's better than nothing.
|
||||
CONF_JAVAC="javac$nowarn_option$source_option$target_option"
|
||||
HAVE_JAVAC=1
|
||||
HAVE_JAVACOMP=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
rm -f conftest*.java conftest*.class
|
||||
fi
|
||||
if test -n "$HAVE_JAVACOMP"; then
|
||||
ac_result="$CONF_JAVAC"
|
||||
else
|
||||
ac_result="no"
|
||||
fi
|
||||
AC_MSG_RESULT([$ac_result])
|
||||
AC_SUBST([CONF_JAVAC])
|
||||
AC_SUBST([CLASSPATH])
|
||||
AC_SUBST([CLASSPATH_SEPARATOR])
|
||||
AC_SUBST([HAVE_JAVAC_ENVVAR])
|
||||
AC_SUBST([HAVE_JAVAC])
|
||||
])
|
||||
|
||||
# Simulates gt_JAVACOMP when no Java support is desired.
|
||||
AC_DEFUN([gt_JAVACOMP_DISABLED],
|
||||
[
|
||||
CONF_JAVAC=
|
||||
HAVE_JAVAC_ENVVAR=
|
||||
HAVE_JAVAC=
|
||||
AC_SUBST([CONF_JAVAC])
|
||||
AC_SUBST([HAVE_JAVAC_ENVVAR])
|
||||
AC_SUBST([HAVE_JAVAC])
|
||||
])
|
||||
@@ -0,0 +1,54 @@
|
||||
#!/bin/sh
|
||||
# Compile a Java program.
|
||||
|
||||
# Copyright (C) 2001-2026 Free Software Foundation, Inc.
|
||||
# Written by Bruno Haible <haible@clisp.cons.org>, 2001.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# This uses the same choices as javacomp.c, but instead of relying on the
|
||||
# environment settings at run time, it uses the environment variables
|
||||
# present at configuration time.
|
||||
#
|
||||
# This is a separate shell script, because it must be able to unset JAVA_HOME
|
||||
# in some cases, which a simple shell command cannot do.
|
||||
#
|
||||
# The extra CLASSPATH must have been set prior to calling this script.
|
||||
# Options that can be passed are -O, -g and "-d DIRECTORY".
|
||||
|
||||
CONF_JAVAC='@CONF_JAVAC@'
|
||||
CONF_CLASSPATH='@CLASSPATH@'
|
||||
if test -n "@HAVE_JAVAC_ENVVAR@"; then
|
||||
# Combine given CLASSPATH and configured CLASSPATH.
|
||||
if test -n "$CLASSPATH"; then
|
||||
CLASSPATH="$CLASSPATH${CONF_CLASSPATH:+@CLASSPATH_SEPARATOR@$CONF_CLASSPATH}"
|
||||
else
|
||||
CLASSPATH="$CONF_CLASSPATH"
|
||||
fi
|
||||
export CLASSPATH
|
||||
test -z "$JAVA_VERBOSE" || echo "$CONF_JAVAC $@" 1>&2
|
||||
exec $CONF_JAVAC "$@"
|
||||
else
|
||||
unset JAVA_HOME
|
||||
if test -n "@HAVE_JAVAC@"; then
|
||||
# In this case, $CONF_JAVAC starts with "javac".
|
||||
CLASSPATH="$CLASSPATH"
|
||||
export CLASSPATH
|
||||
test -z "$JAVA_VERBOSE" || echo "$CONF_JAVAC $@" 1>&2
|
||||
exec $CONF_JAVAC "$@"
|
||||
else
|
||||
echo 'Java compiler not found, try setting $JAVAC, then reconfigure' 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,93 @@
|
||||
# javaexec.m4
|
||||
# serial 11
|
||||
dnl Copyright (C) 2001-2003, 2006, 2009-2026 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
dnl This file is offered as-is, without any warranty.
|
||||
|
||||
# Prerequisites of javaexec.sh.
|
||||
# gt_JAVAEXEC or gt_JAVAEXEC(testclass, its-directory)
|
||||
# Sets HAVE_JAVAEXEC to nonempty if javaexec.sh will work.
|
||||
|
||||
AC_DEFUN([gt_JAVAEXEC],
|
||||
[
|
||||
AC_MSG_CHECKING([for Java virtual machine])
|
||||
AC_EGREP_CPP([yes], [
|
||||
#if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
|
||||
yes
|
||||
#endif
|
||||
], CLASSPATH_SEPARATOR=';', CLASSPATH_SEPARATOR=':')
|
||||
CONF_JAVA=
|
||||
HAVE_JAVA_ENVVAR=
|
||||
HAVE_JAVA=
|
||||
HAVE_JRE=
|
||||
HAVE_JAVAEXEC=1
|
||||
if test -n "$JAVA"; then
|
||||
HAVE_JAVA_ENVVAR=1
|
||||
CONF_JAVA="$JAVA"
|
||||
else
|
||||
pushdef([AC_MSG_CHECKING],[:])dnl
|
||||
pushdef([AC_CHECKING],[:])dnl
|
||||
pushdef([AC_MSG_RESULT],[:])dnl
|
||||
AC_CHECK_PROG([HAVE_JAVA_IN_PATH], [java], [yes])
|
||||
AC_CHECK_PROG([HAVE_JRE_IN_PATH], [jre], [yes])
|
||||
popdef([AC_MSG_RESULT])dnl
|
||||
popdef([AC_CHECKING])dnl
|
||||
popdef([AC_MSG_CHECKING])dnl
|
||||
m4_if([$1], , , [
|
||||
gt_saved_CLASSPATH="$CLASSPATH"
|
||||
CLASSPATH="$2"${CLASSPATH+"$CLASSPATH_SEPARATOR$CLASSPATH"}
|
||||
])
|
||||
export CLASSPATH
|
||||
if test -n "$HAVE_JAVA_IN_PATH" \
|
||||
&& java -version >/dev/null 2>/dev/null \
|
||||
m4_if([$1], , , [&& {
|
||||
echo "$as_me:__oline__: java $1" >&AS_MESSAGE_LOG_FD
|
||||
java $1 >&AS_MESSAGE_LOG_FD 2>&1
|
||||
}]); then
|
||||
HAVE_JAVA=1
|
||||
CONF_JAVA="java"
|
||||
else
|
||||
if test -n "$HAVE_JRE_IN_PATH" \
|
||||
&& (jre >/dev/null 2>/dev/null || test $? = 1) \
|
||||
m4_if([$1], , , [&& {
|
||||
echo "$as_me:__oline__: jre $1" >&AS_MESSAGE_LOG_FD
|
||||
jre $1 >&AS_MESSAGE_LOG_FD 2>&1
|
||||
}]); then
|
||||
HAVE_JRE=1
|
||||
CONF_JAVA="jre"
|
||||
else
|
||||
HAVE_JAVAEXEC=
|
||||
fi
|
||||
fi
|
||||
m4_if([$1], , , [
|
||||
CLASSPATH="$gt_saved_CLASSPATH"
|
||||
])
|
||||
fi
|
||||
if test -n "$HAVE_JAVAEXEC"; then
|
||||
ac_result="$CONF_JAVA"
|
||||
else
|
||||
ac_result="no"
|
||||
fi
|
||||
AC_MSG_RESULT([$ac_result])
|
||||
AC_SUBST([CONF_JAVA])
|
||||
AC_SUBST([CLASSPATH])
|
||||
AC_SUBST([CLASSPATH_SEPARATOR])
|
||||
AC_SUBST([HAVE_JAVA_ENVVAR])
|
||||
AC_SUBST([HAVE_JAVA])
|
||||
AC_SUBST([HAVE_JRE])
|
||||
])
|
||||
|
||||
# Simulates gt_JAVAEXEC when no Java support is desired.
|
||||
AC_DEFUN([gt_JAVAEXEC_DISABLED],
|
||||
[
|
||||
CONF_JAVA=
|
||||
HAVE_JAVA_ENVVAR=
|
||||
HAVE_JAVA=
|
||||
HAVE_JRE=
|
||||
AC_SUBST([CONF_JAVA])
|
||||
AC_SUBST([HAVE_JAVA_ENVVAR])
|
||||
AC_SUBST([HAVE_JAVA])
|
||||
AC_SUBST([HAVE_JRE])
|
||||
])
|
||||
@@ -0,0 +1,58 @@
|
||||
#!/bin/sh
|
||||
# Execute a Java program.
|
||||
|
||||
# Copyright (C) 2001-2026 Free Software Foundation, Inc.
|
||||
# Written by Bruno Haible <haible@clisp.cons.org>, 2001.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# This uses the same choices as javaexec.c, but instead of relying on the
|
||||
# environment settings at run time, it uses the environment variables
|
||||
# present at configuration time.
|
||||
#
|
||||
# This is a separate shell script, because it must be able to unset JAVA_HOME
|
||||
# in some cases, which a simple shell command cannot do.
|
||||
#
|
||||
# The extra CLASSPATH must have been set prior to calling this script.
|
||||
|
||||
CONF_JAVA='@CONF_JAVA@'
|
||||
CONF_CLASSPATH='@CLASSPATH@'
|
||||
if test -n "@HAVE_JAVA_ENVVAR@"; then
|
||||
# Combine given CLASSPATH and configured CLASSPATH.
|
||||
if test -n "$CLASSPATH"; then
|
||||
CLASSPATH="$CLASSPATH${CONF_CLASSPATH:+@CLASSPATH_SEPARATOR@$CONF_CLASSPATH}"
|
||||
else
|
||||
CLASSPATH="$CONF_CLASSPATH"
|
||||
fi
|
||||
export CLASSPATH
|
||||
test -z "$JAVA_VERBOSE" || echo "$CONF_JAVA $@" 1>&2
|
||||
exec $CONF_JAVA "$@"
|
||||
else
|
||||
unset JAVA_HOME
|
||||
export CLASSPATH
|
||||
if test -n "@HAVE_JAVA@"; then
|
||||
# In this case, $CONF_JAVA is "java".
|
||||
test -z "$JAVA_VERBOSE" || echo "$CONF_JAVA $@" 1>&2
|
||||
exec $CONF_JAVA "$@"
|
||||
else
|
||||
if test -n "@HAVE_JRE@"; then
|
||||
# In this case, $CONF_JAVA is "jre".
|
||||
test -z "$JAVA_VERBOSE" || echo "$CONF_JAVA $@" 1>&2
|
||||
exec $CONF_JAVA "$@"
|
||||
else
|
||||
echo 'Java virtual machine not found, try setting $JAVA, then reconfigure' 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,34 @@
|
||||
# modula2comp.m4
|
||||
# serial 1
|
||||
dnl Copyright (C) 2025-2026 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
dnl This file is offered as-is, without any warranty.
|
||||
|
||||
# Checks for a Modula-2 implementation.
|
||||
# Sets M2C and M2FLAGS (options that can be used with "$M2C").
|
||||
AC_DEFUN([gt_MODULA2COMP],
|
||||
[
|
||||
AC_MSG_CHECKING([for GNU Modula-2 compiler])
|
||||
pushdef([AC_MSG_CHECKING],[:])dnl
|
||||
pushdef([AC_CHECKING],[:])dnl
|
||||
pushdef([AC_MSG_RESULT],[:])dnl
|
||||
AC_ARG_VAR([M2C], [Modula-2 compiler command])
|
||||
AC_ARG_VAR([M2FLAGS], [Modula-2 compiler options])
|
||||
AC_CHECK_TOOLS([M2C], [gm2])
|
||||
popdef([AC_MSG_RESULT])dnl
|
||||
popdef([AC_CHECKING])dnl
|
||||
popdef([AC_MSG_CHECKING])dnl
|
||||
if test -n "$M2C"; then
|
||||
ac_result="$M2C"
|
||||
else
|
||||
ac_result="no"
|
||||
fi
|
||||
AC_MSG_RESULT([$ac_result])
|
||||
AC_SUBST([M2C])
|
||||
if test -z "$M2FLAGS" && test -n "$M2C"; then
|
||||
M2FLAGS="-g -O2"
|
||||
fi
|
||||
AC_SUBST([M2FLAGS])
|
||||
])
|
||||
@@ -0,0 +1,19 @@
|
||||
This example relies on:
|
||||
- the GNOME libraries (libgnomeui, libgnome, libgnomesupport, libart_lgpl)
|
||||
and their dependencies: imlib (libgdk_imlib), audiofile (libaudiofile),
|
||||
esound (libesd), zlib (libz).
|
||||
- the GTK libraries (libgtk, libgdk)
|
||||
- the glib libraries (libglib, libgmodule)
|
||||
- the X11 libraries
|
||||
- the GTK / C++ bindings (libgtkmm, libgdkmm)
|
||||
- the C++ signal/slot library (libsigc++)
|
||||
- the C++ runtime libraries (libstdc++)
|
||||
|
||||
Installation:
|
||||
./autogen.sh
|
||||
./configure --prefix=/some/prefix
|
||||
make
|
||||
make install
|
||||
Cleanup:
|
||||
make distclean
|
||||
./autoclean.sh
|
||||
@@ -0,0 +1,29 @@
|
||||
# Example for use of GNU gettext.
|
||||
# This file is in the public domain.
|
||||
#
|
||||
# Makefile configuration - processed by automake.
|
||||
|
||||
# General automake options.
|
||||
AUTOMAKE_OPTIONS = foreign no-dependencies
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
# The list of subdirectories containing Makefiles.
|
||||
SUBDIRS = m4 po
|
||||
|
||||
# The list of programs that are built.
|
||||
bin_PROGRAMS = hello
|
||||
|
||||
# The source files of the 'hello' program.
|
||||
hello_SOURCES = hello.cc
|
||||
|
||||
# Define a C macro LOCALEDIR indicating where catalogs will be installed.
|
||||
DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
|
||||
|
||||
# Make sure the gnome.h include file is found.
|
||||
AM_CPPFLAGS = $(GTKMM_CFLAGS) $(GNOME_INCLUDEDIR)
|
||||
|
||||
# Link time dependencies.
|
||||
LDADD = $(GTKMM_LIBS) $(GNOME_LIBDIR) $(GNOMEUI_LIBS) @LIBINTL@
|
||||
|
||||
# Additional files to be distributed.
|
||||
EXTRA_DIST = autogen.sh autoclean.sh
|
||||
@@ -0,0 +1,44 @@
|
||||
#!/bin/sh
|
||||
# Example for use of GNU gettext.
|
||||
# This file is in the public domain.
|
||||
#
|
||||
# Script for cleaning all autogenerated files.
|
||||
|
||||
test ! -f Makefile || make distclean
|
||||
rm -rf autom4te.cache
|
||||
|
||||
# Brought in by autopoint.
|
||||
rm -f ABOUT-NLS
|
||||
rm -f config.rpath
|
||||
rm -f m4/gettext.m4
|
||||
rm -f m4/build-to-host.m4
|
||||
rm -f m4/host-cpu-c-abi.m4
|
||||
rm -f m4/iconv.m4
|
||||
rm -f m4/intlmacosx.m4
|
||||
rm -f m4/lib-ld.m4
|
||||
rm -f m4/lib-link.m4
|
||||
rm -f m4/lib-prefix.m4
|
||||
rm -f m4/nls.m4
|
||||
rm -f m4/po.m4
|
||||
rm -f m4/progtest.m4
|
||||
rm -f po/Makefile.in.in
|
||||
rm -f po/fetch-po
|
||||
rm -f po/remove-potcdate.sed
|
||||
|
||||
# Generated by aclocal.
|
||||
rm -f aclocal.m4
|
||||
|
||||
# Generated by autoconf.
|
||||
rm -f configure
|
||||
|
||||
# Generated or brought in by automake.
|
||||
rm -f Makefile.in
|
||||
rm -f m4/Makefile.in
|
||||
rm -f compile
|
||||
rm -f install-sh
|
||||
rm -f missing
|
||||
rm -f config.guess
|
||||
rm -f config.sub
|
||||
rm -f po/*.pot
|
||||
rm -f po/stamp-po
|
||||
rm -f po/*.gmo
|
||||
@@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
# Example for use of GNU gettext.
|
||||
# This file is in the public domain.
|
||||
#
|
||||
# Script for regenerating all autogenerated files.
|
||||
|
||||
autopoint -f # was: gettextize -f -c
|
||||
rm po/Makevars.template
|
||||
rm po/Rules-quot
|
||||
rm po/boldquot.sed
|
||||
rm po/en@boldquot.header
|
||||
rm po/en@quot.header
|
||||
rm po/insert-header.sed
|
||||
rm po/quot.sed
|
||||
|
||||
aclocal -I m4
|
||||
|
||||
autoconf
|
||||
|
||||
automake -a -c
|
||||
|
||||
cd po
|
||||
for f in *.po; do
|
||||
if test -r "$f"; then
|
||||
lang=`echo $f | sed -e 's,\.po$,,'`
|
||||
msgfmt -c -o $lang.gmo $lang.po
|
||||
fi
|
||||
done
|
||||
cd ..
|
||||
@@ -0,0 +1,24 @@
|
||||
dnl Example for use of GNU gettext.
|
||||
dnl This file is in the public domain.
|
||||
dnl
|
||||
dnl Configuration file - processed by autoconf.
|
||||
|
||||
AC_INIT([hello-c++-gnome2], [0], , [hello-c++-gnome2])
|
||||
AC_CONFIG_SRCDIR([hello.cc])
|
||||
AM_INIT_AUTOMAKE([1.11])
|
||||
|
||||
AC_PROG_CXX
|
||||
|
||||
GNOME_INIT
|
||||
GTKMM_CFLAGS=`gtkmm-config --cflags`
|
||||
AC_SUBST([GTKMM_CFLAGS])
|
||||
GTKMM_LIBS=`gtkmm-config --libs`
|
||||
AC_SUBST([GTKMM_LIBS])
|
||||
|
||||
AM_GNU_GETTEXT([external])
|
||||
AM_GNU_GETTEXT_VERSION([1.0])
|
||||
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_CONFIG_FILES([m4/Makefile])
|
||||
AC_CONFIG_FILES([po/Makefile.in])
|
||||
AC_OUTPUT
|
||||
@@ -0,0 +1,92 @@
|
||||
/* Example for use of GNU gettext.
|
||||
This file is in the public domain.
|
||||
|
||||
Source code of the C++ program. */
|
||||
|
||||
|
||||
/* Get GNOME declarations. */
|
||||
#include <gnome.h>
|
||||
#include <gtk--.h>
|
||||
|
||||
/* Get getpid() declaration. */
|
||||
#if defined _WIN32 && !defined __CYGWIN__
|
||||
/* native Windows API */
|
||||
# include <process.h>
|
||||
# define getpid _getpid
|
||||
#else
|
||||
/* POSIX API */
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
static Gtk::Main *application;
|
||||
|
||||
static gint
|
||||
quit_callback (GdkEventAny*)
|
||||
{
|
||||
application->quit ();
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
Gtk::Window *window;
|
||||
Gtk::VBox *panel;
|
||||
Gtk::Label *label1;
|
||||
Gtk::Alignment *label1aligned;
|
||||
Gtk::Label *label2;
|
||||
Gtk::Alignment *label2aligned;
|
||||
Gtk::Button *button;
|
||||
Gtk::HButtonBox *buttonbar;
|
||||
|
||||
/* Initializations. */
|
||||
|
||||
setlocale (LC_ALL, "");
|
||||
application = new Gtk::Main (argc, argv);
|
||||
textdomain ("hello-c++-gnome2");
|
||||
bindtextdomain ("hello-c++-gnome2", LOCALEDIR);
|
||||
|
||||
/* Create the GUI elements. */
|
||||
|
||||
window = new Gtk::Window (GTK_WINDOW_TOPLEVEL);
|
||||
window->set_title ("Hello example");
|
||||
window->realize ();
|
||||
window->delete_event.connect (SigC::slot (quit_callback));
|
||||
|
||||
label1 = new Gtk::Label (_("Hello, world!"));
|
||||
|
||||
label1aligned = new Gtk::Alignment (0.0, 0.5, 0, 0);
|
||||
label1aligned->add (*label1);
|
||||
|
||||
label2 = new Gtk::Label (g_strdup_printf (_("This program is running as process number %d."), getpid ()));
|
||||
|
||||
label2aligned = new Gtk::Alignment (0.0, 0.5, 0, 0);
|
||||
label2aligned->add (*label2);
|
||||
|
||||
button = new Gtk::Button ("OK");
|
||||
button->clicked.connect (Gtk::Main::quit.slot()); //slot (quit_callback));
|
||||
|
||||
buttonbar = new Gtk::HButtonBox (GTK_BUTTONBOX_END);
|
||||
buttonbar->pack_start (*button);
|
||||
|
||||
panel = new Gtk::VBox (false, GNOME_PAD_SMALL);
|
||||
panel->pack_start (*label1aligned);
|
||||
panel->pack_start (*label2aligned);
|
||||
panel->pack_start (*buttonbar);
|
||||
|
||||
window->add (*panel);
|
||||
|
||||
/* Make the GUI elements visible. */
|
||||
|
||||
label1->show ();
|
||||
label1aligned->show ();
|
||||
label2->show ();
|
||||
label2aligned->show ();
|
||||
button->show ();
|
||||
buttonbar->show ();
|
||||
panel->show ();
|
||||
window->show ();
|
||||
|
||||
/* Start the event loop. */
|
||||
|
||||
application->run ();
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
EXTRA_DIST = \
|
||||
gettext.m4 build-to-host.m4 host-cpu-c-abi.m4 \
|
||||
iconv.m4 intlmacosx.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
|
||||
nls.m4 po.m4 progtest.m4 \
|
||||
gnome.m4 gnome-gnorba-check.m4 gnome-orbit-check.m4 \
|
||||
gtk.m4 gtk--.m4
|
||||
@@ -0,0 +1,35 @@
|
||||
dnl
|
||||
dnl GNOME_GNORBA_HOOK (script-if-gnorba-found, failflag)
|
||||
dnl
|
||||
dnl if failflag is "failure" it aborts if gnorba is not found.
|
||||
dnl
|
||||
|
||||
AC_DEFUN([GNOME_GNORBA_HOOK],[
|
||||
GNOME_ORBIT_HOOK([],$2)
|
||||
AC_CACHE_CHECK([for gnorba libraries],gnome_cv_gnorba_found,[
|
||||
gnome_cv_gnorba_found=no
|
||||
if test x$gnome_cv_orbit_found = xyes; then
|
||||
GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`"
|
||||
GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`"
|
||||
if test -n "$GNORBA_LIBS"; then
|
||||
gnome_cv_gnorba_found=yes
|
||||
fi
|
||||
fi
|
||||
])
|
||||
AM_CONDITIONAL(HAVE_GNORBA, test x$gnome_cv_gnorba_found = xyes)
|
||||
if test x$gnome_cv_orbit_found = xyes; then
|
||||
$1
|
||||
GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`"
|
||||
GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`"
|
||||
AC_SUBST(GNORBA_CFLAGS)
|
||||
AC_SUBST(GNORBA_LIBS)
|
||||
else
|
||||
if test x$2 = xfailure; then
|
||||
AC_MSG_ERROR(gnorba library not installed or installation problem)
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([GNOME_GNORBA_CHECK], [
|
||||
GNOME_GNORBA_HOOK([],failure)
|
||||
])
|
||||
@@ -0,0 +1,33 @@
|
||||
dnl
|
||||
dnl GNOME_ORBIT_HOOK (script-if-orbit-found, failflag)
|
||||
dnl
|
||||
dnl if failflag is "failure" it aborts if orbit is not found.
|
||||
dnl
|
||||
|
||||
AC_DEFUN([GNOME_ORBIT_HOOK],[
|
||||
AC_PATH_PROG(ORBIT_CONFIG,orbit-config,no)
|
||||
AC_PATH_PROG(ORBIT_IDL,orbit-idl,no)
|
||||
AC_CACHE_CHECK([for working ORBit environment],gnome_cv_orbit_found,[
|
||||
if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then
|
||||
gnome_cv_orbit_found=no
|
||||
else
|
||||
gnome_cv_orbit_found=yes
|
||||
fi
|
||||
])
|
||||
AM_CONDITIONAL(HAVE_ORBIT, test x$gnome_cv_orbit_found = xyes)
|
||||
if test x$gnome_cv_orbit_found = xyes; then
|
||||
$1
|
||||
ORBIT_CFLAGS=`orbit-config --cflags client server`
|
||||
ORBIT_LIBS=`orbit-config --use-service=name --libs client server`
|
||||
AC_SUBST(ORBIT_CFLAGS)
|
||||
AC_SUBST(ORBIT_LIBS)
|
||||
else
|
||||
if test x$2 = xfailure; then
|
||||
AC_MSG_ERROR(ORBit not installed or installation problem)
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([GNOME_ORBIT_CHECK], [
|
||||
GNOME_ORBIT_HOOK([],failure)
|
||||
])
|
||||
@@ -0,0 +1,128 @@
|
||||
dnl
|
||||
dnl GNOME_INIT_HOOK (script-if-gnome-enabled, [failflag], [additional-inits])
|
||||
dnl
|
||||
dnl if failflag is "fail" then GNOME_INIT_HOOK will abort if gnomeConf.sh
|
||||
dnl is not found.
|
||||
dnl
|
||||
|
||||
AC_DEFUN([GNOME_INIT_HOOK],[
|
||||
AC_SUBST(GNOME_LIBS)
|
||||
AC_SUBST(GNOMEUI_LIBS)
|
||||
AC_SUBST(GNOMEGNORBA_LIBS)
|
||||
AC_SUBST(GTKXMHTML_LIBS)
|
||||
AC_SUBST(ZVT_LIBS)
|
||||
AC_SUBST(GNOME_LIBDIR)
|
||||
AC_SUBST(GNOME_INCLUDEDIR)
|
||||
|
||||
AC_ARG_WITH(gnome-includes,
|
||||
[ --with-gnome-includes Specify location of GNOME headers],[
|
||||
CFLAGS="$CFLAGS -I$withval"
|
||||
])
|
||||
|
||||
AC_ARG_WITH(gnome-libs,
|
||||
[ --with-gnome-libs Specify location of GNOME libs],[
|
||||
LDFLAGS="$LDFLAGS -L$withval"
|
||||
gnome_prefix=$withval
|
||||
])
|
||||
|
||||
AC_ARG_WITH(gnome,
|
||||
[ --with-gnome Specify prefix for GNOME files],
|
||||
if test x$withval = xyes; then
|
||||
want_gnome=yes
|
||||
dnl Note that an empty true branch is not
|
||||
dnl valid sh syntax.
|
||||
ifelse([$1], [], :, [$1])
|
||||
else
|
||||
if test "x$withval" = xno; then
|
||||
want_gnome=no
|
||||
else
|
||||
want_gnome=yes
|
||||
LDFLAGS="$LDFLAGS -L$withval/lib"
|
||||
CFLAGS="$CFLAGS -I$withval/include"
|
||||
gnome_prefix=$withval/lib
|
||||
fi
|
||||
fi,
|
||||
want_gnome=yes)
|
||||
|
||||
if test "x$want_gnome" = xyes; then
|
||||
|
||||
AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
|
||||
if test "$GNOME_CONFIG" = "no"; then
|
||||
no_gnome_config="yes"
|
||||
else
|
||||
AC_MSG_CHECKING(if $GNOME_CONFIG works)
|
||||
if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
|
||||
AC_MSG_RESULT(yes)
|
||||
GNOME_GNORBA_HOOK([],$2)
|
||||
GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`"
|
||||
GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`"
|
||||
GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`"
|
||||
GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`"
|
||||
ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`"
|
||||
GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
|
||||
GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
|
||||
$1
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
no_gnome_config="yes"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test x$exec_prefix = xNONE; then
|
||||
if test x$prefix = xNONE; then
|
||||
gnome_prefix=$ac_default_prefix/lib
|
||||
else
|
||||
gnome_prefix=$prefix/lib
|
||||
fi
|
||||
else
|
||||
gnome_prefix=`eval echo \`echo $libdir\``
|
||||
fi
|
||||
|
||||
if test "$no_gnome_config" = "yes"; then
|
||||
AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
|
||||
if test -f $gnome_prefix/gnomeConf.sh; then
|
||||
AC_MSG_RESULT(found)
|
||||
echo "loading gnome configuration from" \
|
||||
"$gnome_prefix/gnomeConf.sh"
|
||||
. $gnome_prefix/gnomeConf.sh
|
||||
$1
|
||||
else
|
||||
AC_MSG_RESULT(not found)
|
||||
if test x$2 = xfail; then
|
||||
AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$3"; then
|
||||
n="$3"
|
||||
for i in $n; do
|
||||
AC_MSG_CHECKING(extra library \"$i\")
|
||||
case $i in
|
||||
applets)
|
||||
AC_SUBST(GNOME_APPLETS_LIBS)
|
||||
GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets`
|
||||
AC_MSG_RESULT($GNOME_APPLETS_LIBS);;
|
||||
docklets)
|
||||
AC_SUBST(GNOME_DOCKLETS_LIBS)
|
||||
GNOME_DOCKLETS_LIBS=`$GNOME_CONFIG --libs-only-l docklets`
|
||||
AC_MSG_RESULT($GNOME_DOCKLETS_LIBS);;
|
||||
capplet)
|
||||
AC_SUBST(GNOME_CAPPLET_LIBS)
|
||||
GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet`
|
||||
AC_MSG_RESULT($GNOME_CAPPLET_LIBS);;
|
||||
*)
|
||||
AC_MSG_RESULT(unknown library)
|
||||
esac
|
||||
done
|
||||
fi
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl GNOME_INIT ([additional-inits])
|
||||
dnl
|
||||
|
||||
AC_DEFUN([GNOME_INIT],[
|
||||
GNOME_INIT_HOOK([],fail,$1)
|
||||
])
|
||||
@@ -0,0 +1,195 @@
|
||||
# Configure paths for GTK--
|
||||
# Erik Andersen 30 May 1998
|
||||
# Modified by Tero Pulkkinen (added the compiler checks... I hope they work..)
|
||||
# Modified by Thomas Langen 16 Jan 2000 (corrected CXXFLAGS)
|
||||
|
||||
dnl Test for GTKMM, and define GTKMM_CFLAGS and GTKMM_LIBS
|
||||
dnl to be used as follows:
|
||||
dnl AM_PATH_GTKMM([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
|
||||
dnl
|
||||
AC_DEFUN([AM_PATH_GTKMM],
|
||||
[dnl
|
||||
dnl Get the cflags and libraries from the gtkmm-config script
|
||||
dnl
|
||||
AC_ARG_WITH(gtkmm-prefix,[ --with-gtkmm-prefix=PREFIX
|
||||
Prefix where GTK-- is installed (optional)],
|
||||
gtkmm_config_prefix="$withval", gtkmm_config_prefix="")
|
||||
AC_ARG_WITH(gtkmm-exec-prefix,[ --with-gtkmm-exec-prefix=PREFIX
|
||||
Exec prefix where GTK-- is installed (optional)],
|
||||
gtkmm_config_exec_prefix="$withval", gtkmm_config_exec_prefix="")
|
||||
AC_ARG_ENABLE(gtkmmtest, [ --disable-gtkmmtest Do not try to compile and run a test GTK-- program],
|
||||
, enable_gtkmmtest=yes)
|
||||
|
||||
if test x$gtkmm_config_exec_prefix != x ; then
|
||||
gtkmm_config_args="$gtkmm_config_args --exec-prefix=$gtkmm_config_exec_prefix"
|
||||
if test x${GTKMM_CONFIG+set} != xset ; then
|
||||
GTKMM_CONFIG=$gtkmm_config_exec_prefix/bin/gtkmm-config
|
||||
fi
|
||||
fi
|
||||
if test x$gtkmm_config_prefix != x ; then
|
||||
gtkmm_config_args="$gtkmm_config_args --prefix=$gtkmm_config_prefix"
|
||||
if test x${GTKMM_CONFIG+set} != xset ; then
|
||||
GTKMM_CONFIG=$gtkmm_config_prefix/bin/gtkmm-config
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_PATH_PROG(GTKMM_CONFIG, gtkmm-config, no)
|
||||
min_gtkmm_version=ifelse([$1], ,0.10.0,$1)
|
||||
|
||||
AC_MSG_CHECKING(for GTK-- - version >= $min_gtkmm_version)
|
||||
AC_LANG_SAVE
|
||||
no_gtkmm=""
|
||||
if test "$GTKMM_CONFIG" = "no" ; then
|
||||
no_gtkmm=yes
|
||||
else
|
||||
AC_LANG_CPLUSPLUS
|
||||
|
||||
GTKMM_CFLAGS=`$GTKMM_CONFIG $gtkmm_config_args --cflags`
|
||||
GTKMM_LIBS=`$GTKMM_CONFIG $gtkmm_config_args --libs`
|
||||
gtkmm_config_major_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
gtkmm_config_minor_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
gtkmm_config_micro_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
if test "x$enable_gtkmmtest" = "xyes" ; then
|
||||
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CXXFLAGS="$CXXFLAGS $GTKMM_CFLAGS"
|
||||
LIBS="$LIBS $GTKMM_LIBS"
|
||||
dnl
|
||||
dnl Now check if the installed GTK-- is sufficiently new. (Also sanity
|
||||
dnl checks the results of gtkmm-config to some extent
|
||||
dnl
|
||||
rm -f conf.gtkmmtest
|
||||
AC_TRY_RUN([
|
||||
#include <gtk--.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int major, minor, micro;
|
||||
char *tmp_version;
|
||||
|
||||
system ("touch conf.gtkmmtest");
|
||||
|
||||
/* HP/UX 0 (%@#!) writes to sscanf strings */
|
||||
tmp_version = g_strdup("$min_gtkmm_version");
|
||||
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
printf("%s, bad version string\n", "$min_gtkmm_version");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((gtkmm_major_version != $gtkmm_config_major_version) ||
|
||||
(gtkmm_minor_version != $gtkmm_config_minor_version) ||
|
||||
(gtkmm_micro_version != $gtkmm_config_micro_version))
|
||||
{
|
||||
printf("\n*** 'gtkmm-config --version' returned %d.%d.%d, but GTK-- (%d.%d.%d)\n",
|
||||
$gtkmm_config_major_version, $gtkmm_config_minor_version, $gtkmm_config_micro_version,
|
||||
gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version);
|
||||
printf ("*** was found! If gtkmm-config was correct, then it is best\n");
|
||||
printf ("*** to remove the old version of GTK--. You may also be able to fix the error\n");
|
||||
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
|
||||
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
|
||||
printf("*** required on your system.\n");
|
||||
printf("*** If gtkmm-config was wrong, set the environment variable GTKMM_CONFIG\n");
|
||||
printf("*** to point to the correct copy of gtkmm-config, and remove the file config.cache\n");
|
||||
printf("*** before re-running configure\n");
|
||||
}
|
||||
/* GTK-- does not have the GTKMM_*_VERSION constants */
|
||||
/*
|
||||
else if ((gtkmm_major_version != GTKMM_MAJOR_VERSION) ||
|
||||
(gtkmm_minor_version != GTKMM_MINOR_VERSION) ||
|
||||
(gtkmm_micro_version != GTKMM_MICRO_VERSION))
|
||||
{
|
||||
printf("*** GTK-- header files (version %d.%d.%d) do not match\n",
|
||||
GTKMM_MAJOR_VERSION, GTKMM_MINOR_VERSION, GTKMM_MICRO_VERSION);
|
||||
printf("*** library (version %d.%d.%d)\n",
|
||||
gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version);
|
||||
}
|
||||
*/
|
||||
else
|
||||
{
|
||||
if ((gtkmm_major_version > major) ||
|
||||
((gtkmm_major_version == major) && (gtkmm_minor_version > minor)) ||
|
||||
((gtkmm_major_version == major) && (gtkmm_minor_version == minor) && (gtkmm_micro_version >= micro)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n*** An old version of GTK-- (%d.%d.%d) was found.\n",
|
||||
gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version);
|
||||
printf("*** You need a version of GTK-- newer than %d.%d.%d. The latest version of\n",
|
||||
major, minor, micro);
|
||||
printf("*** GTK-- is always available from ftp://ftp.gtk.org.\n");
|
||||
printf("***\n");
|
||||
printf("*** If you have already installed a sufficiently new version, this error\n");
|
||||
printf("*** probably means that the wrong copy of the gtkmm-config shell script is\n");
|
||||
printf("*** being found. The easiest way to fix this is to remove the old version\n");
|
||||
printf("*** of GTK--, but you can also set the GTKMM_CONFIG environment to point to the\n");
|
||||
printf("*** correct copy of gtkmm-config. (In this case, you will have to\n");
|
||||
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
|
||||
printf("*** so that the correct libraries are found at run-time))\n");
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
],, no_gtkmm=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
if test "x$no_gtkmm" = x ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
if test "$GTKMM_CONFIG" = "no" ; then
|
||||
echo "*** The gtkmm-config script installed by GTK-- could not be found"
|
||||
echo "*** If GTK-- was installed in PREFIX, make sure PREFIX/bin is in"
|
||||
echo "*** your path, or set the GTKMM_CONFIG environment variable to the"
|
||||
echo "*** full path to gtkmm-config."
|
||||
echo "*** The gtkmm-config script was not available in GTK-- versions"
|
||||
echo "*** prior to 0.9.12. Perhaps you need to update your installed"
|
||||
echo "*** version to 0.9.12 or later"
|
||||
else
|
||||
if test -f conf.gtkmmtest ; then
|
||||
:
|
||||
else
|
||||
echo "*** Could not run GTK-- test program, checking why..."
|
||||
CXXFLAGS="$CXXFLAGS $GTKMM_CFLAGS"
|
||||
LIBS="$LIBS $GTKMM_LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <gtk--.h>
|
||||
#include <stdio.h>
|
||||
], [ return ((gtkmm_major_version) || (gtkmm_minor_version) || (gtkmm_micro_version)); ],
|
||||
[ echo "*** The test program compiled, but did not run. This usually means"
|
||||
echo "*** that the run-time linker is not finding GTK-- or finding the wrong"
|
||||
echo "*** version of GTK--. If it is not finding GTK--, you'll need to set your"
|
||||
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||
echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||
echo "*** is required on your system"
|
||||
echo "***"
|
||||
echo "*** If you have an old version installed, it is best to remove it, although"
|
||||
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
|
||||
[ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||
echo "*** exact error that occured. This usually means GTK-- was incorrectly installed"
|
||||
echo "*** or that you have moved GTK-- since it was installed. In the latter case, you"
|
||||
echo "*** may want to edit the gtkmm-config script: $GTKMM_CONFIG" ])
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
GTKMM_CFLAGS=""
|
||||
GTKMM_LIBS=""
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
AC_LANG_RESTORE
|
||||
AC_SUBST(GTKMM_CFLAGS)
|
||||
AC_SUBST(GTKMM_LIBS)
|
||||
rm -f conf.gtkmmtest
|
||||
])
|
||||
|
||||
@@ -0,0 +1,194 @@
|
||||
# Configure paths for GTK+
|
||||
# Owen Taylor 97-11-3
|
||||
|
||||
dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
|
||||
dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
|
||||
dnl
|
||||
AC_DEFUN([AM_PATH_GTK],
|
||||
[dnl
|
||||
dnl Get the cflags and libraries from the gtk-config script
|
||||
dnl
|
||||
AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
|
||||
gtk_config_prefix="$withval", gtk_config_prefix="")
|
||||
AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
|
||||
gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
|
||||
AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
|
||||
, enable_gtktest=yes)
|
||||
|
||||
for module in . $4
|
||||
do
|
||||
case "$module" in
|
||||
gthread)
|
||||
gtk_config_args="$gtk_config_args gthread"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if test x$gtk_config_exec_prefix != x ; then
|
||||
gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
|
||||
if test x${GTK_CONFIG+set} != xset ; then
|
||||
GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
|
||||
fi
|
||||
fi
|
||||
if test x$gtk_config_prefix != x ; then
|
||||
gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
|
||||
if test x${GTK_CONFIG+set} != xset ; then
|
||||
GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
|
||||
min_gtk_version=ifelse([$1], ,0.99.7,$1)
|
||||
AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
|
||||
no_gtk=""
|
||||
if test "$GTK_CONFIG" = "no" ; then
|
||||
no_gtk=yes
|
||||
else
|
||||
GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
|
||||
GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
|
||||
gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
|
||||
gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
|
||||
gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
|
||||
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
|
||||
if test "x$enable_gtktest" = "xyes" ; then
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
ac_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $GTK_CFLAGS"
|
||||
LIBS="$GTK_LIBS $LIBS"
|
||||
dnl
|
||||
dnl Now check if the installed GTK is sufficiently new. (Also sanity
|
||||
dnl checks the results of gtk-config to some extent
|
||||
dnl
|
||||
rm -f conf.gtktest
|
||||
AC_TRY_RUN([
|
||||
#include <gtk/gtk.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int major, minor, micro;
|
||||
char *tmp_version;
|
||||
|
||||
system ("touch conf.gtktest");
|
||||
|
||||
/* HP/UX 9 (%@#!) writes to sscanf strings */
|
||||
tmp_version = g_strdup("$min_gtk_version");
|
||||
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
|
||||
printf("%s, bad version string\n", "$min_gtk_version");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((gtk_major_version != $gtk_config_major_version) ||
|
||||
(gtk_minor_version != $gtk_config_minor_version) ||
|
||||
(gtk_micro_version != $gtk_config_micro_version))
|
||||
{
|
||||
printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
|
||||
$gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
|
||||
gtk_major_version, gtk_minor_version, gtk_micro_version);
|
||||
printf ("*** was found! If gtk-config was correct, then it is best\n");
|
||||
printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
|
||||
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
|
||||
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
|
||||
printf("*** required on your system.\n");
|
||||
printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
|
||||
printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
|
||||
printf("*** before re-running configure\n");
|
||||
}
|
||||
#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
|
||||
else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
|
||||
(gtk_minor_version != GTK_MINOR_VERSION) ||
|
||||
(gtk_micro_version != GTK_MICRO_VERSION))
|
||||
{
|
||||
printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
|
||||
GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
|
||||
printf("*** library (version %d.%d.%d)\n",
|
||||
gtk_major_version, gtk_minor_version, gtk_micro_version);
|
||||
}
|
||||
#endif /* defined (GTK_MAJOR_VERSION) ... */
|
||||
else
|
||||
{
|
||||
if ((gtk_major_version > major) ||
|
||||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
|
||||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
|
||||
gtk_major_version, gtk_minor_version, gtk_micro_version);
|
||||
printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
|
||||
major, minor, micro);
|
||||
printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
|
||||
printf("***\n");
|
||||
printf("*** If you have already installed a sufficiently new version, this error\n");
|
||||
printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
|
||||
printf("*** being found. The easiest way to fix this is to remove the old version\n");
|
||||
printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
|
||||
printf("*** correct copy of gtk-config. (In this case, you will have to\n");
|
||||
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
|
||||
printf("*** so that the correct libraries are found at run-time))\n");
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
if test "x$no_gtk" = x ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
ifelse([$2], , :, [$2])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
if test "$GTK_CONFIG" = "no" ; then
|
||||
echo "*** The gtk-config script installed by GTK could not be found"
|
||||
echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
|
||||
echo "*** your path, or set the GTK_CONFIG environment variable to the"
|
||||
echo "*** full path to gtk-config."
|
||||
else
|
||||
if test -f conf.gtktest ; then
|
||||
:
|
||||
else
|
||||
echo "*** Could not run GTK test program, checking why..."
|
||||
CFLAGS="$CFLAGS $GTK_CFLAGS"
|
||||
LIBS="$LIBS $GTK_LIBS"
|
||||
AC_TRY_LINK([
|
||||
#include <gtk/gtk.h>
|
||||
#include <stdio.h>
|
||||
], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
|
||||
[ echo "*** The test program compiled, but did not run. This usually means"
|
||||
echo "*** that the run-time linker is not finding GTK or finding the wrong"
|
||||
echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
|
||||
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
|
||||
echo "*** to the installed location Also, make sure you have run ldconfig if that"
|
||||
echo "*** is required on your system"
|
||||
echo "***"
|
||||
echo "*** If you have an old version installed, it is best to remove it, although"
|
||||
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
|
||||
echo "***"
|
||||
echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
|
||||
echo "*** came with the system with the command"
|
||||
echo "***"
|
||||
echo "*** rpm --erase --nodeps gtk gtk-devel" ],
|
||||
[ echo "*** The test program failed to compile or link. See the file config.log for the"
|
||||
echo "*** exact error that occured. This usually means GTK was incorrectly installed"
|
||||
echo "*** or that you have moved GTK since it was installed. In the latter case, you"
|
||||
echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
fi
|
||||
fi
|
||||
GTK_CFLAGS=""
|
||||
GTK_LIBS=""
|
||||
ifelse([$3], , :, [$3])
|
||||
fi
|
||||
AC_SUBST(GTK_CFLAGS)
|
||||
AC_SUBST(GTK_LIBS)
|
||||
rm -f conf.gtktest
|
||||
])
|
||||
@@ -0,0 +1,5 @@
|
||||
# Example for use of GNU gettext.
|
||||
# This file is in the public domain.
|
||||
#
|
||||
# Set of available languages.
|
||||
af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW
|
||||
@@ -0,0 +1,89 @@
|
||||
# Makefile variables for PO directory in any package using GNU gettext.
|
||||
#
|
||||
# Copyright (C) 2003-2025 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation gives
|
||||
# unlimited permission to use, copy, distribute, and modify it.
|
||||
|
||||
# Usually the message domain is the same as the package name.
|
||||
DOMAIN = $(PACKAGE)
|
||||
|
||||
# These two variables depend on the location of this directory.
|
||||
subdir = po
|
||||
top_builddir = ..
|
||||
|
||||
# These options get passed to xgettext.
|
||||
XGETTEXT_OPTIONS = \
|
||||
--keyword=_ --flag=_:1:pass-c-format \
|
||||
--keyword=N_ --flag=N_:1:pass-c-format \
|
||||
--flag=g_log:3:c-format --flag=g_logv:3:c-format \
|
||||
--flag=g_error:1:c-format --flag=g_message:1:c-format \
|
||||
--flag=g_critical:1:c-format --flag=g_warning:1:c-format \
|
||||
--flag=g_print:1:c-format \
|
||||
--flag=g_printerr:1:c-format \
|
||||
--flag=g_strdup_printf:1:c-format --flag=g_strdup_vprintf:1:c-format \
|
||||
--flag=g_printf_string_upper_bound:1:c-format \
|
||||
--flag=g_snprintf:3:c-format --flag=g_vsnprintf:3:c-format \
|
||||
--flag=g_string_sprintf:2:c-format \
|
||||
--flag=g_string_sprintfa:2:c-format \
|
||||
--flag=g_scanner_error:2:c-format \
|
||||
--flag=g_scanner_warn:2:c-format
|
||||
|
||||
# This is the copyright holder that gets inserted into the header of the
|
||||
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
||||
# package. (Note that the msgid strings, extracted from the package's
|
||||
# sources, belong to the copyright holder of the package.) Translators are
|
||||
# expected to transfer the copyright for their translations to this person
|
||||
# or entity, or to disclaim their copyright. The empty string stands for
|
||||
# the public domain; in this case the translators are expected to disclaim
|
||||
# their copyright.
|
||||
COPYRIGHT_HOLDER = Yoyodyne, Inc.
|
||||
|
||||
# This tells whether or not to prepend "GNU " prefix to the package
|
||||
# name that gets inserted into the header of the $(DOMAIN).pot file.
|
||||
# Possible values are "yes", "no", or empty. If it is empty, try to
|
||||
# detect it automatically by scanning the files in $(top_srcdir) for
|
||||
# "GNU packagename" string.
|
||||
PACKAGE_GNU = no
|
||||
|
||||
# This is the email address or URL to which the translators shall report
|
||||
# bugs in the untranslated strings:
|
||||
# - Strings which are not entire sentences, see the maintainer guidelines
|
||||
# in the GNU gettext documentation, section 'Preparing Strings'.
|
||||
# - Strings which use unclear terms or require additional context to be
|
||||
# understood.
|
||||
# - Strings which make invalid assumptions about notation of date, time or
|
||||
# money.
|
||||
# - Pluralisation problems.
|
||||
# - Incorrect English spelling.
|
||||
# - Incorrect formatting.
|
||||
# It can be your email address, or a mailing list address where translators
|
||||
# can write to without being subscribed, or the URL of a web page through
|
||||
# which the translators can contact you.
|
||||
MSGID_BUGS_ADDRESS = bug-gettext@gnu.org
|
||||
|
||||
# This is the list of locale categories, beyond LC_MESSAGES, for which the
|
||||
# message catalogs shall be used. It is usually empty.
|
||||
EXTRA_LOCALE_CATEGORIES =
|
||||
|
||||
# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
|
||||
# context. Possible values are "yes" and "no". Set this to yes if the
|
||||
# package uses functions taking also a message context, like pgettext(), or
|
||||
# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
|
||||
USE_MSGCTXT = no
|
||||
|
||||
# These options get passed to msgmerge.
|
||||
# Useful options are in particular:
|
||||
# --previous to keep previous msgids of translated messages
|
||||
MSGMERGE_OPTIONS =
|
||||
|
||||
# These options get passed to msginit.
|
||||
# If you want to disable line wrapping when writing PO files, add
|
||||
# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
|
||||
# MSGINIT_OPTIONS.
|
||||
MSGINIT_OPTIONS =
|
||||
|
||||
# This tells whether or not to forcibly update $(DOMAIN).pot and
|
||||
# regenerate PO files on "make dist". Possible values are "yes" and
|
||||
# "no". Set this to no if the POT file and PO files are maintained
|
||||
# externally.
|
||||
DIST_DEPENDS_ON_UPDATE_PO = yes
|
||||
@@ -0,0 +1,5 @@
|
||||
# Example for use of GNU gettext.
|
||||
# This file is in the public domain.
|
||||
#
|
||||
# List of files which contain translatable strings.
|
||||
hello.cc
|
||||
@@ -0,0 +1,26 @@
|
||||
# Afrikaans translation for Silky
|
||||
# Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the silky package.
|
||||
# Hanlie Pretorius <hpretorius@pnp.co.za>, 2004.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2-0.13.1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2003-12-31 10:30+2\n"
|
||||
"Last-Translator: Ysbeer <ysbeer@af.org.za>\n"
|
||||
"Language-Team: Afrikaans <i18n@af.org.za>\n"
|
||||
"Language: af\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hallo wêreld!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Hierdie program loop as prosesnommer %d."
|
||||
@@ -0,0 +1,29 @@
|
||||
# Asturian translation for hello-c++-gnome2
|
||||
# Copyright (C) 2018 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Marquinos <maacub@gmail.com>, 2009.
|
||||
# enolp <enolp@softastur.org>, 2018.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.19.4.73\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2018-07-16 00:28+0100\n"
|
||||
"Last-Translator: enolp <enolp@softastur.org>\n"
|
||||
"Language-Team: Asturian <ubuntu-l10n-ast@lists.ubuntu.com>\n"
|
||||
"Language: ast\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Lokalize 2.0\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "¡Hola, mundu!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Esti programa ta executándose como procesu númberu %d."
|
||||
@@ -0,0 +1,26 @@
|
||||
# Bulgarian translations for hello-c++-gnome2 package.
|
||||
# Copyright (C) 2010 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Roumen Petrov <transl@roumenpetrov.info>, 2010,2014,2015,2019,2023,2024,2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GNU hello-c++-gnome2 0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-07-04 20:09+0200\n"
|
||||
"Last-Translator: Roumen Petrov <transl@roumenpetrov.info>\n"
|
||||
"Language-Team: Bulgarian <dict@ludost.net>\n"
|
||||
"Language: bg\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Здравейте всички!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Програмата е пусната под процес номер %d."
|
||||
@@ -0,0 +1,27 @@
|
||||
# Catalan messages for GNU hello-c++-gnome2.
|
||||
# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Ivan Vilata i Balaguer <ivan@selidor.net>, 2003, 2014, 2015, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.22\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2023-07-07 08:36+0200\n"
|
||||
"Last-Translator: Ivan Vilata i Balaguer <ivan@selidor.net>\n"
|
||||
"Language-Team: Catalan <ca@dodds.net>\n"
|
||||
"Language: ca\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hola, món!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Aquest programa està corrent amb el número de procés %d."
|
||||
@@ -0,0 +1,29 @@
|
||||
# The Czech translation for the gettext package.
|
||||
# Copyright (C) 2011 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Marek Černocký <marek@manet.cz>, 2011.
|
||||
# Petr Písař <petr.pisar@atlas.cz>, 2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-07-04 19:55+02:00\n"
|
||||
"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
|
||||
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
|
||||
"Language: cs\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Ahoj světe!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Tento program běží jako proces číslo %d."
|
||||
@@ -0,0 +1,28 @@
|
||||
# Danish messages for hello-c++-gnome2.
|
||||
# Copyright (C) 2015 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Jan Djærv <jan.h.d@swipnet.se>, 2003, 2006.
|
||||
# Keld Simonsen <keld@keldix.com>, 2011.
|
||||
# Joe Hansen <joedalton2@yahoo.dk>, 2015.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.19.4.73\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2015-06-27 12:39+0100\n"
|
||||
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
|
||||
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
|
||||
"Language: da\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hej verden!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Dette program kører som proces nummer %d."
|
||||
@@ -0,0 +1,32 @@
|
||||
# German messages for hello-c++-gnome2.
|
||||
# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Bruno Haible <bruno@clisp.org>, 2003.
|
||||
# Karl Eichwalder <ke@gnu.franken.de>, 2003.
|
||||
# Jakob Kramer <jakob.kramer@gmx.de>, 2013.
|
||||
# Mario Blättermann <mario.blaettermann@gmail.com>, 2014, 2023, 2025 .
|
||||
# Philipp Thomas <pth@suse.de>, 2015.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-07-06 15:25+0200\n"
|
||||
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
|
||||
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 25.04.2\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hallo Welt!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Dieses Programm läuft mit der Prozess-Nummer %d."
|
||||
@@ -0,0 +1,26 @@
|
||||
# Greek translation of hello-c++-gnome2
|
||||
# Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
# Simos Xenitellis <simos74@gmx.net>, 2005.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.14.1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2005-01-06 18:50+0000\n"
|
||||
"Last-Translator: Simos Xenitellis <simos74@gmx.net>\n"
|
||||
"Language-Team: Greek <nls@tux.hellug.gr>\n"
|
||||
"Language: el\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: KBabel 1.3.1\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Γεια σου, κόσμε!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Αυτό το πρόγραμμα εκτελείται με αριθμό διεργασίας %d."
|
||||
@@ -0,0 +1,28 @@
|
||||
# La teksto por la mesaĝoj de la programo "gettext".
|
||||
# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Edmund GRIMLEY EVANS <edmundo@rano.org>, 2006.
|
||||
# Felipe CASTRO <fefcas@gmail.com>, 2016, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.22\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2023-06-23 19:00-0300\n"
|
||||
"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
|
||||
"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
|
||||
"Language: eo\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Poedit 2.4.2\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Saluton, mondo!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Ĉi tiu programo rulas kiel procez-numero %d."
|
||||
@@ -0,0 +1,30 @@
|
||||
# Mensajes en español para GNU gettext.
|
||||
# Copyright (C) 2014 Yoyodyne, Inc. (msgids)
|
||||
#
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Max de Mendizábal <max@upn.mx>, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004.
|
||||
# Antonio Ceballos <aceballos@gmail.com>, 2014, 2015, 2023, 2025
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2-0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-07-04 18:07+0200\n"
|
||||
"Last-Translator: Antonio Ceballos <aceballos@gmail.com>\n"
|
||||
"Language-Team: Spanish <es@tp.org.es>\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "¡Hola, mundo!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Este programa está corriendo como el proceso número %d."
|
||||
@@ -0,0 +1,29 @@
|
||||
# Finnish messages for GNU Gettext examples.
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids)
|
||||
# Lauri Nurmi <lanurmi@iki.fi>, 2007.
|
||||
# Jorma Karvonen <karvonen.jorma@gmail.com>, 2014-2015.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.19.4.73\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2015-09-01 16:59+0300\n"
|
||||
"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
|
||||
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
|
||||
"Language: fi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
|
||||
# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti.
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Terve maailma!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Tämän ohjelman prosessinumero on %d."
|
||||
@@ -0,0 +1,32 @@
|
||||
# Messages français pour GNU gettext.
|
||||
# Copyright (C) 2006 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Michel Robitaille <robitail@IRO.UMontreal.CA>, 2006.
|
||||
# Christophe Combelles <ccomb@free.fr>, 2006
|
||||
# Stéphane Aulery <lkppo@free.fr>, 2015
|
||||
# Christian Wiatr <w9204-fs@yahoo.com>, 2023
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.22\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2023-06-28 16:25+0200\n"
|
||||
"Last-Translator: Christian Wiatr <w9204-fs@yahoo.com>\n"
|
||||
"Language-Team: French <traduc@traduc.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: Poedit 2.4.2\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Bonjour, le monde !"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Ce programme est exécuté en tant que processus numéro %d."
|
||||
@@ -0,0 +1,26 @@
|
||||
# Irish translations for hello-c++-gnome2.
|
||||
# Copyright (C) 2015 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Kevin Patrick Scannell <kscanne@gmail.com>, 2004, 2017.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.19.4.73\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2017-01-10 12:09-0500\n"
|
||||
"Last-Translator: Kevin Patrick Scannell <kscanne@gmail.com>\n"
|
||||
"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
|
||||
"Language: ga\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Dia duit, a dhomhain!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Tá an clár seo ag rith mar phróiseas %d."
|
||||
@@ -0,0 +1,31 @@
|
||||
# Galician translation for hello-c++-gnome2 package.
|
||||
# Copyright (C) 2010 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2010-2014.
|
||||
#
|
||||
# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas
|
||||
# colaborar connosco, podes atopar máis información en <http://trasno.net>
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.19-rc1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2014-05-10 16:34+0100\n"
|
||||
"Last-Translator: Leandro Regueiro <leandro.regueiro@gmail.com>\n"
|
||||
"Language-Team: Galician <proxecto@trasno.net>\n"
|
||||
"Language: gl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Ola, mundo!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Este programa estase executando como o proceso número %d."
|
||||
@@ -0,0 +1,33 @@
|
||||
# Translation of hello-c++-gnome2 to Croatian.
|
||||
# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Permission is granted to freely copy and distribute
|
||||
# this file and modified versions, provided that this
|
||||
# header is not removed and modified versions are marked
|
||||
# as such.
|
||||
#
|
||||
# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012.
|
||||
# Božidar Putanec <bozidarp@yahoo.com>, 2018-2026.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GNU hello-c++-gnome2 1.0-pre2\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2026-01-15 20:25-0800\n"
|
||||
"Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
|
||||
"Language-Team: Croatian <lokalizacija@linux.hr>\n"
|
||||
"Language: hr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Pozdrav, svijete!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Ovaj program izvršava se kao proces broj %d."
|
||||
@@ -0,0 +1,29 @@
|
||||
# Hungarian translation for hello-c++-gnome2.
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Copyright (C) 2014 Yoyodyne, Inc. (msgids)
|
||||
#
|
||||
# Tamás Kiss <atomi@inf.elte.hu>, 2005.
|
||||
# Balázs Úr <urbalazs@gmail.com>, 2014, 2015.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.19.4.73\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2015-06-23 20:31+0200\n"
|
||||
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
|
||||
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
|
||||
"Language: hu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 1.2\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hello, világ!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Ez a program a(z) %d folyamatazonosítóval fut."
|
||||
@@ -0,0 +1,27 @@
|
||||
# translation of hello-c++-gnome2-0.15-pre5.po to Indonesian
|
||||
# Copyright (C) 2006 Yoyodyne, Inc.
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Tedi Heriyanto <tedi_heriyanto@yahoo.com>, 2006.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2-0.15-pre5\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2006-09-27 20:19+0700\n"
|
||||
"Last-Translator: Tedi Heriyanto <tedi_heriyanto@yahoo.com>\n"
|
||||
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
|
||||
"Language: id\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: KBabel 1.11.2\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hello, world!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Program ini berjalan sebagai proses nomor %d"
|
||||
@@ -0,0 +1,29 @@
|
||||
# Italian messages for hello-c++-gnome2.
|
||||
# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids)
|
||||
# Copyright (C) 2024 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Marco Colombo <m.colombo@ed.ac.uk>, 2005, 2006, 2015.
|
||||
# Michele Locati <michele@locati.it>, 2024, 2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GNU hello-c++-gnome2 0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-07-08 13:59+0200\n"
|
||||
"Last-Translator: Michele Locati <michele@locati.it>\n"
|
||||
"Language-Team: Italian <tp@lists.linux.it>\n"
|
||||
"Language: it\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Ciao, mondo!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Questo programma è in esecuzione con numero di processo %d."
|
||||
@@ -0,0 +1,26 @@
|
||||
# Translation of `hello-c++-gnome2' messages to Japanese.
|
||||
# Copyright (C) 2005, 2006, 2014, 2015, 2023, 2025 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Masahito Yamaga <ma@yama-ga.com>, 2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GNU hello-c++-gnome2 0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-07-05 08:24+0900\n"
|
||||
"Last-Translator: Masahito Yamaga <ma@yama-ga.com>\n"
|
||||
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "世界よ, こんにちは!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "このプログラムはプロセス番号 %d で動いています."
|
||||
@@ -0,0 +1,28 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2022 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2022.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.20.2\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2022-05-22 05:04+0200\n"
|
||||
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
|
||||
"Language-Team: Georgian <(nothing)>\n"
|
||||
"Language: ka\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.0.1\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "გამარჯობა სამყაროვ!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "პროგრამა გაშვებულია პროცესის ნომრით %d."
|
||||
@@ -0,0 +1,28 @@
|
||||
# Translation of 'hello-c++-gnome2' messages to Kirghiz.
|
||||
# Copyright (C) 2004 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Ilyas Bakirov <just_ilyas@yahoo.com>, 2007.
|
||||
# Ilyas Bakirov <i.bakirov@gmail.com>, 2018.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.19.4.73\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2018-02-15 18:26+0600\n"
|
||||
"Last-Translator: Ilyas Bakirov <just_ilyas@yahoo.com>\n"
|
||||
"Language-Team: Kirghiz <i18n-team-ky-kyrgyz@lists.sourceforge.net>\n"
|
||||
"Language: ky\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Poedit 2.0.6\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Салам дүйнө!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Бул программа %d процесс номери катары иштеп жатат."
|
||||
@@ -0,0 +1,30 @@
|
||||
# Latvian translation of hello-c++-gnome2
|
||||
# Copyright (C) 2009 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Arvis Lācis <arvis.lacis@inbox.lv>, 2009.
|
||||
# Rihards Priedītis <rprieditis@gmail>, 2023, 2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2-0.24-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-03-09 11:44+0000\n"
|
||||
"Last-Translator: Rihards Priedītis <rprieditis@gmail.com>\n"
|
||||
"Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
|
||||
"Language: lv\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
|
||||
"2);\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Poedit 3.5\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Sveika, pasaule!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Šī programma darbojas ar procesa numuru %d."
|
||||
@@ -0,0 +1,28 @@
|
||||
# hello-c++-gnome2 Bahasa Melayu (Malay) (ms).
|
||||
# Copyright (C) 2006, 2015, 2023, 2025 Yoyodyne, Inc. (msgids)
|
||||
# Copyright (C) 2006, 2015, 2023, 2025 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2006, 2015, 2023, 2025
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-07-10 14:34+0800\n"
|
||||
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n"
|
||||
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
|
||||
"Language: ms\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Poedit 3.6\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hello, dunia!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Program ini dilaksanakan sebagai proses bernombor %d."
|
||||
@@ -0,0 +1,27 @@
|
||||
# hello-c++-gnome2-0.16.2-pre5.
|
||||
# Copyright (C) 2008 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Clyde Meli <cmeli@cis.um.edu.mt>, 2001-2008.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.16.2-pre5\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2008-11-18 17:27+0100\n"
|
||||
"Last-Translator: Clyde Meli <cmeli@cis.um.edu.mt>\n"
|
||||
"Language-Team: Maltese <translation-team-mt@lists.sourceforge.net>\n"
|
||||
"Language: mt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hello, lil kulħadd!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Dal-programm qed jaħdem taħt il-proÄess numru %d."
|
||||
@@ -0,0 +1,29 @@
|
||||
# Norwegian Bokmal translations for hello-c++-gnome2 package.
|
||||
# Copyright (C) 2012 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Johnny A. Solbu <johnny@solbu.net>, 2012-2024
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.22\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2024-01-06 16:33+0100\n"
|
||||
"Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
|
||||
"Language-Team: Norwegian Bokmaal <l10n-no@lister.huftis.org>\n"
|
||||
"Language: nb_NO\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 2.4.2\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hallo verden!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Dette programmet kjører som prosess nummer %d."
|
||||
@@ -0,0 +1,31 @@
|
||||
# Dutch translations for GNU hello-c++-gnome2.
|
||||
# Copyright (C) 2025 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# "There are three basic rules for writing a novel.
|
||||
# Unfortunately nobody knows what they are."
|
||||
#
|
||||
# Benno Schulenberg <benno@vertaalt.nl>, 2007, 2014, 2015, 2019, 2025.
|
||||
# Elros Cyriatan <cyriatan@fastmail.fm>, 2004.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2-0.24-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-03-01 14:51+0100\n"
|
||||
"Last-Translator: Benno Schulenberg <vertaling@coevern.nl>\n"
|
||||
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
|
||||
"Language: nl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hallo, wereld!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Dit programma draait als proces nummer %d."
|
||||
@@ -0,0 +1,28 @@
|
||||
# Norwegian Nynorsk translation of GNU hello-c++-gnome2
|
||||
# Copyright (C) 2020 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Karl Ove Hufthammer <karl@huftis.org>, 2020.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2-0.20.2\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2020-05-04 18:58+0200\n"
|
||||
"Last-Translator: Karl Ove Hufthammer <karl@huftis.org>\n"
|
||||
"Language-Team: Norwegian Nynorsk <l10n-no@lister.huftis.org>\n"
|
||||
"Language: nn\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 20.04.0\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hei, verda!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Dette programmet køyrer som prosess nummer %d."
|
||||
@@ -0,0 +1,27 @@
|
||||
# Polish translations for the GNU gettext messages, hello-c++-gnome2 domain
|
||||
# Copyright (C) 2010, 2014, 2015, 2025, 2026 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Rafał Maszkowski <rzm@icm.edu.pl>, 2003, 2010, 2014, 2015, 2025, 2026
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GNU hello-c++-gnome2 1.0-pre2\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2026-01-14 17:30+0100\n"
|
||||
"Last-Translator: Rafał Maszkowski <rzm@icm.edu.pl>\n"
|
||||
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
|
||||
"Language: pl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8-bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Cześć, świecie!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Ten program działa jako proces o numerze %d."
|
||||
@@ -0,0 +1,28 @@
|
||||
# Portuguese (Portugal) translation of 'hello-c++-gnome2' package.
|
||||
# Copyright (C) 2018 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Pedro Albuquerque <pmra@protonmail.com>, 2019, 2020, 2025, 2026.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 1.0-pre2\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2026-01-14 15:53+0000\n"
|
||||
"Last-Translator: Pedro Albuquerque <pmra@protonmail.com>\n"
|
||||
"Language-Team: Portuguese <translation-team-pt@googlegroups.com>\n"
|
||||
"Language: pt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\\n;\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Olá mundo!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Este programa está em execução como processo nº %d."
|
||||
@@ -0,0 +1,31 @@
|
||||
# Brazilian Portuguese translations for gettext-example
|
||||
# Traduções em português brasileiro para gettext-example
|
||||
# Copyright (C) 2025 Yoyodyne, Inc. (msgids)
|
||||
# Copyright (C) 2025 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Rafael Fontenelle <rafaelff@gnome.org>, 2013-2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-07-07 23:17-0300\n"
|
||||
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
|
||||
"Language-Team: Brazilian Portuguese <ldpbr-"
|
||||
"translation@lists.sourceforge.net>\n"
|
||||
"Language: pt_BR\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: Gtranslator 48.0\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Olá, mundo!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Este programa está sendo executado com número de processo %d."
|
||||
@@ -0,0 +1,52 @@
|
||||
# Translation of "hello-c++-gnome2" messages to Romanian.
|
||||
# Mesajele în limba română pentru pachetul hello-c++-gnome2.
|
||||
# Copyright © 2015, 2019, 2022, 2023, 2024, 2025, 2026 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Eugen Hoancă <eugenh@urban-grafx.ro>, 2003.
|
||||
# Mihai Cristescu <mihai.cristescu@archlinux.info>, 2015 - 2019.
|
||||
# Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2026.
|
||||
#
|
||||
# Cronologia traducerii fișierului „hello-c++-gnome2”:
|
||||
# Traducerea inițială, făcută de EH, pentru versiunea hello-c++-gnome2 0.12.1, 2003.
|
||||
# Actualizare a traducerii pentru versiunea hello-c++-gnome2 0.19.4-rc1, făcută de MC, mar-2015.
|
||||
# Actualizare a traducerii pentru versiunea hello-c++-gnome2 0.19.4.73, făcută de MC, iun-2015.
|
||||
# Actualizare a traducerii pentru versiunea hello-c++-gnome2 0.20-rc1, făcută de MC, apr-2019.
|
||||
# Actualizare a mesajelor, de la fișierul „hello-c++-gnome2-0.20.2.pot”.
|
||||
# Actualizare a algoritmului formelor de plural (de la „trei-vechi” la „trei-actual”).
|
||||
# NU și a mesajelor traduse (acestea au rămas neschimbate).
|
||||
# Eliminare a mesajelor ce-au dispărut în ultima versiune.
|
||||
# Actualizări realizate de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 15.01.2022.
|
||||
# Actualizare a traducerii pentru versiunea 0.20.2 făcută de R-GC, ian-2022.
|
||||
# Actualizare a traducerii pentru versiunea 0.22 făcută de R-GC, iun-2023.
|
||||
# Revizuire și corectare a traducerii pentru versiunea 0.23-pre1 făcută de R-GC, oct-2024.
|
||||
# Actualizare a traducerii pentru versiunea 0.24-pre1 făcută de R-GC, feb-2025.
|
||||
# Actualizare a traducerii pentru versiunea 0.25-pre1 făcută de R-GC, apr-2025.
|
||||
# Actualizare a traducerii pentru versiunea 0.26-pre1 făcută de R-GC, iul-2025.
|
||||
# Actualizare(revizuire) a traducerii pentru versiunea 1.0-pre2 făcută de R-GC, ian-2026.
|
||||
# Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 1.0-pre2\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2026-01-15 11:05+0100\n"
|
||||
"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
|
||||
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
|
||||
"Language: ro\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
|
||||
"20)) ? 1 : 2);\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Poedit 3.6\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Salutare, lume!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Acest program rulează ca procesul numărul %d."
|
||||
@@ -0,0 +1,30 @@
|
||||
# Translation of hello-c++-gnome2-0.14.1.po to Russian
|
||||
# Copyright (C) 2004 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Pavel Maryanov <acid_jack@ukr.net>, 2004.
|
||||
# SPDX-FileCopyrightText: 2014, 2015, 2023, 2025 Yuri Kozlov <yuray@komyakino.ru>
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-10-21 04:30+0300\n"
|
||||
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
|
||||
"Language-Team: Russian <gnu@d07.ru>\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Lokalize 25.04.0\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Здравствуй, мир!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Эта программа выполняется как процесс под номером %d."
|
||||
@@ -0,0 +1,26 @@
|
||||
# Slovak translations GNU for hello-c++-gnome2 package.
|
||||
# Copyright (C) 2003, 2004, 2014, 2023, 2025 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Marcel Telka <marcel@telka.sk>, 2003, 2004, 2014, 2023, 2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GNU hello-c++-gnome2 0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-08-08 22:25+0200\n"
|
||||
"Last-Translator: Marcel Telka <marcel@telka.sk>\n"
|
||||
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
|
||||
"Language: sk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Ahoj svet!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Tento program beží ako proces s číslom %d."
|
||||
@@ -0,0 +1,29 @@
|
||||
# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example
|
||||
# Copyright (C) 2005 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Primož Peterlin <primoz.peterlin@biofiz.mf.uni-lj.si>, 2005, 2014, 2015, 2024.
|
||||
# $Id: hello-c++-gnome2-0.22.sl.po,v 1.1 2024/03/28 17:02:19 peterlin Exp $
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.22\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2024-03-28 18:02+0100\n"
|
||||
"Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n"
|
||||
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
|
||||
"Language: sl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8-bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
|
||||
"n%100==4 ? 3 : 0);\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Pozdravljen, svet!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Ta program teče kot proces številka %d."
|
||||
@@ -0,0 +1,28 @@
|
||||
# Albanian translation of gettext-example.
|
||||
# Copyright (C) 2020 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Besnik Bleta <besnik@programeshqip.org>, 2020,2023,2024,2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2-0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-12-22 11:38+0200\n"
|
||||
"Last-Translator: Besnik Bleta <besnik@programeshqip.org>\n"
|
||||
"Language-Team: Albanian <translation-team-sq@lists.sourceforge.net>\n"
|
||||
"Language: sq\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Poedit 3.2.2\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Tungjatjeta, botë!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Ky program po xhiron si procesi numër %d."
|
||||
@@ -0,0 +1,30 @@
|
||||
# Serbian translation of hello-c++-gnome2.
|
||||
# Copyright (C) 2014 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Aleksandar Jelenak <jelenak@netlinkplus.net>, 2004.
|
||||
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2014-2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2-0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-08-31 08:18+0200\n"
|
||||
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
|
||||
"Language-Team: Serbian <(nothing)>\n"
|
||||
"Language: sr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Poedit 3.5\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Здраво, свима!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Овај програм се извршава као процес број %d."
|
||||
@@ -0,0 +1,29 @@
|
||||
# Swedish messages for hello-c++-gnome2.
|
||||
# Copyright © 2006, 2014, 2016, 2019, 2020, 2023, 2024, 2025, 2026 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Jan Djärv <jan.h.d@swipnet.se>, 2003, 2006, 2014.
|
||||
# Göran Uddeborg <goeran@uddeborg.se>, 2016, 2019, 2020, 2023, 2024, 2025, 2026.
|
||||
#
|
||||
# $Revision: 1.18 $
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 1.0-pre2\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2026-01-19 12:31+0100\n"
|
||||
"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
|
||||
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
||||
"Language: sv\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hej världen!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Detta program kör som process nummer %d."
|
||||
@@ -0,0 +1,28 @@
|
||||
# Tamil messages for GNU gettext.
|
||||
# Copyright (C) 2018 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# List of contributors follow:
|
||||
# Poorajith <gokulkannanst@gmail.com>, 2018.
|
||||
# Arun Isaac <arunisaac@systemreboot.net>, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.22\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2023-06-19 00:06+0100\n"
|
||||
"Last-Translator: Arun Isaac <arunisaac@systemreboot.net>\n"
|
||||
"Language-Team: Tamil <tamil@systemreboot.net>\n"
|
||||
"Language: ta\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "வணக்கம், உலகு!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "இந்நிரல் செயலாக்க எண் %d ஆக இயங்கிக்கொண்டிருக்கிறது."
|
||||
@@ -0,0 +1,29 @@
|
||||
# Turkish translation for hello-c++-gnome2.
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Copyright (C) 2017 Yoyodyne, Inc. (msgids)
|
||||
# Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
# Nilgün Belma Bugüner <nilgun@superonline.com>, 2003,2004
|
||||
# Mehmet Kececi <mkececi@mehmetkececi.com>, 2017, 2019, 2020.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.20.2\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2020-04-17 13:10+0300\n"
|
||||
"Last-Translator: Mehmet Kececi <mkececi@mehmetkececi.com>\n"
|
||||
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
|
||||
"Language: tr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Merhaba, dünya!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Bu yazılım %d işlem numarası ile çalışıyor."
|
||||
@@ -0,0 +1,30 @@
|
||||
# Ukrainian translation to hello-c++-gnome2
|
||||
# Copyright (C) 2014 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
#
|
||||
# Maxim V. Dziumanenko <dziumanenko@gmail.com>, 2004-2007.
|
||||
# Yuri Chornoivan <yurchor@ukr.net>, 2014, 2015, 2023, 2025.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-07-04 19:23+0300\n"
|
||||
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
|
||||
"Language: uk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Lokalize 23.04.3\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Привіт, світе!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Ця програма виконується як процес з номером %d."
|
||||
@@ -0,0 +1,30 @@
|
||||
# Vietnamese Translation for Gettext Examples.
|
||||
# Bản dịch tiếng Việt dành cho các ví dụ của gói gettext.
|
||||
# Copyright © 2015 Yoyodyne, Inc. (msgids)
|
||||
# Copyright © 2015 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
|
||||
# Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2015, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.22\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2023-06-24 09:10+0700\n"
|
||||
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
|
||||
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
|
||||
"Language: vi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "Chào thế giới!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "Chương trình này đang chạy với mã số tiến trình %d."
|
||||
@@ -0,0 +1,29 @@
|
||||
# zh_CN translation for hello-c++-gnome2.
|
||||
# Copyright (C) 2015 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Funda Wang <fundawang@linux.net.cn>, 2003.
|
||||
# Ji ZhengYu <zhengyuji@gmail.com>, 2015.
|
||||
# Boyuan Yang <073plan@gmail.com>, 2019, 2023, 2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.26-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2025-07-05 16:22-0400\n"
|
||||
"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
|
||||
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Poedit 2.4.3\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "你好,世界!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "此程序正以进程号 %d 运行。"
|
||||
@@ -0,0 +1,25 @@
|
||||
# Chinese (Hong Kong) translation of hello-c++-gnome2.
|
||||
# Copyright (C) 2006 Yoyodyne, Inc.
|
||||
# Abel Cheung <abelcheung@gmail.com>, 2006.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.15-pre5\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2006-07-05 15:40+0800\n"
|
||||
"Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
|
||||
"Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
|
||||
"Language: zh_HK\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "你好!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "本程式正在執行中,進程編號為 %d。"
|
||||
@@ -0,0 +1,29 @@
|
||||
# Traditional Chinese translation of hello-c++-gnome2.
|
||||
# Copyright (C) 2009 Yoyodyne, Inc. (msgids)
|
||||
# This file is distributed under the same license as the gettext package.
|
||||
# Abel Cheung <abelcheung@gmail.com>, 2005.
|
||||
# Wei-Lun Chao <bluebat@member.fsf.org>, 2013, 2015.
|
||||
# Yi-Jyun Pan <pan93412@gmail.com>, 2024.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome2 0.23-pre1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2024-11-30 14:14+0800\n"
|
||||
"Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n"
|
||||
"Language-Team: Chinese (traditional) <zh-l10n@lists.slat.org>\n"
|
||||
"Language: zh_TW\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"X-Generator: Poedit 3.5\n"
|
||||
|
||||
#: hello.cc:55
|
||||
msgid "Hello, world!"
|
||||
msgstr "哈囉,大家好!"
|
||||
|
||||
#: hello.cc:60
|
||||
#, c-format
|
||||
msgid "This program is running as process number %d."
|
||||
msgstr "本程式正在執行,行程編號為 %d。"
|
||||
@@ -0,0 +1,13 @@
|
||||
This example relies on:
|
||||
- the GTK libraries (libgtk, libgdk), version 3.10 or later
|
||||
- the glib libraries (libglib)
|
||||
- the GTK / C++ bindings (libgtkmm)
|
||||
|
||||
Installation:
|
||||
./autogen.sh
|
||||
./configure --prefix=/some/prefix
|
||||
make
|
||||
make install
|
||||
Cleanup:
|
||||
make distclean
|
||||
./autoclean.sh
|
||||
@@ -0,0 +1,58 @@
|
||||
# Example for use of GNU gettext.
|
||||
# This file is in the public domain.
|
||||
#
|
||||
# Makefile configuration - processed by automake.
|
||||
|
||||
# General automake options.
|
||||
AUTOMAKE_OPTIONS = foreign no-dependencies
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
# The list of subdirectories containing Makefiles.
|
||||
SUBDIRS = m4 po
|
||||
|
||||
# The list of programs that are built.
|
||||
bin_PROGRAMS = hello
|
||||
|
||||
# The source files of the 'hello' program.
|
||||
hello_SOURCES = hello.cc hello-resources.c
|
||||
|
||||
# Define a C macro LOCALEDIR indicating where catalogs will be installed.
|
||||
DEFS = \
|
||||
-DLOCALEDIR=$(localedir_c_make) \
|
||||
@DEFS@
|
||||
|
||||
# Make sure the gnome.h include file is found.
|
||||
AM_CPPFLAGS = $(GTKMM_CFLAGS)
|
||||
|
||||
# Link time dependencies.
|
||||
LDADD = $(GTKMM_LIBS) @LIBINTL@
|
||||
|
||||
# Compile assets into a C source and link it with the application.
|
||||
hello-resources.c: hello.gresource.xml hello.ui
|
||||
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ \
|
||||
--sourcedir=$(srcdir) --generate-source
|
||||
|
||||
desktopdir = $(datadir)/applications
|
||||
desktop_DATA = hello.desktop
|
||||
|
||||
# Merge translations back into a Desktop Entry file.
|
||||
|
||||
# Note that the resulting file should be included in EXTRA_DIST and
|
||||
# processed earlier than the variable substitution below. Otherwise,
|
||||
# the 'msgfmt' command will be required at compile-time.
|
||||
hello.desktop.in: hello.desktop.in.in
|
||||
$(AM_V_GEN) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@
|
||||
|
||||
# Substitute variables in a Desktop Entry file.
|
||||
hello.desktop: hello.desktop.in
|
||||
$(AM_V_GEN) sed -e 's|@bindir[@]|$(bindir)|g' $< > $@
|
||||
|
||||
BUILT_SOURCES = hello-resources.c hello.desktop
|
||||
CLEANFILES = hello.desktop
|
||||
DISTCLEANFILES =
|
||||
MAINTAINERCLEANFILES = hello-resources.c hello.desktop.in
|
||||
|
||||
# Additional files to be distributed.
|
||||
EXTRA_DIST = autogen.sh autoclean.sh \
|
||||
hello.desktop.in.in hello.desktop.in \
|
||||
hello.gresource.xml hello.ui
|
||||
@@ -0,0 +1,8 @@
|
||||
This example contains a simple "hello world" program.
|
||||
|
||||
A more elaborate program that demonstrates advanced Gtk 3 features is
|
||||
not available here, because
|
||||
- derived GObject classes have a number of pain points with gtkmm
|
||||
(see <https://thinkingeek.com/2023/02/04/writing-gobjects-in-cpp/>),
|
||||
- widget templates are not supported in gtkmm (see
|
||||
<https://github.com/rofirrim/libadwaitamm/blob/main/demo/templatewidget.h>).
|
||||
@@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
# Example for use of GNU gettext.
|
||||
# This file is in the public domain.
|
||||
#
|
||||
# Script for cleaning all autogenerated files.
|
||||
|
||||
test ! -f Makefile || make distclean
|
||||
# Do the equivalent of "make maintainer-clean", even without the Makefile.
|
||||
rm -f hello-resources.c hello.desktop.in
|
||||
rm -rf autom4te.cache
|
||||
|
||||
# Files generated by "make" and distributed (see MAINTAINERCLEANFILES).
|
||||
rm -f hello-resources.c hello.desktop.in
|
||||
|
||||
# Brought in by autopoint.
|
||||
rm -f ABOUT-NLS
|
||||
rm -f config.rpath
|
||||
rm -f m4/gettext.m4
|
||||
rm -f m4/build-to-host.m4
|
||||
rm -f m4/host-cpu-c-abi.m4
|
||||
rm -f m4/iconv.m4
|
||||
rm -f m4/intlmacosx.m4
|
||||
rm -f m4/lib-ld.m4
|
||||
rm -f m4/lib-link.m4
|
||||
rm -f m4/lib-prefix.m4
|
||||
rm -f m4/nls.m4
|
||||
rm -f m4/po.m4
|
||||
rm -f m4/progtest.m4
|
||||
rm -f po/Makefile.in.in
|
||||
rm -f po/fetch-po
|
||||
rm -f po/remove-potcdate.sed
|
||||
|
||||
# Generated by aclocal.
|
||||
rm -f aclocal.m4
|
||||
|
||||
# Generated by autoconf.
|
||||
rm -f configure
|
||||
|
||||
# Generated or brought in by automake.
|
||||
rm -f Makefile.in
|
||||
rm -f m4/Makefile.in
|
||||
rm -f compile
|
||||
rm -f install-sh
|
||||
rm -f missing
|
||||
rm -f config.guess
|
||||
rm -f config.sub
|
||||
rm -f po/*.pot
|
||||
rm -f po/stamp-po
|
||||
rm -f po/*.gmo
|
||||
@@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
# Example for use of GNU gettext.
|
||||
# This file is in the public domain.
|
||||
#
|
||||
# Script for regenerating all autogenerated files.
|
||||
|
||||
autopoint -f # was: gettextize -f -c
|
||||
rm po/Makevars.template
|
||||
rm po/Rules-quot
|
||||
rm po/boldquot.sed
|
||||
rm po/en@boldquot.header
|
||||
rm po/en@quot.header
|
||||
rm po/insert-header.sed
|
||||
rm po/quot.sed
|
||||
|
||||
aclocal -I m4
|
||||
|
||||
autoconf
|
||||
|
||||
automake -a -c
|
||||
|
||||
cd po
|
||||
for f in *.po; do
|
||||
if test -r "$f"; then
|
||||
lang=`echo $f | sed -e 's,\.po$,,'`
|
||||
msgfmt -c -o $lang.gmo $lang.po
|
||||
fi
|
||||
done
|
||||
cd ..
|
||||
@@ -0,0 +1,54 @@
|
||||
dnl Example for use of GNU gettext.
|
||||
dnl This file is in the public domain.
|
||||
dnl
|
||||
dnl Configuration file - processed by autoconf.
|
||||
|
||||
AC_INIT([hello-c++-gnome3], [0], , [hello-c++-gnome3])
|
||||
AC_CONFIG_SRCDIR([hello.cc])
|
||||
AM_INIT_AUTOMAKE([1.11])
|
||||
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
AM_GNU_GETTEXT([external])
|
||||
AM_GNU_GETTEXT_VERSION([1.0])
|
||||
|
||||
dnl Define localedir_c and localedir_c_make.
|
||||
gl_BUILD_TO_HOST_LOCALEDIR
|
||||
|
||||
dnl Check GNOME specific stuff.
|
||||
dnl
|
||||
dnl If you have full GNOME development environment installed on your
|
||||
dnl system, you should be able to use the following macros:
|
||||
dnl
|
||||
dnl AM_PATH_GLIB_2_0
|
||||
dnl PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.10], ,
|
||||
dnl [AC_MSG_ERROR([can't find gtk+-3.0])])
|
||||
dnl
|
||||
dnl Here, in gettext-tools/examples, we do the checks manually for
|
||||
dnl simplicity.
|
||||
|
||||
AC_PATH_PROG([GLIB_COMPILE_RESOURCES], [glib-compile-resources])
|
||||
AS_IF([test -z "$GLIB_COMPILE_RESOURCES"], [
|
||||
AC_MSG_ERROR([can't find glib-compile-resources])
|
||||
])
|
||||
|
||||
AC_PATH_PROG([PKG_CONFIG], [pkg-config])
|
||||
AS_IF([test -z "$PKG_CONFIG"], [
|
||||
AC_MSG_ERROR([can't find pkg-config])
|
||||
])
|
||||
|
||||
GTKMM="gtkmm-3.0 >= 3.0"
|
||||
AS_IF(["$PKG_CONFIG" --exists "$GTKMM"], , [
|
||||
AC_MSG_ERROR([can't find $GTKMM])
|
||||
])
|
||||
|
||||
GTKMM_CFLAGS=`"$PKG_CONFIG" --cflags "$GTKMM"`
|
||||
AC_SUBST([GTKMM_CFLAGS])
|
||||
|
||||
GTKMM_LIBS=`"$PKG_CONFIG" --libs "$GTKMM"`
|
||||
AC_SUBST([GTKMM_LIBS])
|
||||
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_CONFIG_FILES([m4/Makefile])
|
||||
AC_CONFIG_FILES([po/Makefile.in])
|
||||
AC_OUTPUT
|
||||
@@ -0,0 +1,105 @@
|
||||
/* Example for use of GNU gettext.
|
||||
This file is in the public domain.
|
||||
|
||||
Source code of the C++ program. */
|
||||
|
||||
|
||||
/* Get GTKmm declarations. */
|
||||
#include <gtkmm.h>
|
||||
#include <glib/gi18n.h>
|
||||
|
||||
/* Get getpid() declaration. */
|
||||
#if defined _WIN32 && !defined __CYGWIN__
|
||||
/* native Windows API */
|
||||
# include <process.h>
|
||||
# define getpid _getpid
|
||||
#else
|
||||
/* POSIX API */
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#define UI_PATH "/org/gnu/gettext/examples/hello/hello.ui"
|
||||
#define APPLICATION_ID "org.gnu.gettext.examples.hello"
|
||||
|
||||
/* An ad-hoc struct for managing the main window.
|
||||
(Not connected to the GObject type system.) */
|
||||
struct HelloWindow
|
||||
{
|
||||
Gtk::Window *window;
|
||||
Gtk::Label *label;
|
||||
Gtk::Button *button;
|
||||
gsize label_id;
|
||||
gchar *labels[3];
|
||||
};
|
||||
|
||||
static void
|
||||
update_content (HelloWindow *hello_window)
|
||||
{
|
||||
hello_window->label->set_label (hello_window->labels[hello_window->label_id]);
|
||||
hello_window->label_id =
|
||||
(hello_window->label_id + 1) % G_N_ELEMENTS (hello_window->labels);
|
||||
}
|
||||
|
||||
static void
|
||||
clicked_callback (HelloWindow *hello_window)
|
||||
{
|
||||
update_content (hello_window);
|
||||
}
|
||||
|
||||
static void
|
||||
activate (Glib::RefPtr<Gtk::Application> application)
|
||||
{
|
||||
/* Instantiate the UI. */
|
||||
Glib::RefPtr<Gtk::Builder> builder =
|
||||
Gtk::Builder::create_from_resource (UI_PATH);
|
||||
|
||||
HelloWindow *hello_window = new HelloWindow ();
|
||||
hello_window->window = nullptr;
|
||||
builder->get_widget<Gtk::Window> ("main_window", hello_window->window);
|
||||
hello_window->label = nullptr;
|
||||
builder->get_widget<Gtk::Label> ("label", hello_window->label);
|
||||
hello_window->button = nullptr;
|
||||
builder->get_widget<Gtk::Button> ("button", hello_window->button);
|
||||
|
||||
/* Allow Pango markup in the label. */
|
||||
hello_window->label->set_use_markup (true);
|
||||
|
||||
/* Prepare various presentations of the label. */
|
||||
hello_window->label_id = 0;
|
||||
gchar *line1 = g_strdup_printf ("<big>%s</big>", _("Hello world!"));
|
||||
gchar *line2 =
|
||||
g_strdup_printf (_("This program is running as process number %s."),
|
||||
g_strdup_printf ("<b>%d</b>", getpid ()));
|
||||
hello_window->labels[0] = g_strdup_printf ("%s\n%s", line1, line2);
|
||||
hello_window->labels[1] =
|
||||
g_strdup_printf ("<big><u>%s</u></big>", _("This is another text"));
|
||||
hello_window->labels[2] =
|
||||
g_strdup_printf ("<big><i>%s</i></big>", _("This is yet another text"));
|
||||
|
||||
update_content (hello_window);
|
||||
|
||||
/* Make sure that the application runs for as long as this window is
|
||||
still open. */
|
||||
application->add_window (*(hello_window->window));
|
||||
|
||||
hello_window->button->signal_clicked ()
|
||||
.connect (sigc::bind (sigc::ptr_fun (clicked_callback), hello_window));
|
||||
hello_window->window->present ();
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
/* Initializations. */
|
||||
textdomain ("hello-c++-gnome3");
|
||||
bindtextdomain ("hello-c++-gnome3", LOCALEDIR);
|
||||
|
||||
/* Create application. */
|
||||
Glib::RefPtr<Gtk::Application> application =
|
||||
Gtk::Application::create (APPLICATION_ID, Gio::APPLICATION_FLAGS_NONE);
|
||||
application->signal_activate ()
|
||||
.connect (sigc::bind (sigc::ptr_fun (activate), application));
|
||||
|
||||
/* Start the application. */
|
||||
return application->run (argc, argv);
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Hello
|
||||
Comment=Hello, world!
|
||||
StartupNotify=true
|
||||
Exec=@bindir@/hello
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- This file is in the public domain. -->
|
||||
<gresources>
|
||||
<gresource prefix="/org/gnu/gettext/examples/hello">
|
||||
<file preprocess="xml-stripblanks">hello.ui</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- This file is in the public domain. -->
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.10 -->
|
||||
<object class="GtkApplicationWindow" id="main_window">
|
||||
<property name="title" translatable="yes">Example Application</property>
|
||||
<property name="default-width">600</property>
|
||||
<property name="default-height">400</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="panel">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkAlignment" id="alignment">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xscale">0</property>
|
||||
<property name="yscale">0</property>
|
||||
<property name="vexpand">True</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label">
|
||||
<property name="visible">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkHButtonBox" id="buttonbar">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="button">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Update text</property>
|
||||
<property name="use_stock">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
@@ -0,0 +1,4 @@
|
||||
EXTRA_DIST = \
|
||||
gettext.m4 build-to-host.m4 host-cpu-c-abi.m4 \
|
||||
iconv.m4 intlmacosx.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \
|
||||
nls.m4 po.m4 progtest.m4
|
||||
@@ -0,0 +1,5 @@
|
||||
# Example for use of GNU gettext.
|
||||
# This file is in the public domain.
|
||||
#
|
||||
# Set of available languages.
|
||||
af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW
|
||||
@@ -0,0 +1,89 @@
|
||||
# Makefile variables for PO directory in any package using GNU gettext.
|
||||
#
|
||||
# Copyright (C) 2003-2025 Free Software Foundation, Inc.
|
||||
# This file is free software; the Free Software Foundation gives
|
||||
# unlimited permission to use, copy, distribute, and modify it.
|
||||
|
||||
# Usually the message domain is the same as the package name.
|
||||
DOMAIN = $(PACKAGE)
|
||||
|
||||
# These two variables depend on the location of this directory.
|
||||
subdir = po
|
||||
top_builddir = ..
|
||||
|
||||
# These options get passed to xgettext.
|
||||
XGETTEXT_OPTIONS = \
|
||||
--keyword=_ --flag=_:1:pass-c-format \
|
||||
--keyword=N_ --flag=N_:1:pass-c-format \
|
||||
--flag=g_log:3:c-format --flag=g_logv:3:c-format \
|
||||
--flag=g_error:1:c-format --flag=g_message:1:c-format \
|
||||
--flag=g_critical:1:c-format --flag=g_warning:1:c-format \
|
||||
--flag=g_print:1:c-format \
|
||||
--flag=g_printerr:1:c-format \
|
||||
--flag=g_strdup_printf:1:c-format --flag=g_strdup_vprintf:1:c-format \
|
||||
--flag=g_printf_string_upper_bound:1:c-format \
|
||||
--flag=g_snprintf:3:c-format --flag=g_vsnprintf:3:c-format \
|
||||
--flag=g_string_sprintf:2:c-format \
|
||||
--flag=g_string_sprintfa:2:c-format \
|
||||
--flag=g_scanner_error:2:c-format \
|
||||
--flag=g_scanner_warn:2:c-format
|
||||
|
||||
# This is the copyright holder that gets inserted into the header of the
|
||||
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
||||
# package. (Note that the msgid strings, extracted from the package's
|
||||
# sources, belong to the copyright holder of the package.) Translators are
|
||||
# expected to transfer the copyright for their translations to this person
|
||||
# or entity, or to disclaim their copyright. The empty string stands for
|
||||
# the public domain; in this case the translators are expected to disclaim
|
||||
# their copyright.
|
||||
COPYRIGHT_HOLDER = Yoyodyne, Inc.
|
||||
|
||||
# This tells whether or not to prepend "GNU " prefix to the package
|
||||
# name that gets inserted into the header of the $(DOMAIN).pot file.
|
||||
# Possible values are "yes", "no", or empty. If it is empty, try to
|
||||
# detect it automatically by scanning the files in $(top_srcdir) for
|
||||
# "GNU packagename" string.
|
||||
PACKAGE_GNU = no
|
||||
|
||||
# This is the email address or URL to which the translators shall report
|
||||
# bugs in the untranslated strings:
|
||||
# - Strings which are not entire sentences, see the maintainer guidelines
|
||||
# in the GNU gettext documentation, section 'Preparing Strings'.
|
||||
# - Strings which use unclear terms or require additional context to be
|
||||
# understood.
|
||||
# - Strings which make invalid assumptions about notation of date, time or
|
||||
# money.
|
||||
# - Pluralisation problems.
|
||||
# - Incorrect English spelling.
|
||||
# - Incorrect formatting.
|
||||
# It can be your email address, or a mailing list address where translators
|
||||
# can write to without being subscribed, or the URL of a web page through
|
||||
# which the translators can contact you.
|
||||
MSGID_BUGS_ADDRESS = bug-gettext@gnu.org
|
||||
|
||||
# This is the list of locale categories, beyond LC_MESSAGES, for which the
|
||||
# message catalogs shall be used. It is usually empty.
|
||||
EXTRA_LOCALE_CATEGORIES =
|
||||
|
||||
# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
|
||||
# context. Possible values are "yes" and "no". Set this to yes if the
|
||||
# package uses functions taking also a message context, like pgettext(), or
|
||||
# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
|
||||
USE_MSGCTXT = no
|
||||
|
||||
# These options get passed to msgmerge.
|
||||
# Useful options are in particular:
|
||||
# --previous to keep previous msgids of translated messages
|
||||
MSGMERGE_OPTIONS =
|
||||
|
||||
# These options get passed to msginit.
|
||||
# If you want to disable line wrapping when writing PO files, add
|
||||
# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
|
||||
# MSGINIT_OPTIONS.
|
||||
MSGINIT_OPTIONS =
|
||||
|
||||
# This tells whether or not to forcibly update $(DOMAIN).pot and
|
||||
# regenerate PO files on "make dist". Possible values are "yes" and
|
||||
# "no". Set this to no if the POT file and PO files are maintained
|
||||
# externally.
|
||||
DIST_DEPENDS_ON_UPDATE_PO = yes
|
||||
@@ -0,0 +1,7 @@
|
||||
# Example for use of GNU gettext.
|
||||
# This file is in the public domain.
|
||||
#
|
||||
# List of files which contain translatable strings.
|
||||
hello.cc
|
||||
hello.desktop.in.in
|
||||
hello.ui
|
||||
@@ -0,0 +1,50 @@
|
||||
# Afrikaans translation for Silky
|
||||
# Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the silky package.
|
||||
# Hanlie Pretorius <hpretorius@pnp.co.za>, 2004.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: hello-c++-gnome3-0.13.1\n"
|
||||
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
|
||||
"PO-Revision-Date: 2003-12-31 10:30+2\n"
|
||||
"Last-Translator: Ysbeer <ysbeer@af.org.za>\n"
|
||||
"Language-Team: Afrikaans <i18n@af.org.za>\n"
|
||||
"Language: af\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: hello.cc:69
|
||||
msgid "Hello world!"
|
||||
msgstr ""
|
||||
|
||||
#: hello.cc:71
|
||||
#, c-format
|
||||
msgid "This program is running as process number %s."
|
||||
msgstr ""
|
||||
|
||||
#: hello.cc:75
|
||||
msgid "This is another text"
|
||||
msgstr ""
|
||||
|
||||
#: hello.cc:77
|
||||
msgid "This is yet another text"
|
||||
msgstr ""
|
||||
|
||||
#: hello.desktop.in.in:3
|
||||
msgid "Hello"
|
||||
msgstr ""
|
||||
|
||||
#: hello.desktop.in.in:4
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hallo wêreld!"
|
||||
|
||||
#: hello.ui:6
|
||||
msgid "Example Application"
|
||||
msgstr ""
|
||||
|
||||
#: hello.ui:34
|
||||
msgid "Update text"
|
||||
msgstr ""
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user