This file is indexed.

/usr/share/doc/renaissance-doc/html/tutorial/node10.html is in renaissance-doc 0.9.0-4build2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<!--Converted with LaTeX2HTML 2K.1beta (1.48)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>10 Translating the application user interface</TITLE>
<META NAME="description" CONTENT="10 Translating the application user interface">
<META NAME="keywords" CONTENT="Renaissance">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="LaTeX2HTML v2K.1beta">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="Renaissance.css">

<LINK REL="next" HREF="node11.html">
<LINK REL="previous" HREF="node9.html">
<LINK REL="up" HREF="Renaissance.html">
<LINK REL="next" HREF="node11.html">
</HEAD>

<BODY BGCOLOR="#FFFFFF" text="#000000" link="#0000FF" vlink="#4444FF" alink="#3388FF">
<B> Next: <A NAME="tex2html118"
  HREF="node11.html">11 For more information</A> </B>
<B>Up: <A NAME="tex2html116"
  HREF="Renaissance.html">GNUstep Renaissance</A>  </B>
<B> Previous: <A NAME="tex2html110"
  HREF="node9.html">9 Using ids</A> </B>
<BR> <P>

<!--End of Navigation Panel-->

<H1><A NAME="SECTION000100000000000000000">
10 Translating the application user interface</A>
</H1>
Finally, we want to show how easy is to translate the application user
interface when it's built using GNUstep Renaissance.  We will
translate the main window of our application; the
<TT>Window.gsmarkup</TT> file we used to create it contains the
following code:
<PRE>
&lt;gsmarkup&gt;

  &lt;objects&gt;

    &lt;window title="This is a test window" closable="no"&gt;
      &lt;button title="Print Hello!" action="printHello:" target="#NSOwner" /&gt;
    &lt;/window&gt;

  &lt;/objects&gt;

&lt;/gsmarkup&gt;
</PRE>
GNUstep Renaissance automatically knows what attributes require
translation, and what do not.  For example, the <TT>title</TT>
attribute of both the window and the button requires translation, while
the closable attribute, the action and the target attributes, don't.

<P>
When GNUstep Renaissance loads the file <TT>Window.gsmarkup</TT>, it
automatically looks for a localized file <TT>Window.strings</TT>
containing translations of all attributes which require translation,
and uses the translations if found (please note that the name of the
strings file is obtained by replacing the <TT>.gsmarkup</TT> extension
with the <TT>.strings</TT> extension; in this way, different gsmarkup
files automatically use different strings files for translating).

<P>
To translate the window, for example, in Italian, all we need to do
then is to add a Window.strings file, containing the following code:
<PRE>
"This is a test window" = "Finestra di test";
"Print Hello!" = "Stampa Hello!";
</PRE>
(it is recommended that you edit these .strings files in UTF-8 if any
characters are non ASCII) and put it in a Italian.lproj subdirectory.
This file specified that the string <TT>This is a test window</TT> has
to be translated as <TT>Finestra di test</TT>, and that <TT>Print
Hello!</TT> has to be translated as <TT>Stampa Hello!</TT>.

<P>
We then add instructions in the GNUmakefile to install this localized
file in the application bundle:
<PRE>
include $(GNUSTEP_MAKEFILES)/common.make

APP_NAME = Example
Example_OBJC_FILES = main.m
Example_RESOURCE_FILES = \
  Menu-GNUstep.gsmarkup \
  Menu-OSX.gsmarkup \
  Window.gsmarkup
Example_LOCALIZED_RESOURCE_FILES = \
  Window.strings
Example_LANGUAGES = Italian


ifeq ($(FOUNDATION_LIB), apple)
  ADDITIONAL_INCLUDE_DIRS += -framework Renaissance
  ADDITIONAL_GUI_LIBS += -framework Renaissance
else
  ADDITIONAL_GUI_LIBS += -lRenaissance
endif

include $(GNUSTEP_MAKEFILES)/application.make
</PRE>

<P>
Now building the program, and running it with the option
<PRE>
openapp Example.app -NSLanguages '(Italian)'
</PRE>
should display the window in Italian!  Please note that GNUstep
Renaissance has automatically translated the strings using the
appropriate strings file, and then it has automatically sized the
interface objects to fit the translated strings - you don't need to
do anything special except translating, everything just works (this is
not so with gorm and nib files).

<P>
If you are using Apple Mac OS X, to run the program in Italian, try
changing the language preferences setting Italian as preferred
language in the System Preferences, then running the program.

<P>
<HR><B> Next: <A NAME="tex2html118"
  HREF="node11.html">11 For more information</A> </B>
<B>Up: <A NAME="tex2html116"
  HREF="Renaissance.html">GNUstep Renaissance</A> </B>
<B> Previous: <A NAME="tex2html110"
  HREF="node9.html">9 Using ids</A> </B>

<!--End of Navigation Panel-->
<ADDRESS>
Nicola
2003-01-31
</ADDRESS>
</BODY>
</HTML>