Commit fdff5230 authored by Sylvain Petreolle's avatar Sylvain Petreolle Committed by Alexandre Julliard

Converted to use of NLS.

parent 89118568
Tue Mar 26 19:15:00 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* [*.rc] [clock_res.h] [main.?] [language.?]
Rewrite for NLS use.
Tue Oct 12 20:31:00 1999 Gustavo Junior Alves <alves@correionet.com.br> Tue Oct 12 20:31:00 1999 Gustavo Junior Alves <alves@correionet.com.br>
* [Pt.rc] [Makefile.in] * [Pt.rc] [Makefile.in]
Added Portuguese language support. Added Portuguese language support.
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
* Clock (Danish resources) * Clock (Danish resources)
* *
* Copyright 1998 Henrik Olsen <henrik@iaeste.dk> * Copyright 1998 Henrik Olsen <henrik@iaeste.dk>
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -18,38 +19,28 @@ ...@@ -18,38 +19,28 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#define LANGUAGE_ID Da MAIN_MENU MENU LANGUAGE LANG_DANISH, SUBLANG_NEUTRAL
#define LANGUAGE_NUMBER 6 {
POPUP "&Instillinger" {
MENUITEM "&Analog", 0x100
/* System Menu */ MENUITEM "&Digital", 0x101
MENUITEM SEPARATOR
#define MENU_ON_TOP "&Altid verst" MENUITEM "&Skrifttype...", 0x103
MENUITEM SEPARATOR
MENUITEM "Skjul Titel&linje", 0x105
/* Window Menu */ MENUITEM SEPARATOR
MENUITEM "Se&kunder", 0x107
#define MENU_PROPERTIES "&Instillinger" MENUITEM "Da&to", 0x108
#define MENU_ANALOG "&Analog" }
#define MENU_DIGITAL "&Digital" POPUP "Inf&o..." {
#define MENU_FONT "&Skrifttype..." MENUITEM "&Licens", 0x109
#define MENU_WITHOUT_TITLE "Skjul Titel&linje" MENUITEM "&NO WARRANTY", 0x10A
MENUITEM "&Om Ur...", 0x10B
#define MENU_SECONDS "Se&kunder" }
#define MENU_DATE "Da&to" }
#define MENU_LANGUAGE "S&prog" STRINGTABLE DISCARDABLE LANGUAGE LANG_DANISH, SUBLANG_NEUTRAL
#define LANGUAGE_MENU_ITEM "&Dansk" {
CLOCK, "Ur"
#define MENU_INFO "Inf&o..." MENU_ON_TOP, "&Altid verst"
#define MENU_INFO_LICENSE "&Licens" }
#define MENU_INFO_NO_WARRANTY "&NO WARRANTY"
#define MENU_INFO_ABOUT_WINE "&Om Ur..."
/* Window Caption */
#define STRING_CLOCK "Ur"
#include "clock.rc"
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
* Clock (German resources) * Clock (German resources)
* *
* Copyright 1997 Marcel Baur <mbaur@g26.ethz.ch> * Copyright 1997 Marcel Baur <mbaur@g26.ethz.ch>
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -18,37 +19,28 @@ ...@@ -18,37 +19,28 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#define LANGUAGE_ID De MAIN_MENU MENU LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
#define LANGUAGE_NUMBER 2 {
POPUP "&Einstellungen" {
MENUITEM "Ana&log", 0x100
/* System Menu */ MENUITEM "Digi&tal", 0x101
MENUITEM SEPARATOR
#define MENU_ON_TOP "&Immer im Vordergrund" MENUITEM "Schrift&art...", 0x103
MENUITEM SEPARATOR
MENUITEM "&Ohne Titelleiste", 0x105
/* Window Menu */ MENUITEM SEPARATOR
MENUITEM "&Sekunden", 0x107
#define MENU_PROPERTIES "&Einstellungen" MENUITEM "&Datum", 0x108
#define MENU_ANALOG "Ana&log" }
#define MENU_DIGITAL "Digi&tal" POPUP "Inf&o..." {
#define MENU_FONT "Schrift&art..." MENUITEM "&Lizenz", 0x109
#define MENU_WITHOUT_TITLE "&Ohne Titelleiste" MENUITEM "&KEINE GARANTIE", 0x10A
MENUITEM "&ber Uhr", 0x10B
#define MENU_SECONDS "&Sekunden" }
#define MENU_DATE "&Datum" }
#define MENU_LANGUAGE "&Sprache" STRINGTABLE DISCARDABLE LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
#define LANGUAGE_MENU_ITEM "&Deutsch" {
CLOCK, "Uhr"
#define MENU_INFO "Inf&o..." MENU_ON_TOP, "&Immer im Vordergrund"
#define MENU_INFO_LICENSE "&Lizenz" }
#define MENU_INFO_NO_WARRANTY "&KEINE GARANTIE"
#define MENU_INFO_ABOUT_WINE "&ber Uhr..."
/* Window Caption */
#define STRING_CLOCK "Uhr"
#include "clock.rc"
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* Clock (English resources) * Clock (English resources)
* *
* Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch> * Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch>
* FIXME: Weak translation ! * Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -19,35 +19,28 @@ ...@@ -19,35 +19,28 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#define LANGUAGE_ID En MAIN_MENU MENU LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
#define LANGUAGE_NUMBER 0 {
POPUP "&Properties" {
MENUITEM "Ana&log", 0x100
/* System Menu */ MENUITEM "Digi&tal", 0x101
MENUITEM SEPARATOR
#define MENU_ON_TOP "&Always on Top" MENUITEM "&Font...", 0x103
MENUITEM SEPARATOR
/* Window Menu */ MENUITEM "&Without Titlebar", 0x105
MENUITEM SEPARATOR
#define MENU_PROPERTIES "&Properties" MENUITEM "&Seconds", 0x107
#define MENU_ANALOG "Ana&log" MENUITEM "&Date", 0x108
#define MENU_DIGITAL "Digi&tal" }
#define MENU_FONT "&Font..." POPUP "Inf&o..." {
#define MENU_WITHOUT_TITLE "&Without Titlebar" MENUITEM "&License", 0x109
MENUITEM "&NO WARRANTY", 0x10A
#define MENU_SECONDS "&Seconds" MENUITEM "&About Clock... ", 0x10B
#define MENU_DATE "&Date" }
}
#define MENU_LANGUAGE "&Language"
#define LANGUAGE_MENU_ITEM "&English" STRINGTABLE DISCARDABLE LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
{
#define MENU_INFO "Inf&o..." CLOCK, "Clock"
#define MENU_INFO_LICENSE "&License" MENU_ON_TOP, "&Always on Top"
#define MENU_INFO_NO_WARRANTY "&NO WARRANTY" }
#define MENU_INFO_ABOUT_WINE "&About Clock..."
/* Window Caption */
#define STRING_CLOCK "Clock"
#include "clock.rc"
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
* *
* Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch> * Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch>
* Spanish translation by Pablo Saratxaga <srtxg@chanae.alphanet.ch> * Spanish translation by Pablo Saratxaga <srtxg@chanae.alphanet.ch>
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -19,35 +20,28 @@ ...@@ -19,35 +20,28 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#define LANGUAGE_ID Es MAIN_MENU MENU LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
#define LANGUAGE_NUMBER d {
POPUP "&Propepiedades" {
MENUITEM "Ana&lgico", 0x100
/* System Menu */ MENUITEM "Digi&tal", 0x101
MENUITEM SEPARATOR
#define MENU_ON_TOP "Siempre &visible" MENUITEM "&Fuente...", 0x103
MENUITEM SEPARATOR
/* Window Menu */ MENUITEM "Sin barra de &ttulo", 0x105
MENUITEM SEPARATOR
#define MENU_PROPERTIES "&Propepiedades" MENUITEM "&Segundos", 0x107
#define MENU_ANALOG "Ana&lgico" MENUITEM "Fe&cha", 0x108
#define MENU_DIGITAL "Digi&tal" }
#define MENU_FONT "&Fuente..." POPUP "Inf&o..." {
#define MENU_WITHOUT_TITLE "Sin barra de &ttulo" MENUITEM "&Licencia", 0x109
MENUITEM "&SIN &GARANTA", 0x10A
#define MENU_SECONDS "&Segundos" MENUITEM "&Acerca del Reloj...", 0x10B
#define MENU_DATE "Fe&cha" }
}
#define MENU_LANGUAGE "&Idioma"
#define LANGUAGE_MENU_ITEM "Castellano" STRINGTABLE DISCARDABLE LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
{
#define MENU_INFO "Inf&o..." CLOCK, "Reloj"
#define MENU_INFO_LICENSE "&Licencia" MENU_ON_TOP, "Siempre &visible"
#define MENU_INFO_NO_WARRANTY "SIN &GARANTA" }
#define MENU_INFO_ABOUT_WINE "&Acerca del Reloj..."
/* Window Caption */
#define STRING_CLOCK "Reloj"
#include "clock.rc"
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
* Clock (Finnish resources) * Clock (Finnish resources)
* *
* Copyright 1999 Jukka Iivonen * Copyright 1999 Jukka Iivonen
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -18,35 +19,28 @@ ...@@ -18,35 +19,28 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#define LANGUAGE_ID Fi MAIN_MENU MENU LANGUAGE LANG_FINNISH, SUBLANG_NEUTRAL
#define LANGUAGE_NUMBER b {
POPUP "&Ominaisuudet" {
MENUITEM "&Analoginen", 0x100
/* System Menu */ MENUITEM "Di&gitaalinen", 0x101
MENUITEM SEPARATOR
#define MENU_ON_TOP "&Aina pllimmisen" MENUITEM "&Fontti...", 0x103
MENUITEM SEPARATOR
/* Window Menu */ MENUITEM "&Ilman otsikkopalkkia", 0x105
MENUITEM SEPARATOR
#define MENU_PROPERTIES "&Ominaisuudet" MENUITEM "&Sekunnit", 0x107
#define MENU_ANALOG "&Analoginen" MENUITEM "&Pivmr", 0x108
#define MENU_DIGITAL "Di&gitaalinen" }
#define MENU_FONT "&Fontti..." POPUP "Inf&o..." {
#define MENU_WITHOUT_TITLE "&Ilman otsikkopalkkia" MENUITEM "&Lisenssi", 0x109
MENUITEM "&EI TAKUUTA", 0x10A
#define MENU_SECONDS "&Sekunnit" MENUITEM "&Kellosta...", 0x10B
#define MENU_DATE "&Pivmr" }
}
#define MENU_LANGUAGE "&Kieli"
#define LANGUAGE_MENU_ITEM "&Finnish" STRINGTABLE DISCARDABLE LANGUAGE LANG_FINNISH, SUBLANG_NEUTRAL
{
#define MENU_INFO "Inf&o..." CLOCK, "Kello"
#define MENU_INFO_LICENSE "&Lisenssi" MENU_ON_TOP, "&Aina pllimmisen"
#define MENU_INFO_NO_WARRANTY "&EI TAKUUTA" }
#define MENU_INFO_ABOUT_WINE "&Kellosta..."
/* Window Caption */
#define STRING_CLOCK "Kello"
#include "clock.rc"
/* /*
* Clock (French resources) * Clock (French resources)
* *
* Copyright 1998 Robert Pouliot <krynos@clic.net> * Copyright 1998 Robert Pouliot <krynos@clic.net>
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -18,35 +19,28 @@ ...@@ -18,35 +19,28 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#define LANGUAGE_ID Fr MAIN_MENU MENU LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
#define LANGUAGE_NUMBER 4 {
POPUP "&Proprits" {
MENUITEM "Ana&logue", 0x100
/* System Menu */ MENUITEM "Digi&tale", 0x101
MENUITEM SEPARATOR
#define MENU_ON_TOP "&Toujours visible" MENUITEM "&Fonte...", 0x103
MENUITEM SEPARATOR
/* Window Menu */ MENUITEM "&Sans barre de titre", 0x105
MENUITEM SEPARATOR
#define MENU_PROPERTIES "&Proprits" MENUITEM "&Secondes", 0x107
#define MENU_ANALOG "Ana&logue" MENUITEM "&Date", 0x108
#define MENU_DIGITAL "Digi&tale" }
#define MENU_FONT "&Fonte..." POPUP "Inf&o..." {
#define MENU_WITHOUT_TITLE "&Sans barre titre" MENUITEM "&Licence", 0x109
MENUITEM "&AUCUNE GARANTIE", 0x10A
#define MENU_SECONDS "&Secondes" MENUITEM "&A propos de Horloge", 0x10B
#define MENU_DATE "&Date" }
}
#define MENU_LANGUAGE "&Langue"
#define LANGUAGE_MENU_ITEM "&Franais" STRINGTABLE DISCARDABLE LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
{
#define MENU_INFO "Inf&o..." CLOCK, "Horloge"
#define MENU_INFO_LICENSE "&Licence" MENU_ON_TOP, "&Toujours visible"
#define MENU_INFO_NO_WARRANTY "&NO WARRANTY" }
#define MENU_INFO_ABOUT_WINE "&A propos de l'horloge..."
/* Window Caption */
#define STRING_CLOCK "Horloge"
#include "clock.rc"
/* /*
* Clock (English resources) * Clock (Portuguese resources)
* *
* Copyright 1999 Gustavo Junior Alves <alves@correionet.com.br> * Copyright 1999 Gustavo Junior Alves <alves@correionet.com.br>
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* FIXME: Weak translation ! * FIXME: Weak translation !
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
...@@ -19,34 +20,28 @@ ...@@ -19,34 +20,28 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#define LANGUAGE_ID Pt MAIN_MENU MENU LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
#define LANGUAGE_NUMBER 16 {
#define LANGUAGE_MENU_ITEM "&Portugus" POPUP "&Propriedades" {
MENUITEM "&Analgico", 0x100
/* System Menu */ MENUITEM "Digi&tal", 0x101
MENUITEM SEPARATOR
#define MENU_ON_TOP "&Sempre visvel" MENUITEM "&Fonte...", 0x103
MENUITEM SEPARATOR
/* Window Menu */ MENUITEM "&Sem barra de ttulo", 0x105
MENUITEM SEPARATOR
#define MENU_PROPERTIES "&Propriedades" MENUITEM "&Segundos", 0x107
#define MENU_ANALOG "&Analgico" MENUITEM "&Data", 0x108
#define MENU_DIGITAL "&Digital" }
#define MENU_FONT "&Fonte..." POPUP "Inf&ormaes..." {
#define MENU_WITHOUT_TITLE "&Sem barra de ttulo" MENUITEM "&Licena", 0x109
MENUITEM "&SEM GARANTIA", 0x10A
#define MENU_SECONDS "&Segundos" MENUITEM "&Sobre Clock...", 0x10B
#define MENU_DATE "&Data" }
}
#define MENU_LANGUAGE "&Linguagem"
STRINGTABLE DISCARDABLE LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
#define MENU_INFO "Inf&ormaes..." {
#define MENU_INFO_LICENSE "&Licena" CLOCK, "Clock"
#define MENU_INFO_NO_WARRANTY "&SEM GARANTIA" MENU_ON_TOP, "&Sempre visvel"
#define MENU_INFO_ABOUT_WINE "&Sobre Clock..." }
/* Window Caption */
#define STRING_CLOCK "Clock"
#include "clock.rc"
/* /*
* Clock (English resources) * Clock (Slovak resources)
* *
* Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch> * Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch>
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* FIXME: Weak translation ! * FIXME: Weak translation !
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
...@@ -19,35 +20,28 @@ ...@@ -19,35 +20,28 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#define LANGUAGE_ID Sk MAIN_MENU MENU LANGUAGE LANG_SLOVAK, SUBLANG_NEUTRAL
#define LANGUAGE_NUMBER 10 {
POPUP "&Vlastnosti" {
MENUITEM "Ana&lgov", 0x100
/* System Menu */ MENUITEM "Digi&tlne", 0x101
MENUITEM SEPARATOR
#define MENU_ON_TOP "&Vdy na vrchu" MENUITEM "&Font...", 0x103
MENUITEM SEPARATOR
/* Window Menu */ MENUITEM "&Bez titulkovho pruhu", 0x105
MENUITEM SEPARATOR
#define MENU_PROPERTIES "&Vlastnosti" MENUITEM "&Sekundy", 0x107
#define MENU_ANALOG "Ana&lgov" MENUITEM "&Dtum", 0x108
#define MENU_DIGITAL "Digi&tlne" }
#define MENU_FONT "&Font..." POPUP "Inf&o..." {
#define MENU_WITHOUT_TITLE "&Bez titulkovho pruhu" MENUITEM "&Licencia", 0x109
MENUITEM "&BEZ ZRUKY", 0x10A
#define MENU_SECONDS "&Sekundy" MENUITEM "&O hodinch...", 0x10B
#define MENU_DATE "&Dtum" }
}
#define MENU_LANGUAGE "&Jazyk"
#define LANGUAGE_MENU_ITEM "&Slovensky" STRINGTABLE DISCARDABLE LANGUAGE LANG_SLOVAK, SUBLANG_NEUTRAL
{
#define MENU_INFO "Inf&o..." CLOCK, "Hodiny"
#define MENU_INFO_LICENSE "&Licencia" MENU_ON_TOP, "&Vdy na vrchu"
#define MENU_INFO_NO_WARRANTY "&BEZ ZRUKY" }
#define MENU_INFO_ABOUT_WINE "&O hodinch..."
/* Window Caption */
#define STRING_CLOCK "Hodiny"
#include "clock.rc"
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
* *
* Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch> * Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch>
* Translated into Swedish by Karl Backstrm <karl_b@geocities.com> * Translated into Swedish by Karl Backstrm <karl_b@geocities.com>
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -19,37 +20,28 @@ ...@@ -19,37 +20,28 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#define LANGUAGE_ID Sw MAIN_MENU MENU LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
#define LANGUAGE_NUMBER 1d {
POPUP "&Egenskaper" {
MENUITEM "Ana&log", 0x100
/* System Menu */ MENUITEM "Digi&tal", 0x101
MENUITEM SEPARATOR
#define MENU_ON_TOP "&Alltid verst" MENUITEM "&Font...", 0x103
MENUITEM SEPARATOR
MENUITEM "&Utan Titlebar", 0x105
/* Window Menu */ MENUITEM SEPARATOR
MENUITEM "&Sekunder", 0x107
#define MENU_PROPERTIES "&Egenskaper" MENUITEM "&Datum", 0x108
#define MENU_ANALOG "Ana&log" }
#define MENU_DIGITAL "Digi&tal" POPUP "Inf&o..." {
#define MENU_FONT "&Font..." MENUITEM "&Licens", 0x109
#define MENU_WITHOUT_TITLE "&Utan Titlebar" MENUITEM "&INGEN GARANTI", 0x10A
MENUITEM "&Om Klockan...", 0x10B
#define MENU_SECONDS "&Sekunder" }
#define MENU_DATE "&Datum" }
#define MENU_LANGUAGE "&Sprk" STRINGTABLE DISCARDABLE LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
#define LANGUAGE_MENU_ITEM "&Svenska" {
CLOCK, "Klockan"
#define MENU_INFO "Inf&o..." MENU_ON_TOP, "&Alltid verst"
#define MENU_INFO_LICENSE "&Licens" }
#define MENU_INFO_NO_WARRANTY "&INGEN GARANTI"
#define MENU_INFO_ABOUT_WINE "&Om Klockan..."
/* Window Caption */
#define STRING_CLOCK "Klockan"
#include "clock.rc"
...@@ -11,8 +11,7 @@ Some ideas for improvements: ...@@ -11,8 +11,7 @@ Some ideas for improvements:
- Implement Timer Mechanism instead Polling. - Implement Timer Mechanism instead Polling.
Clock does not run if menu is being selected (?). Clock does not run if menu is being selected (?).
- Fix English translation by comparing strings from an original English - Complete translation for the following languages : Pt,Sk
Windows Clock application (I only have a German version).
- Add new .rc resources for all languages you know. That's in fact very easy. - Add new .rc resources for all languages you know. That's in fact very easy.
Just clone the file En.rc, change the strings and submit it. You can find Just clone the file En.rc, change the strings and submit it. You can find
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
* Clock (Walloon resources) * Clock (Walloon resources)
* *
* Copyright 1999 Pablo Saratxaga * Copyright 1999 Pablo Saratxaga
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
...@@ -22,35 +23,28 @@ ...@@ -22,35 +23,28 @@
* *
*/ */
#define LANGUAGE_ID Wa MAIN_MENU MENU LANGUAGE LANG_WALON, SUBLANG_NEUTRAL
#define LANGUAGE_NUMBER 90 {
POPUP "&Propiets" {
MENUITEM "&Analodjike", 0x100
/* System Menu */ MENUITEM "&Limerike", 0x101
MENUITEM SEPARATOR
#define MENU_ON_TOP "Todi &Visibe" MENUITEM "&Fonte...", 0x103
MENUITEM SEPARATOR
/* Window Menu */ MENUITEM "Sin br di &Tite", 0x105
MENUITEM SEPARATOR
#define MENU_PROPERTIES "&Propiets" MENUITEM "&Segondes", 0x107
#define MENU_ANALOG "&Analodjike" MENUITEM "&Date", 0x108
#define MENU_DIGITAL "&Limerike" }
#define MENU_FONT "&Fonte..." POPUP "&Informcion..." {
#define MENU_WITHOUT_TITLE "Sin br di &Tite" MENUITEM "&Licinse", 0x109
MENUITEM "&NOLE WARANTEYE", 0x10A
#define MENU_SECONDS "&Segondes" MENUITEM " &dfait di l' rlodje...", 0x10B
#define MENU_DATE "&Date" }
}
#define MENU_LANGUAGE "&Lingaedje"
#define LANGUAGE_MENU_ITEM "&Walon" STRINGTABLE DISCARDABLE LANGUAGE LANG_WALON, SUBLANG_NEUTRAL
{
#define MENU_INFO "&Informcion..." CLOCK, "rlodje"
#define MENU_INFO_LICENSE "&Licinse" MENU_ON_TOP, "Todi &Visibe"
#define MENU_INFO_NO_WARRANTY "&NOLE WARANTEYE" }
#define MENU_INFO_ABOUT_WINE " &dfait di l' rlodje..."
/* Window Caption */
#define STRING_CLOCK "rlodje"
#include "clock.rc"
/*
* Clock (clock.rc)
*
* Copyright 1998 Marcel Baur <mbaur@g26.ethz.ch>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* Main Menu */
CONCAT(MENU_, LANGUAGE_ID) MENU
{
POPUP MENU_PROPERTIES {
MENUITEM MENU_ANALOG, CL_ANALOG
MENUITEM MENU_DIGITAL, CL_DIGITAL
MENUITEM SEPARATOR
MENUITEM MENU_FONT, CL_FONT
MENUITEM SEPARATOR
MENUITEM MENU_WITHOUT_TITLE, CL_WITHOUT_TITLE
MENUITEM SEPARATOR
MENUITEM MENU_SECONDS, CL_SECONDS
MENUITEM MENU_DATE, CL_DATE
}
POPUP MENU_LANGUAGE {
/* Dummy item, will be removed */
MENUITEM SEPARATOR
}
POPUP MENU_INFO {
MENUITEM MENU_INFO_LICENSE, CL_INFO_LICENSE
MENUITEM MENU_INFO_NO_WARRANTY, CL_INFO_NO_WARRANTY
MENUITEM MENU_INFO_ABOUT_WINE, CL_INFO_ABOUT_WINE
}
}
/* Strings */
#define STRING_LANGUAGE_ID STRINGIFY(LANGUAGE_ID)
#define STRING_LANGUAGE_MENU_ITEM LANGUAGE_MENU_ITEM
#define STRING_MENU_ON_TOP MENU_ON_TOP
STRINGTABLE
{
ADDSTRING(LANGUAGE_ID)
ADDSTRING(LANGUAGE_MENU_ITEM)
ADDSTRING(CLOCK)
ADDSTRING(MENU_ON_TOP)
}
/* Undefine all language-specific strings */
#undef LANGUAGE_ID
#undef LANGUAGE_NUMBER
#undef MENU_ON_TOP
#undef MENU_PROPERTIES
#undef MENU_ANALOG
#undef MENU_DIGITAL
#undef MENU_FONT
#undef MENU_WITHOUT_TITLE
#undef MENU_SECONDS
#undef MENU_DATE
#undef MENU_LANGUAGE
#undef LANGUAGE_MENU_ITEM
#undef MENU_INFO
#undef MENU_INFO_LICENSE
#undef MENU_INFO_NO_WARRANTY
#undef MENU_INFO_ABOUT_WINE
#undef STRING_LANGUAGE_ID
#undef STRING_LANGUAGE_MENU_ITEM
#undef STRING_MENU_ON_TOP
#undef STRING_CLOCK
/*
* Copyright 2002 Sylvain Petreolle
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#define CLOCK 0x10C
#define MENU_ON_TOP 0x10D
#define MAIN_MENU 0x10E
...@@ -33,11 +33,11 @@ VOID LANGUAGE_UpdateMenuCheckmarks(VOID) { ...@@ -33,11 +33,11 @@ VOID LANGUAGE_UpdateMenuCheckmarks(VOID) {
/* analog clock */ /* analog clock */
CheckMenuItem(Globals.hPropertiesMenu, CL_ANALOG, \ CheckMenuItem(Globals.hPropertiesMenu, 0x100, \
MF_BYCOMMAND | MF_CHECKED); MF_BYCOMMAND | MF_CHECKED);
CheckMenuItem(Globals.hPropertiesMenu, CL_DIGITAL, \ CheckMenuItem(Globals.hPropertiesMenu, 0x101, \
MF_BYCOMMAND | MF_UNCHECKED); MF_BYCOMMAND | MF_UNCHECKED);
EnableMenuItem(Globals.hPropertiesMenu, CL_FONT, \ EnableMenuItem(Globals.hPropertiesMenu, 0x103, \
MF_BYCOMMAND | MF_GRAYED); MF_BYCOMMAND | MF_GRAYED);
} }
else else
...@@ -45,22 +45,22 @@ VOID LANGUAGE_UpdateMenuCheckmarks(VOID) { ...@@ -45,22 +45,22 @@ VOID LANGUAGE_UpdateMenuCheckmarks(VOID) {
/* digital clock */ /* digital clock */
CheckMenuItem(Globals.hPropertiesMenu, CL_ANALOG, \ CheckMenuItem(Globals.hPropertiesMenu, 0x100, \
MF_BYCOMMAND | MF_UNCHECKED); MF_BYCOMMAND | MF_UNCHECKED);
CheckMenuItem(Globals.hPropertiesMenu, CL_DIGITAL, \ CheckMenuItem(Globals.hPropertiesMenu, 0x101, \
MF_BYCOMMAND | MF_CHECKED); MF_BYCOMMAND | MF_CHECKED);
EnableMenuItem(Globals.hPropertiesMenu, CL_FONT, \ EnableMenuItem(Globals.hPropertiesMenu, 0x103, \
MF_BYCOMMAND); MF_BYCOMMAND);
} }
CheckMenuItem(Globals.hPropertiesMenu, CL_WITHOUT_TITLE, MF_BYCOMMAND | \ CheckMenuItem(Globals.hPropertiesMenu, 0x105, MF_BYCOMMAND | \
(Globals.bWithoutTitle ? MF_CHECKED : MF_UNCHECKED)); (Globals.bWithoutTitle ? MF_CHECKED : MF_UNCHECKED));
CheckMenuItem(Globals.hSystemMenu, CL_ON_TOP, MF_BYCOMMAND | \ CheckMenuItem(Globals.hSystemMenu, 0x10D, MF_BYCOMMAND | \
(Globals.bAlwaysOnTop ? MF_CHECKED : MF_UNCHECKED)); (Globals.bAlwaysOnTop ? MF_CHECKED : MF_UNCHECKED));
CheckMenuItem(Globals.hPropertiesMenu, CL_SECONDS, MF_BYCOMMAND | \ CheckMenuItem(Globals.hPropertiesMenu, 0x107, MF_BYCOMMAND | \
(Globals.bSeconds ? MF_CHECKED : MF_UNCHECKED)); (Globals.bSeconds ? MF_CHECKED : MF_UNCHECKED));
CheckMenuItem(Globals.hPropertiesMenu, CL_DATE, MF_BYCOMMAND | \ CheckMenuItem(Globals.hPropertiesMenu, 0x108, MF_BYCOMMAND | \
(Globals.bDate ? MF_CHECKED : MF_UNCHECKED)); (Globals.bDate ? MF_CHECKED : MF_UNCHECKED));
} }
...@@ -79,7 +79,7 @@ VOID LANGUAGE_UpdateWindowCaption(VOID) { ...@@ -79,7 +79,7 @@ VOID LANGUAGE_UpdateWindowCaption(VOID) {
MAX_STRING_LEN); MAX_STRING_LEN);
/* Set frame caption */ /* Set frame caption */
LoadString(Globals.hInstance, IDS_CLOCK, szCaption, sizeof(szCaption)); LoadString(Globals.hInstance, 0x10C, szCaption, sizeof(szCaption));
if (Globals.bDate) { if (Globals.bDate) {
lstrcat(szCaption, " - "); lstrcat(szCaption, " - ");
lstrcat(szCaption, szDate); lstrcat(szCaption, szDate);
...@@ -88,72 +88,19 @@ VOID LANGUAGE_UpdateWindowCaption(VOID) { ...@@ -88,72 +88,19 @@ VOID LANGUAGE_UpdateWindowCaption(VOID) {
} }
VOID LANGUAGE_LoadMenus(VOID)
static BOOL LANGUAGE_LoadStringOther(UINT num, UINT ids, LPSTR str, UINT len)
{
ids -= Globals.wStringTableOffset;
ids += num * 0x100;
return(LoadString(Globals.hInstance, ids, str, len));
};
VOID LANGUAGE_SelectByName(LPCSTR lang)
{ {
INT i;
CHAR szNewLang[3];
for (i = 0; i <= MAX_LANGUAGE_NUMBER; i++)
if (LANGUAGE_LoadStringOther(i, IDS_LANGUAGE_ID, szNewLang,
sizeof(szNewLang)) && !lstrcmp(lang, szNewLang))
{
LANGUAGE_SelectByNumber(i);
return;
}
/* Fallback */
for (i = 0; i <= MAX_LANGUAGE_NUMBER; i++)
if (LANGUAGE_LoadStringOther(i, IDS_LANGUAGE_ID, szNewLang, sizeof(szNewLang)))
{
LANGUAGE_SelectByNumber(i);
return;
}
MessageBox(Globals.hMainWnd, "No language found", "FATAL ERROR", MB_OK);
PostQuitMessage(1);
}
VOID LANGUAGE_SelectByNumber(UINT num)
{
INT i;
CHAR szLanguage[3];
CHAR szItem[MAX_STRING_LEN]; CHAR szItem[MAX_STRING_LEN];
HMENU hMainMenu; HMENU hMainMenu;
/* Select string table */
Globals.wStringTableOffset = num * 0x100;
/* Get Language id */
LoadString(Globals.hInstance, IDS_LANGUAGE_ID, szLanguage, sizeof(szLanguage));
/* Change Resource names */
lstrcpyn(STRING_MENU_Xx + sizeof(STRING_MENU_Xx) - 3, szLanguage, 3);
/* Create menu */ /* Create menu */
hMainMenu = LoadMenu(Globals.hInstance, STRING_MENU_Xx); hMainMenu = LoadMenu(Globals.hInstance, MAIN_MENU);
Globals.hPropertiesMenu = GetSubMenu(hMainMenu, 0); Globals.hPropertiesMenu = GetSubMenu(hMainMenu, 0);
Globals.hLanguageMenu = GetSubMenu(hMainMenu, 1); Globals.hLanguageMenu = GetSubMenu(hMainMenu, 1);
Globals.hInfoMenu = GetSubMenu(hMainMenu, 2); Globals.hInfoMenu = GetSubMenu(hMainMenu, 2);
/* Remove dummy item */
RemoveMenu(Globals.hLanguageMenu, 0, MF_BYPOSITION);
/* Add language items */
for (i = 0; i <= MAX_LANGUAGE_NUMBER; i++)
if (LANGUAGE_LoadStringOther(i, IDS_LANGUAGE_MENU_ITEM, szItem, sizeof(szItem)))
AppendMenu(Globals.hLanguageMenu, MF_STRING | MF_BYCOMMAND,
CL_FIRST_LANGUAGE + i, szItem);
EnableMenuItem(Globals.hLanguageMenu, CL_FIRST_LANGUAGE + num, MF_BYCOMMAND | MF_CHECKED);
SetMenu(Globals.hMainWnd, hMainMenu); SetMenu(Globals.hMainWnd, hMainMenu);
/* Destroy old menu */ /* Destroy old menu */
...@@ -169,16 +116,18 @@ VOID LANGUAGE_SelectByNumber(UINT num) ...@@ -169,16 +116,18 @@ VOID LANGUAGE_SelectByNumber(UINT num)
/* FIXME: Append a SEPARATOR to Globals.hSystemMenu here */ /* FIXME: Append a SEPARATOR to Globals.hSystemMenu here */
LoadString(Globals.hInstance, IDS_MENU_ON_TOP, szItem, sizeof(szItem)); LoadString(Globals.hInstance, 0x10D, szItem, sizeof(szItem));
AppendMenu(Globals.hSystemMenu, MF_STRING | MF_BYCOMMAND, 1000, szItem); AppendMenu(Globals.hSystemMenu, MF_STRING | MF_BYCOMMAND, 1000, szItem);
} }
/*
VOID LANGUAGE_DefaultHandle(WPARAM wParam) VOID LANGUAGE_DefaultHandle(WPARAM wParam)
{ {
if ((wParam >=CL_FIRST_LANGUAGE) && (wParam<=CL_LAST_LANGUAGE)) if ((wParam >=CL_FIRST_LANGUAGE) && (wParam<=CL_LAST_LANGUAGE))
LANGUAGE_SelectByNumber(wParam - CL_FIRST_LANGUAGE); LANGUAGE_SelectByNumber(wParam - CL_FIRST_LANGUAGE);
else printf("Unimplemented menu command %i\n", wParam); else printf("Unimplemented menu command %i\n", wParam);
} }
*/
/* Local Variables: */ /* Local Variables: */
/* c-file-style: "GNU" */ /* c-file-style: "GNU" */
......
...@@ -21,8 +21,7 @@ ...@@ -21,8 +21,7 @@
VOID LANGUAGE_UpdateWindowCaption(VOID); VOID LANGUAGE_UpdateWindowCaption(VOID);
VOID LANGUAGE_UpdateMenuCheckmarks(VOID); VOID LANGUAGE_UpdateMenuCheckmarks(VOID);
VOID LANGUAGE_SelectByNumber(UINT num); VOID LANGUAGE_LoadMenus(VOID);
VOID LANGUAGE_SelectByName(LPCSTR lang);
VOID LANGUAGE_DefaultHandle(WPARAM wParam); VOID LANGUAGE_DefaultHandle(WPARAM wParam);
/* Local Variables: */ /* Local Variables: */
......
...@@ -43,61 +43,77 @@ CLOCK_GLOBALS Globals; ...@@ -43,61 +43,77 @@ CLOCK_GLOBALS Globals;
int CLOCK_MenuCommand (WPARAM wParam) int CLOCK_MenuCommand (WPARAM wParam)
{ {
CHAR szApp[MAX_STRING_LEN];
CHAR szAppRelease[MAX_STRING_LEN];
switch (wParam) { switch (wParam) {
case CL_ANALOG: { /* switch to analog */
case 0x100: {
Globals.bAnalog = TRUE; Globals.bAnalog = TRUE;
LANGUAGE_UpdateMenuCheckmarks(); LANGUAGE_UpdateMenuCheckmarks();
SendMessage(Globals.hMainWnd, WM_PAINT, 0, 0); SendMessage(Globals.hMainWnd, WM_PAINT, 0, 0);
break; break;
} }
case CL_DIGITAL: { /* switch to digital */
case 0x101: {
Globals.bAnalog = FALSE; Globals.bAnalog = FALSE;
LANGUAGE_UpdateMenuCheckmarks(); LANGUAGE_UpdateMenuCheckmarks();
SendMessage(Globals.hMainWnd, WM_PAINT, 0, 0); SendMessage(Globals.hMainWnd, WM_PAINT, 0, 0);
break; break;
} }
case CL_FONT: { /* change font */
case 0x103: {
MAIN_FileChooseFont(); MAIN_FileChooseFont();
break; break;
} }
case CL_WITHOUT_TITLE: { /* hide title bar */
case 0x105: {
Globals.bWithoutTitle = !Globals.bWithoutTitle; Globals.bWithoutTitle = !Globals.bWithoutTitle;
LANGUAGE_UpdateWindowCaption(); LANGUAGE_UpdateWindowCaption();
LANGUAGE_UpdateMenuCheckmarks(); LANGUAGE_UpdateMenuCheckmarks();
break; break;
} }
case CL_ON_TOP: { /* always on top */
case 0x10D: {
Globals.bAlwaysOnTop = !Globals.bAlwaysOnTop; Globals.bAlwaysOnTop = !Globals.bAlwaysOnTop;
LANGUAGE_UpdateMenuCheckmarks(); LANGUAGE_UpdateMenuCheckmarks();
break; break;
} }
case CL_SECONDS: { /* show or hide seconds */
case 0x107: {
Globals.bSeconds = !Globals.bSeconds; Globals.bSeconds = !Globals.bSeconds;
LANGUAGE_UpdateMenuCheckmarks(); LANGUAGE_UpdateMenuCheckmarks();
SendMessage(Globals.hMainWnd, WM_PAINT, 0, 0); SendMessage(Globals.hMainWnd, WM_PAINT, 0, 0);
break; break;
} }
case CL_DATE: { /* show or hide date */
case 0x108: {
Globals.bDate = !Globals.bDate; Globals.bDate = !Globals.bDate;
LANGUAGE_UpdateMenuCheckmarks(); LANGUAGE_UpdateMenuCheckmarks();
LANGUAGE_UpdateWindowCaption(); LANGUAGE_UpdateWindowCaption();
break; break;
} }
case CL_INFO_LICENSE: { /* show license */
case 0x109: {
WineLicense(Globals.hMainWnd); WineLicense(Globals.hMainWnd);
break; break;
} }
case CL_INFO_NO_WARRANTY: { /* show warranties */
case 0x10A: {
WineWarranty(Globals.hMainWnd); WineWarranty(Globals.hMainWnd);
break; break;
} }
case CL_INFO_ABOUT_WINE: { /* show "about" box */
ShellAbout(Globals.hMainWnd, "Clock", "Clock\n" WINE_RELEASE_INFO, 0); case 0x10B: {
LoadString(Globals.hInstance, 0x10C, szApp, sizeof(szApp));
lstrcpy(szAppRelease,szApp);
lstrcat(szAppRelease,"\n" WINE_RELEASE_INFO);
ShellAbout(Globals.hMainWnd, szApp, szAppRelease, 0);
break; break;
} }
/* Handle languages */ /* Handle languages */
default: /* default:
LANGUAGE_DefaultHandle(wParam); LANGUAGE_DefaultHandle(wParam);
*/
} }
return 0; return 0;
} }
...@@ -244,7 +260,7 @@ int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE prev, LPSTR cmdline, int show ...@@ -244,7 +260,7 @@ int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE prev, LPSTR cmdline, int show
CW_USEDEFAULT, CW_USEDEFAULT, Globals.MaxX, Globals.MaxY, 0, CW_USEDEFAULT, CW_USEDEFAULT, Globals.MaxX, Globals.MaxY, 0,
LoadMenu(Globals.hInstance, STRING_MENU_Xx), Globals.hInstance, 0); LoadMenu(Globals.hInstance, STRING_MENU_Xx), Globals.hInstance, 0);
LANGUAGE_SelectByName("En"); LANGUAGE_LoadMenus();
SetMenu(Globals.hMainWnd, Globals.hMainMenu); SetMenu(Globals.hMainWnd, Globals.hMainMenu);
LANGUAGE_UpdateMenuCheckmarks(); LANGUAGE_UpdateMenuCheckmarks();
......
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#include "clock_res.h"
#define MAX_STRING_LEN 255 #define MAX_STRING_LEN 255
#define MAX_PATHNAME_LEN 1024 #define MAX_PATHNAME_LEN 1024
#define MAX_LANGUAGE_NUMBER (CL_LAST_LANGUAGE - CL_FIRST_LANGUAGE) #define MAX_LANGUAGE_NUMBER (CL_LAST_LANGUAGE - CL_FIRST_LANGUAGE)
......
...@@ -21,16 +21,7 @@ ...@@ -21,16 +21,7 @@
#include "windows.h" #include "windows.h"
#include "main.h" #include "main.h"
#define CONCAT(a, b) CONCAT1(a, b) #include "clock_res.h"
#define CONCAT1(a, b) a##b
#define ADDSTRING(str) ADDSTRING1(LANGUAGE_NUMBER, IDS_ ## str) STRING_ ## str
#define ADDSTRING1(langnum, ids) ADDSTRING2(langnum, ids)
#define ADDSTRING2(langnum, ids) 0x ## langnum ## ids
#define STRINGIFY(str) STRINGIFY1(str)
#define STRINGIFY1(str) #str
#include "Da.rc" #include "Da.rc"
#include "De.rc" #include "De.rc"
#include "En.rc" #include "En.rc"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment