Qt-interest Archive, May 2007
Internationalization question
Pages: Prev | 1 | 2 | Next
Message 1 in thread
Hi,
We are about to decide how we will be doing internationalization using
the Qt Tools. Our source tree is complex and has many levels. From the
documentation and what I have been able to try, lupdate doesn't appear
capable of traversing the entire tree to create one .ts file for each
language (unless I do: /*lupdate `find . -name \*.\[Ch\]` -ts
./i18n/central_{it,fr,...}.ts).*/
Is this correct? Is there another technique that big projects use that
is better?
Also, if I have multiple translation files (.qm), does that mean that I
have to instantiate a separate QTranslator object for each and install
each translator on the application (using QApplication::installTranslater) ?
Thanks in advance,
Susan
---
This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records.
Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
Message 2 in thread
Susan Macchia schrieb:
> Hi,
> ...
> documentation and what I have been able to try, lupdate doesn't appear
> capable of traversing the entire tree to create one .ts file for each
> language (unless I do: /*lupdate `find . -name \*.\[Ch\]` -ts
> ./i18n/central_{it,fr,...}.ts).*/
>
> Is this correct? Is there another technique that big projects use that
> is better?
We use the following approach: our project consists of about a dozen
projects (DLLs/shared objects and the executable). Each project is
naturally in a subfolder. In each project we split the source includes
from the other compiler settings, something like this:
project root
+ translation.pro // for translation;includes all sources.pri
+ project.pro // builds all projects
+ subproject_1
| + subproject_1.pro // includes sources.pri
| + sources.pri
| + src
| + ...
+ subproject_2
| + subproject_2.pro // includes sources.pri
| + sources.pri
| + src
| + ...
+ ...
A sources.pri file only contains the SOURCES, HEADERS, RESOURCES and
FORMS (RESOURCES are not translated (i18n), but we put them also into
sources.pri) - it is included both by translation.pro and e.g.
subproject_1.pro.
As to make things work with relative paths you have to specify the
location of the sources like this:
SOURCES += $$PWD/src/SomeSourceFile.cpp \
$$PWD/src/AnotherSourceFile.cpp
Note the use of $$PWD (and *not* $${PWD} or something! Don't ask why, I
don't know; it simply works(tm)) which is automatically converted into
the proper relative path (relative to translation.pro and e.g.
subproject_1.pro respective).
The translation.pro would look like this:
include(subproject_1/sources.pri)
include(subproject_2/sources.pri)
...
TRANSLATIONS = i18n/YourApp_de.ts \
i18n/YourApp_fr.ts \
...
As to update the *.ts files for your entire application (and
subprojects) you'd simply run:
$> lupdate translation.pro
This results in exactly one *.ts file (for each language).
>
> Also, if I have multiple translation files (.qm), does that mean that I
> have to instantiate a separate QTranslator object for each and install
> each translator on the application (using QApplication::installTranslater) ?
No. Typically you have two translators: one for your application which
loads the YourApp_de.qm for example, and the second which loads the Qt
translation files, for example qt_de.qm (they are shipped with Qt, look
into $QTDIR/translations - but you still need to make them accessible to
your application when shipping your application!).
Now when you change the language at runtime (yes, that works with a
little effort) you simply have each translator (the one for your app and
the other for Qt text) re-load the respective *.qm file
(QTranslator::load()).
See also: QEvent::LanguageChange (Qt 4)
Hope that helps, Oliver
--
[ signature omitted ]
Message 3 in thread
Till Oliver Knoll schrieb:
> Susan Macchia schrieb:
>> Hi,
>> ...
>> documentation and what I have been able to try, lupdate doesn't appear
>> capable of traversing the entire tree to create one .ts file for each
>> language (unless I do: /*lupdate `find . -name \*.\[Ch\]` -ts
>> ./i18n/central_{it,fr,...}.ts).*/
>>
>> Is this correct? Is there another technique that big projects use
>> that is better?
>
> We use the following approach: our project consists of about a dozen
> projects (DLLs/shared objects and the executable). Each project is
> naturally in a subfolder. In each project we split the source includes
> from the other compiler settings, something like this:
I might add: our approach comes from "Qt 3 times". Maybe lupdate.exe in
Qt 4 supports "recursively go through all subfolders and collect all
SOURCES and FORMS to translate".
:)
Cheers, Oliver
--
[ signature omitted ]
Message 4 in thread
Thanks for all the info - I don't think that Qt4 supports recursion
(hence my question).
Till Oliver Knoll wrote:
> Till Oliver Knoll schrieb:
>> Susan Macchia schrieb:
>>> Hi,
>>> ...
>>> documentation and what I have been able to try, lupdate doesn't
>>> appear capable of traversing the entire tree to create one .ts file
>>> for each language (unless I do: /*lupdate `find . -name \*.\[Ch\]`
>>> -ts ./i18n/central_{it,fr,...}.ts).*/
>>>
>>> Is this correct? Is there another technique that big projects use
>>> that is better?
>>
>> We use the following approach: our project consists of about a dozen
>> projects (DLLs/shared objects and the executable). Each project is
>> naturally in a subfolder. In each project we split the source
>> includes from the other compiler settings, something like this:
>
> I might add: our approach comes from "Qt 3 times". Maybe lupdate.exe
> in Qt 4 supports "recursively go through all subfolders and collect
> all SOURCES and FORMS to translate".
>
> :)
>
> Cheers, Oliver
>
> --
> To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx with
> "unsubscribe" in the subject or the body.
> List archive and information: http://lists.trolltech.com/qt-interest/
>
>
---
This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records.
Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
--
[ signature omitted ]
Message 5 in thread
This may seem like a silly question - but where are the qt translation
files? I looked in my Qt installation and there are no *.qm files to be
had. Is this a build issue?
Thanks in advance,
Susan
---
This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records.
Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
--
[ signature omitted ]
Message 6 in thread
$QTDIR/translations
> This may seem like a silly question - but where are the qt translation
> files? I looked in my Qt installation and there are no *.qm files to be
> had. Is this a build issue?
>
> Thanks in advance,
> Susan
>
>
> ---
>
> This communication contains confidential information. If you are not the
> intended recipient please return this email to the sender and delete it
> from your records.
>
> Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht
> der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese
> an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
>
> --
> To unsubscribe - send a mail to qt-interest-request@xxxxxxxxxxxxx with
> "unsubscribe" in the subject or the body.
> List archive and information: http://lists.trolltech.com/qt-interest/
--
[ signature omitted ]
Message 7 in thread
RZ wrote:
> $QTDIR/translations
>
>
Thanks! Strangely enough my "find" command didn't turn up any qm files,
but there they are - go figure.
---
This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records.
Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
--
[ signature omitted ]
Message 8 in thread
I'm not sure about your first question because we only create 1 ts file. Other people worry about creating the translation from that .ts file. I don't know if this will help, but this is how we do it.
qmake -project -o project.pro development_directory
lupdate project.pro
As for installing the translation, we only install the one that is appropriate for the current language.
QTranslator project_translator(0);
project+translator.load(QString("project_") + QTextCodec::locale(), "translation_directory");
installTranslator(&project_translator);
Sorry if there are typos. I typed this from memory.
-----Original Message-----
From: Susan Macchia [mailto:qt-list@xxxxxxxxxxxxx]
Sent: Monday, May 21, 2007 09:32
To: qt-interest@xxxxxxxxxxxxx
Subject: Internationalization question
Hi,
We are about to decide how we will be doing internationalization using the Qt Tools. Our source tree is complex and has many levels. From the documentation and what I have been able to try, lupdate doesn't appear capable of traversing the entire tree to create one .ts file for each language (unless I do: lupdate `find . -name \*.\[Ch\]` -ts ./i18n/central_{it,fr,...}.ts).
Is this correct? Is there another technique that big projects use that is better?
Also, if I have multiple translation files (.qm), does that mean that I have to instantiate a separate QTranslator object for each and install each translator on the application (using QApplication::installTranslater) ?
Thanks in advance,
Susan
---
This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records.
Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
Message 9 in thread
That's the goal for us - 1 translation file. But the issue is that
source hierarchy is deep and lupdate doesn't find all sources to
translate when executed from the top.
Jones, Torrin A (US SSA) wrote:
> I'm not sure about your first question because we only create 1 ts
> file. Other people worry about creating the translation from that .ts
> file. I don't know if this will help, but this is how we do it.
>
> qmake -project -o project.pro development_directory
>
> lupdate project.pro
>
> As for installing the translation, we only install the one that is
> appropriate for the current language.
>
> QTranslator project_translator(0);
> project+translator.load(QString("project_") + QTextCodec::locale(),
> "translation_directory");
> installTranslator(&project_translator);
>
> Sorry if there are typos. I typed this from memory.
>
>
> -----Original Message-----
> *From:* Susan Macchia [mailto:qt-list@xxxxxxxxxxxxx]
> *Sent:* Monday, May 21, 2007 09:32
> *To:* qt-interest@xxxxxxxxxxxxx
> *Subject:* Internationalization question
>
> Hi,
>
> We are about to decide how we will be doing internationalization
> using the Qt Tools. Our source tree is complex and has many
> levels. From the documentation and what I have been able to try,
> lupdate doesn't appear capable of traversing the entire tree to
> create one .ts file for each language (unless I do: /*lupdate
> `find . -name \*.\[Ch\]` -ts ./i18n/central_{it,fr,...}.ts).*/
>
> Is this correct? Is there another technique that big projects use
> that is better?
>
> Also, if I have multiple translation files (.qm), does that mean
> that I have to instantiate a separate QTranslator object for each
> and install each translator on the application (using
> QApplication::installTranslater) ?
>
> Thanks in advance,
> Susan
>
> ---
> This communication contains confidential information. If you are
> not the intended recipient please return this email to the sender
> and delete it from your records.
>
> Diese Nachricht enthält vertrauliche Informationen. Sollten Sie
> nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie
> bitte diese an den Absender zurück und löschen Sie die E-mail aus
> Ihrem System.
>
---
This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records.
Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
Message 10 in thread
Well running the commands below does the trick for us. I'm no expert in this, but as far as I can tell the qmake command creates a new project with all the source files (obtained recursively) in it. And the lupdate creates the translation file from the project file. These 2 commands are in a script for us. The script has comments warning about the fact that this can take more than 2 hours. So if you haven't already, you might want to run it on a smaller directory first.
By the way, what Till Oliver Knoll said about having to 2 .qm/.ts files is correct. You'll need to load the one for QT and the one you create. We only do this at start up, but I guess the new hotness is the do it whenever you get a LanguageChange event.
Good luck.
-----Original Message-----
From: Susan Macchia [mailto:qt-list@xxxxxxxxxxxxx]
Sent: Monday, May 21, 2007 10:36
To: Jones, Torrin A (US SSA)
Cc: qt-interest@xxxxxxxxxxxxx
Subject: Re: Internationalization question
That's the goal for us - 1 translation file. But the issue is that source hierarchy is deep and lupdate doesn't find all sources to translate when executed from the top.
Jones, Torrin A (US SSA) wrote:
I'm not sure about your first question because we only create 1 ts file. Other people worry about creating the translation from that .ts file. I don't know if this will help, but this is how we do it.
qmake -project -o project.pro development_directory
lupdate project.pro
As for installing the translation, we only install the one that is appropriate for the current language.
QTranslator project_translator(0);
project+translator.load(QString("project_") + QTextCodec::locale(), "translation_directory");
installTranslator(&project_translator);
Sorry if there are typos. I typed this from memory.
-----Original Message-----
From: Susan Macchia [mailto:qt-list@xxxxxxxxxxxxx]
Sent: Monday, May 21, 2007 09:32
To: qt-interest@xxxxxxxxxxxxx
Subject: Internationalization question
Hi,
We are about to decide how we will be doing internationalization using the Qt Tools. Our source tree is complex and has many levels. From the documentation and what I have been able to try, lupdate doesn't appear capable of traversing the entire tree to create one .ts file for each language (unless I do: lupdate `find . -name \*.\[Ch\]` -ts ./i18n/central_{it,fr,...}.ts).
Is this correct? Is there another technique that big projects use that is better?
Also, if I have multiple translation files (.qm), does that mean that I have to instantiate a separate QTranslator object for each and install each translator on the application (using QApplication::installTranslater) ?
Thanks in advance,
Susan
---
This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records.
Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
---
This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records.
Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
Message 11 in thread
Thanks - this is good stuff.
So, you have a top level project file which contains the TRANSLATIONS
line where all the .ts files are defined and lupdate goes through
recursively finding the SOURCES & HEADERS?
I tried that and it didn't work, but perhaps that's because all our C++
files are postfixed with .C not .cpp.... I'll experiment a bit more.
Jones, Torrin A (US SSA) wrote:
> Well running the commands below does the trick for us. I'm no expert
> in this, but as far as I can tell the qmake command creates a new
> project with all the source files (obtained recursively) in it. And
> the lupdate creates the translation file from the project file. These
> 2 commands are in a script for us. The script has comments warning
> about the fact that this can take more than 2 hours. So if you
> haven't already, you might want to run it on a smaller directory first.
>
> By the way, what Till Oliver Knoll said about having to 2 .qm/.ts
> files is correct. You'll need to load the one for QT and the one you
> create. We only do this at start up, but I guess the new hotness is
> the do it whenever you get a LanguageChange event.
>
> Good luck.
>
> -----Original Message-----
> *From:* Susan Macchia [mailto:qt-list@xxxxxxxxxxxxx]
> *Sent:* Monday, May 21, 2007 10:36
> *To:* Jones, Torrin A (US SSA)
> *Cc:* qt-interest@xxxxxxxxxxxxx
> *Subject:* Re: Internationalization question
>
> That's the goal for us - 1 translation file. But the issue is
> that source hierarchy is deep and lupdate doesn't find all sources
> to translate when executed from the top.
>
> Jones, Torrin A (US SSA) wrote:
>> I'm not sure about your first question because we only create 1
>> ts file. Other people worry about creating the translation from
>> that .ts file. I don't know if this will help, but this is how we
>> do it.
>>
>> qmake -project -o project.pro development_directory
>>
>> lupdate project.pro
>>
>> As for installing the translation, we only install the one that
>> is appropriate for the current language.
>>
>> QTranslator project_translator(0);
>> project+translator.load(QString("project_") +
>> QTextCodec::locale(), "translation_directory");
>> installTranslator(&project_translator);
>>
>> Sorry if there are typos. I typed this from memory.
>>
>>
>> -----Original Message-----
>> *From:* Susan Macchia [mailto:qt-list@xxxxxxxxxxxxx]
>> *Sent:* Monday, May 21, 2007 09:32
>> *To:* qt-interest@xxxxxxxxxxxxx
>> *Subject:* Internationalization question
>>
>> Hi,
>>
>> We are about to decide how we will be doing
>> internationalization using the Qt Tools. Our source tree is
>> complex and has many levels. From the documentation and what
>> I have been able to try, lupdate doesn't appear capable of
>> traversing the entire tree to create one .ts file for each
>> language (unless I do: /*lupdate `find . -name \*.\[Ch\]` -ts
>> ./i18n/central_{it,fr,...}.ts).*/
>>
>> Is this correct? Is there another technique that big
>> projects use that is better?
>>
>> Also, if I have multiple translation files (.qm), does that
>> mean that I have to instantiate a separate QTranslator object
>> for each and install each translator on the application
>> (using QApplication::installTranslater) ?
>>
>> Thanks in advance,
>> Susan
>>
>> ---
>> This communication contains confidential information. If you
>> are not the intended recipient please return this email to
>> the sender and delete it from your records.
>>
>> Diese Nachricht enthält vertrauliche Informationen. Sollten
>> Sie nicht der beabsichtigte Empfänger dieser E-mail sein,
>> senden Sie bitte diese an den Absender zurück und löschen Sie
>> die E-mail aus Ihrem System.
>>
>
>
> ---
> This communication contains confidential information. If you are
> not the intended recipient please return this email to the sender
> and delete it from your records.
>
> Diese Nachricht enthält vertrauliche Informationen. Sollten Sie
> nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie
> bitte diese an den Absender zurück und löschen Sie die E-mail aus
> Ihrem System.
>
---
This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records.
Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
Message 12 in thread
One more question - do you have only one project file? We have many at
the different levels within the hierarchy, this could be why it works at
the top for you and not me.
Susan Macchia wrote:
> Thanks - this is good stuff.
>
> So, you have a top level project file which contains the TRANSLATIONS
> line where all the .ts files are defined and lupdate goes through
> recursively finding the SOURCES & HEADERS?
>
> I tried that and it didn't work, but perhaps that's because all our
> C++ files are postfixed with .C not .cpp.... I'll experiment a bit more.
>
> Jones, Torrin A (US SSA) wrote:
>> Well running the commands below does the trick for us. I'm no expert
>> in this, but as far as I can tell the qmake command creates a new
>> project with all the source files (obtained recursively) in it. And
>> the lupdate creates the translation file from the project file.
>> These 2 commands are in a script for us. The script has comments
>> warning about the fact that this can take more than 2 hours. So if
>> you haven't already, you might want to run it on a smaller directory
>> first.
>>
>> By the way, what Till Oliver Knoll said about having to 2 .qm/.ts
>> files is correct. You'll need to load the one for QT and the one you
>> create. We only do this at start up, but I guess the new hotness is
>> the do it whenever you get a LanguageChange event.
>>
>> Good luck.
>>
>> -----Original Message-----
>> *From:* Susan Macchia [mailto:qt-list@xxxxxxxxxxxxx]
>> *Sent:* Monday, May 21, 2007 10:36
>> *To:* Jones, Torrin A (US SSA)
>> *Cc:* qt-interest@xxxxxxxxxxxxx
>> *Subject:* Re: Internationalization question
>>
>> That's the goal for us - 1 translation file. But the issue is
>> that source hierarchy is deep and lupdate doesn't find all
>> sources to translate when executed from the top.
>>
>> Jones, Torrin A (US SSA) wrote:
>>> I'm not sure about your first question because we only create 1
>>> ts file. Other people worry about creating the translation from
>>> that .ts file. I don't know if this will help, but this is how
>>> we do it.
>>>
>>> qmake -project -o project.pro development_directory
>>>
>>> lupdate project.pro
>>>
>>> As for installing the translation, we only install the one that
>>> is appropriate for the current language.
>>>
>>> QTranslator project_translator(0);
>>> project+translator.load(QString("project_") +
>>> QTextCodec::locale(), "translation_directory");
>>> installTranslator(&project_translator);
>>>
>>> Sorry if there are typos. I typed this from memory.
>>>
>>>
>>> -----Original Message-----
>>> *From:* Susan Macchia [mailto:qt-list@xxxxxxxxxxxxx]
>>> *Sent:* Monday, May 21, 2007 09:32
>>> *To:* qt-interest@xxxxxxxxxxxxx
>>> *Subject:* Internationalization question
>>>
>>> Hi,
>>>
>>> We are about to decide how we will be doing
>>> internationalization using the Qt Tools. Our source tree is
>>> complex and has many levels. From the documentation and
>>> what I have been able to try, lupdate doesn't appear capable
>>> of traversing the entire tree to create one .ts file for
>>> each language (unless I do: /*lupdate `find . -name
>>> \*.\[Ch\]` -ts ./i18n/central_{it,fr,...}.ts).*/
>>>
>>> Is this correct? Is there another technique that big
>>> projects use that is better?
>>>
>>> Also, if I have multiple translation files (.qm), does that
>>> mean that I have to instantiate a separate QTranslator
>>> object for each and install each translator on the
>>> application (using QApplication::installTranslater) ?
>>>
>>> Thanks in advance,
>>> Susan
>>>
---
This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records.
Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
Message 13 in thread
Susan Macchia schrieb:
> Thanks - this is good stuff.
> ..., but perhaps that's because all our C++
> files are postfixed with .C not .cpp.... I'll experiment a bit more.
^^^^
Hmmm, you do not compile C files (*.c) into your project as well by any
chance?
<evil grin>Have you ever tried porting your project to Windows
recently?</evil grin>
Cheers, Oliver
--
[ signature omitted ]
Message 14 in thread
Till Oliver Knoll wrote:
> Susan Macchia schrieb:
>> Thanks - this is good stuff. ..., but perhaps that's because all
>> our C++ files are postfixed with .C not .cpp.... I'll experiment a
>> bit more.
> ^^^^
>
> Hmmm, you do not compile C files (*.c) into your project as well by
> any chance?
>
> <evil grin>Have you ever tried porting your project to Windows
> recently?</evil grin>
That is definitely quite evil - perish the thought! We've no plans to
port to Windows. But in my last job, we did port from Linux to Windows
(and used .C as the c++ extension), but... well, we built with the Intel
compiler, not MS compiler and we built under cygwin. 2 variables that
could impact things....
---
This communication contains confidential information. If you are not the intended recipient please return this email to the sender and delete it from your records.
Diese Nachricht enthält vertrauliche Informationen. Sollten Sie nicht der beabsichtigte Empfänger dieser E-mail sein, senden Sie bitte diese an den Absender zurück und löschen Sie die E-mail aus Ihrem System.
--
[ signature omitted ]
Message 15 in thread
Susan Macchia schrieb:
> Till Oliver Knoll wrote:
>>> ...
>>> our C++ files are postfixed with .C not .cpp.... I'll experiment a
>>> ...
>> Hmmm, you do not compile C files (*.c) into your project as well by
>> any chance?
>> ...
> (and used .C as the c++ extension), but... well, we built with the Intel
> compiler, not MS compiler and we built under cygwin. 2 variables that
> could impact things....
I had actually the following in mind: there was this other guy a few
weeks ago on this list, bashing the hell out of Windows, because he had
those two files named:
foo.c
foo.C
Works perfectly on any case-sensitive file system. But guess what
happened to him on Windows (hint: FAT32/NTFS are merely case-preserving
;)... >:-)
Cheers, Oliver
--
[ signature omitted ]
Pages: Prev | 1 | 2 | Next