From 80aa8233a8b20aaa1e8a029b531182af9589d58a Mon Sep 17 00:00:00 2001 From: Sven Neumann Date: Mon, 25 Feb 2002 18:36:03 +0000 Subject: [PATCH] updated 2002-02-25 Sven Neumann * README.i18n: updated * app/gui/tips-dialog.c * app/gui/tips-parser.[ch]: dropped the locale matching magic since it would never work for all cases. Instead introduced a special message so translators can specify the exact tips locale. --- ChangeLog | 9 + README.i18n | 263 +++++++------- app/dialogs/tips-dialog.c | 4 +- app/dialogs/tips-parser.c | 44 ++- app/dialogs/tips-parser.h | 1 - app/gui/tips-dialog.c | 4 +- app/gui/tips-parser.c | 44 ++- app/gui/tips-parser.h | 1 - po/de.po | 705 ++++++++++++++++++++++---------------- 9 files changed, 604 insertions(+), 471 deletions(-) diff --git a/ChangeLog b/ChangeLog index f8360bed68..d9a25ee5fd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2002-02-25 Sven Neumann + + * README.i18n: updated + + * app/gui/tips-dialog.c + * app/gui/tips-parser.[ch]: dropped the locale matching magic since + it would never work for all cases. Instead introduced a special + message so translators can specify the exact tips locale. + 2002-02-25 Michael Natterer * app/core/Makefile.am diff --git a/README.i18n b/README.i18n index 1e60cecf28..844e341a8a 100644 --- a/README.i18n +++ b/README.i18n @@ -1,14 +1,27 @@ -This document exists to document the important things to care for -because of locale support. -Actually this one is maintained by me, that is Daniel Egger -(Daniel.Egger@rz.fh-muenchen.de). - +This document exists to document the important things to care +for because of locale support. It is aimed at developers and +translators. If you are a translator, you can skip the first +sections, but you definitely want to read sections 5 - 9. + + Table of Contents + + 1. Why localisation? + 2. How + 3. Deep inside ... + 4. Some magic ... + 5. Tools and how to use them + 6. Gimp is different + 7. Adding additional textdomains + 8. Tip of the Day messages + 9. How to contribute + 10. And more ? + 1. Why localisation? Many persons from many countries start to get used to Linux. Unfortunately not everyone is able to understand English. But - even those people sometimes like to use good and free software + even those people sometimes like to use good and free software without using a dictionary to get the unknown words. So why not simply localise the software to make it available to the mass which isn't wholly English native? Of course this also @@ -19,34 +32,30 @@ Actually this one is maintained by me, that is Daniel Egger GNU provides a very nice package called gettext. This one offers the possibility to translate chosen messages from the native language of the program into that one of the users if a necessary catalog is - provided. Gettext therefore provides some easy tools to create and maintain - such catalogs and a few functions which can be called by the program to - enable automatic translation at runtime. The program gets linked to the - gettext library or glibc2 which already provides that functionality - and everything is fine. - By the way: gettext is a fixed part of glibc2 but will be shipped with - GIMP and so can be automatically compiled on every platform GIMP itself - runs on. + provided. Gettext therefore provides some easy tools to create and + maintain such catalogs and a few functions which can be called by the + program to enable automatic translation at runtime. The program gets + linked to the gettext library or glibc2 which already provides that + functionality and everything is fine. 3. Deep inside... - GIMP provides header files called gimpintl.h and stdplugins-intl.h in the - libgimp directory which check whether gettext is available on the system - which GIMP is compiled on and will deactivate language support if it's not. - You CAN use such a compiled GIMP even without the catalogs or on a system - which doesen't have language support. + GIMP provides header files called gimpintl.h and stdplugins-intl.h in + the libgimp directory which check whether gettext is available on the + system which GIMP is compiled on and will deactivate language support + if it's not. If the gettext system is there it will declare 3 functions which will be described below. 3.1 _() [more correctly: char * _( char * )] - This one is a macro for the function gettext(). You can wrap any text with - it that is allowed to be a return value of a function. If you use it then - libintl will try to translate it into the native language of the - user according to his/her environmental settings. - The gettext() function will do a lookup in the hashed catalog which contains - all the translated texts. + This one is a macro for the function gettext(). You can wrap any text + with it that is allowed to be a return value of a function. If you + use it then libintl will try to translate it into the native language + of the user according to his/her environmental settings. + The gettext() function will do a lookup in the hashed catalog which + contains all the translated texts. - If it is found a pointer to the string will be returned to the caller. - If not, the caller will receive a pointer to the original string. @@ -59,96 +68,98 @@ Actually this one is maintained by me, that is Daniel Egger NOTE: I know some of the developer like short functions like _() but for a better source understanding I suggest to use it consistently only - for text (like _("That's text!")) and not for variables (like _(text) ) BUT - gettext(text) instead. + for text (like _("That's text!")) and not for variables (like _(text)). + Use gettext(text) instead. 3.2 N_() [more correctly: const char * ( const char * ) ] - This one is a macro for the function gettext_noop(). As you can see and - guess it doesn't really do anything in the programm i.e. it is a dummy - macro but nevertheless important. As it isn't possible to call functions - in a structure as seen here: + This one is a macro for the function gettext_noop(). As you can see + and guess it doesn't really do anything in the programm i.e. it is a + dummy macro but nevertheless important. As it isn't possible to call + functions in a structure as seen here: struct blurb { _("This won't work\n"); } - you have to do it in some other way. In GIMP such structures are often used - to create menus or similar things very simply. Here you have to use the - dummy to allow the generation of the template catalog which will be described - below. This one doesn't do anything but it marks the text as important to - the xgettext extractor. + you have to do it in some other way. In GIMP such structures are + often used to create menus or similar things very simply. Here you + have to use the dummy to allow the generation of the template catalog + which will be described below. This one doesn't do anything but it + marks the text as important to the xgettext extractor. The text has to be translated manually with the next function. 3.3 gettext() This function is the same as that macro in 3.1. But there is one big - difference: The _()'s and N_()'s are the only expressions which get parsed - by the template generator. - If you have strings that should be translated but are unfortunately in a - structure you have to do that on your own which means that you have to - parse the fields with the messages in a loop and translate the texts with - this gettext() function. + difference: The _()'s and N_()'s are the only expressions which get + parsed by the template generator. + If you have strings that should be translated but are unfortunately + in a structure you have to do that on your own which means that you + have to parse the fields with the messages in a loop and translate + the texts with this gettext() function. - Please note that it may be necessary to free or allocate memory in this - case! + Please note that it may be necessary to free or allocate memory in + this case! 4. Some magic... - As you have seen we only did the programming part until now but this isn't - all by far. - To use catalogs we'll have to create them. Now there are 3 different files - which are importart: + As you have seen we only did the programming part until now but this + isn't all by far. To use catalogs we'll have to create them. Now + there are 3 different files which are importart: gimp.pot: - This one is the so called template. It contains the messages which are - extracted from the sources and empty fields which have to get filled by the - author. It is used to start a new catalog or to update the an already - available one. + This one is the so called template. It contains the messages which + are extracted from the sources and empty fields which have to get + filled by the author. It is used to start a new catalog or to update + the an already available one. - The Makefile will automatically call the program gettext which will extract - all messages that are wrapped by a _() or a N_() (but NOT gettext()) and - concat them to this template. + The Makefile will automatically call the program gettext which will + extract all messages that are wrapped by a _() or a N_() (but NOT + gettext()) and concat them to this template. [language].po: - This file has to be an edited gimp.pot and contains the original messages - plus the translated ones. This file will be delivered together with GIMP - and is the base for the final catalog. + This file has to be an edited gimp.pot and contains the original + messages plus the translated ones. This file will be delivered + together with GIMP and is the base for the final catalog. [language].mo: This file is a compiled version of [language.po] which will be - automatically compiled by the Makefile system and installed in the locale - directory of the system. It contains everything that the .po file - contains except not translated messages, comments and other overhead. - For maximum speed it is also hashed to allow gettext a faster search. + automatically compiled by the Makefile system and installed in the + locale directory of the system. It contains everything that the .po + file contains except not translated messages, comments and other + overhead. For maximum speed it is also hashed to allow gettext a + faster search. -5. Tools and how to use them... +5. Tools and how to use them - As mentioned the to be translated strings are extracted directly from the - source and written to the template. - I guess many of you will now ask if it is necessary to add new strings - directly to the template or if there's a tool to achieve that. - I think I can calm down those of you who fear lots of had work just to - update the language files. There's a program called msgmerge which will - add all strings that are in the template but not in the uncompiled catalog - to it. Msgmerge does this job very nicely and also tries to use some kind - of fuzzy logic method for already translated strings for possible reduction - of translators work: If an original string seems similar to a new one - and it already has a translation, it will be taken over to the new catalog - together with a remark that this one may not necessarily fit. + As mentioned the to be translated strings are extracted directly from + the source and written to the template. + + I guess many of you will now ask if it is necessary to add new + strings directly to the template or if there's a tool to achieve + that. I think I can calm down those of you who fear lots of had work + just to update the language files. There's a program called msgmerge + which will add all strings that are in the template but not in the + uncompiled catalog to it. Msgmerge does this job very nicely and also + tries to use some kind of fuzzy logic method for already translated + strings for possible reduction of translators work: If an original + string seems similar to a new one and it already has a translation, + it will be taken over to the new catalog together with a remark that +this one may not necessarily fit. 6. Gimp is different - Gimp is a complex application which has a bunch of scripts and plug-ins - that all want to be internationalized. Therefore there is not one catalog - but many. For a full translation of the GIMP's UI, you will have to add - translations for the following catalogs: + Gimp is a complex application which has a bunch of scripts and + plug-ins that all want to be internationalized. Therefore there is + not one catalog but many. For a full translation of the GIMP's UI, + you will have to add translations for the following catalogs: po/gimp.pot -- the core po-libgimp/gimp-libgimp.pot -- the libgimp library @@ -157,65 +168,71 @@ Actually this one is maintained by me, that is Daniel Egger po-script-fu/gimp-script-fu.pot -- the script-fu scripts When translating menu_paths, please do not translate the name of the - item_factory (that is the one in brackets at the front), e.g. - /Edit/Copy should _not_ be translated to /Bearbeiten/Kopieren, - but to /Bearbeiten/Kopieren. If you get this wrong, Gimp will warn you - at startup about bad translations. So do always test your translations and - watch the console for output. + item_factory (that is the one in brackets at the front), e.g. + /Edit/Copy should _not_ be translated to /Bearbeiten/Kopieren, + but to /Bearbeiten/Kopieren. If you get this wrong, Gimp will + warn you at startup about bad translations. So do always test your + translations and watch the console for output. - The version of The GIMP you are holding in your hand uses GTK+-2.0. GTK+-2.0 - requires that all strings are UTF-8 encoded. Therefore to make - internationalisation work, po files need to be UTF-8 encoded. Unfortunately - most editors don't support UTF-8, so to edit your po file, you need to - convert it to an encoding your editor can handle and convert it back to - UTF-8 before commiting your changes back. The gnome-i18n module in CVS has - some scripts that help with this task, but it can also easily done using - iconv. + The version of The GIMP you are holding in your hand uses + GTK+-2.0. GTK+-2.0 requires that all strings are UTF-8 + encoded. Therefore to make internationalisation work, po files need + to be UTF-8 encoded. Unfortunately most editors don't support UTF-8, + so to edit your po file, you need to convert it to an encoding your + editor can handle and convert it back to UTF-8 before commiting your + changes back. The gnome-i18n module in CVS has some scripts that help + with this task, but it can also easily done using iconv. 7. Adding additional textdomains - Third-party plug-ins (plug-ins that are not distributed with The GIMP) can't - have their messages in the gimp-std-plugins textdomain. We have therefore - provided a mechanism that allows plug-ins to install their own message - catalogs and tell The GIMP to bind to that textdomain. This is necessary so - that The GIMP can correctly translate the menupaths the plug-in registers. - Basically the plug-in has to call gimp_plugin_domain_add() or - gimp_domain_plugin_add_with_path() before it registers any functions. Have a - look at the script-fu plug-in to see how it is done in detail. + Third-party plug-ins (plug-ins that are not distributed with The + GIMP) can't have their messages in the gimp-std-plugins + textdomain. We have therefore provided a mechanism that allows + plug-ins to install their own message catalogs and tell The GIMP to + bind to that textdomain. This is necessary so that The GIMP can + correctly translate the menupaths the plug-in registers. Basically + the plug-in has to call gimp_plugin_domain_add() or + gimp_domain_plugin_add_with_path() before it registers any + functions. Have a look at the script-fu plug-in to see how it is done + in detail. 8. Tip of the Day messages - In addition to message catalogs Gimp provides a file with tips that are - displayed in a Tip of The Day window. Tips in English language are located - in tips/gimp_tips.txt. Translated tips should go into - gimp_tips..txt. There is one more thing: You need to make sure you - have the right reference set up in po/.po file something like this: + In addition to message catalogs Gimp provides a file with tips that + are displayed in a Tip of The Day window. This file is in XML format + and can be found in the tips directory. The english tips messages are + extracted from gimp-tips.xml.in so translators can use the usual + tools to create a .po file that holds the translations. All + translations are then merged into gimp-tips.xml with language + identifiers taken from the po filename. - #: app/tips_dialog.c:72 - msgid "gimp_tips.txt" - msgstr "gimp_tips..txt" + GIMP needs to know what language it should select from gimp-tips.xml. + Therefore, there's the special message "tips-locale:C" in the main + message catalog that needs to be translated correctly. For a german + translation of the tips this would look like this: - This file needs to be UTF-8 encoded just like the po files (see section 6). + #: app/gui/tips-parser.c:158 + msgid "tips-locale:C" + msgstr "tips-locale:de" 9. How to contribute - Any help with translations is appreciated. If you want to help, please get - in contact with the people from the GNOME Translation Project who coordinate - all translation efforts in the GNOME CVS tree. They have a nice web-page at - http://developer.gnome.org/projects/gtp/. + Any help with translations is appreciated. If you want to help, + please get in contact with the people from the GNOME Translation + Project who coordinate all translation efforts in the GNOME CVS + tree. They have a nice web-page at + http://developer.gnome.org/projects/gtp/. 10. And more? - I hope I mentioned everything that is worth it and hope that this document - will clarify some things. If it doesn't please write me a mail and tell me - what you want to know. This text of course contains errors, so if you find one - tell it to me, too.... + We hope we mentioned everything that is worth it and hope that this + document will clarify some things. If it doesn't please write us a + mail. This text of course contains errors, so if you find one tell + us... -Happy Gimping. Yours, - Daniel Egger +Happy Gimping. + Daniel Egger + Sven Neumann + - - -Sections (6), (7) and (9) were added by Sven Neumann . -He is the one to blame for errors in there... diff --git a/app/dialogs/tips-dialog.c b/app/dialogs/tips-dialog.c index 85aafcfaea..e374d0373d 100644 --- a/app/dialogs/tips-dialog.c +++ b/app/dialogs/tips-dialog.c @@ -78,9 +78,7 @@ tips_dialog_create (void) filename = g_build_filename (gimp_data_directory (), "tips", "gimp-tips.xml", NULL); - tips = gimp_tips_from_file (filename, - setlocale (LC_MESSAGES, NULL), - &error); + tips = gimp_tips_from_file (filename, &error); g_free (filename); if (error) diff --git a/app/dialogs/tips-parser.c b/app/dialogs/tips-parser.c index 2114ef3054..c4c84bb0b5 100644 --- a/app/dialogs/tips-parser.c +++ b/app/dialogs/tips-parser.c @@ -126,11 +126,11 @@ gimp_tip_free (GimpTip *tip) GList * gimp_tips_from_file (const gchar *filename, - const gchar *locale, GError **error) { GMarkupParseContext *context; TipsParser *parser; + const gchar *tips_locale; FILE *fp; gsize bytes; gchar buf[4096]; @@ -140,20 +140,32 @@ gimp_tips_from_file (const gchar *filename, fp = fopen (filename, "r"); if (!fp) { - g_set_error (error, - 0, /* error domain */ - 0, /* error code */ + g_set_error (error, 0, 0, _("Your GIMP tips file appears to be missing!\n" - "There should be a file called gimp-tips.xml in " - "the tips subfolder of the GIMP data folder.\n" - "Please check your installation.")); + "There should be a file called '%s'.\n" + "Please check your installation."), filename); return NULL; } parser = g_new0 (TipsParser, 1); - parser->locale = locale; parser->value = g_string_new (NULL); + /* This is a special string to specify the language identifier to + look for in the gimp-tips.xml file. Please translate the C in it + according to the name of the po file used for gimp-tips.xml. + E.g. for the german translation, that would be "tips-locale:de". + */ + tips_locale = _("tips-locale:C"); + + if (strncmp (tips_locale, "tips-locale:", 12) == 0) + { + tips_locale += 12; + if (*tips_locale && *tips_locale != 'C') + parser->locale = tips_locale; + } + else + g_warning ("Wrong translation for 'tips-locale:', fix the translation!"); + context = g_markup_parse_context_new (&markup_parser, 0, parser, NULL); while ((bytes = fread (buf, sizeof (gchar), sizeof (buf), fp)) > 0 && @@ -175,11 +187,9 @@ gimp_tips_from_file (const gchar *filename, if (parser->state != TIPS_START) { - g_set_error (error, - 0, /* error domain */ - 0, /* error code */ - _("Your GIMP tips file could not be parsed correctly!\n" - "Please check your installation.")); + g_set_error (error, 0, 0, + _("Your GIMP tips file could not be parsed correctly!\n" + "Please check your installation.")); } tips = g_list_reverse (parser->tips); @@ -370,11 +380,9 @@ tips_parser_parse_locale (TipsParser *parser, { if (strcmp (*names, "xml:lang") == 0 && **values) { - parser->locale_state = ((parser->locale && - (strcmp (*values, parser->locale) == 0 || - strncmp (*values, parser->locale, 2) == 0)) - ? TIPS_LOCALE_MATCH - : TIPS_LOCALE_MISMATCH); + parser->locale_state = (parser->locale && + strcmp (*values, parser->locale) == 0 ? + TIPS_LOCALE_MATCH : TIPS_LOCALE_MISMATCH); } names++; diff --git a/app/dialogs/tips-parser.h b/app/dialogs/tips-parser.h index 00e43ce1c3..22b5b0ef09 100644 --- a/app/dialogs/tips-parser.h +++ b/app/dialogs/tips-parser.h @@ -37,7 +37,6 @@ GimpTip * gimp_tip_new (const gchar *welcome, void gimp_tip_free (GimpTip *tip); GList * gimp_tips_from_file (const gchar *filename, - const gchar *locale, GError **error); void gimp_tips_free (GList *tips); diff --git a/app/gui/tips-dialog.c b/app/gui/tips-dialog.c index 85aafcfaea..e374d0373d 100644 --- a/app/gui/tips-dialog.c +++ b/app/gui/tips-dialog.c @@ -78,9 +78,7 @@ tips_dialog_create (void) filename = g_build_filename (gimp_data_directory (), "tips", "gimp-tips.xml", NULL); - tips = gimp_tips_from_file (filename, - setlocale (LC_MESSAGES, NULL), - &error); + tips = gimp_tips_from_file (filename, &error); g_free (filename); if (error) diff --git a/app/gui/tips-parser.c b/app/gui/tips-parser.c index 2114ef3054..c4c84bb0b5 100644 --- a/app/gui/tips-parser.c +++ b/app/gui/tips-parser.c @@ -126,11 +126,11 @@ gimp_tip_free (GimpTip *tip) GList * gimp_tips_from_file (const gchar *filename, - const gchar *locale, GError **error) { GMarkupParseContext *context; TipsParser *parser; + const gchar *tips_locale; FILE *fp; gsize bytes; gchar buf[4096]; @@ -140,20 +140,32 @@ gimp_tips_from_file (const gchar *filename, fp = fopen (filename, "r"); if (!fp) { - g_set_error (error, - 0, /* error domain */ - 0, /* error code */ + g_set_error (error, 0, 0, _("Your GIMP tips file appears to be missing!\n" - "There should be a file called gimp-tips.xml in " - "the tips subfolder of the GIMP data folder.\n" - "Please check your installation.")); + "There should be a file called '%s'.\n" + "Please check your installation."), filename); return NULL; } parser = g_new0 (TipsParser, 1); - parser->locale = locale; parser->value = g_string_new (NULL); + /* This is a special string to specify the language identifier to + look for in the gimp-tips.xml file. Please translate the C in it + according to the name of the po file used for gimp-tips.xml. + E.g. for the german translation, that would be "tips-locale:de". + */ + tips_locale = _("tips-locale:C"); + + if (strncmp (tips_locale, "tips-locale:", 12) == 0) + { + tips_locale += 12; + if (*tips_locale && *tips_locale != 'C') + parser->locale = tips_locale; + } + else + g_warning ("Wrong translation for 'tips-locale:', fix the translation!"); + context = g_markup_parse_context_new (&markup_parser, 0, parser, NULL); while ((bytes = fread (buf, sizeof (gchar), sizeof (buf), fp)) > 0 && @@ -175,11 +187,9 @@ gimp_tips_from_file (const gchar *filename, if (parser->state != TIPS_START) { - g_set_error (error, - 0, /* error domain */ - 0, /* error code */ - _("Your GIMP tips file could not be parsed correctly!\n" - "Please check your installation.")); + g_set_error (error, 0, 0, + _("Your GIMP tips file could not be parsed correctly!\n" + "Please check your installation.")); } tips = g_list_reverse (parser->tips); @@ -370,11 +380,9 @@ tips_parser_parse_locale (TipsParser *parser, { if (strcmp (*names, "xml:lang") == 0 && **values) { - parser->locale_state = ((parser->locale && - (strcmp (*values, parser->locale) == 0 || - strncmp (*values, parser->locale, 2) == 0)) - ? TIPS_LOCALE_MATCH - : TIPS_LOCALE_MISMATCH); + parser->locale_state = (parser->locale && + strcmp (*values, parser->locale) == 0 ? + TIPS_LOCALE_MATCH : TIPS_LOCALE_MISMATCH); } names++; diff --git a/app/gui/tips-parser.h b/app/gui/tips-parser.h index 00e43ce1c3..22b5b0ef09 100644 --- a/app/gui/tips-parser.h +++ b/app/gui/tips-parser.h @@ -37,7 +37,6 @@ GimpTip * gimp_tip_new (const gchar *welcome, void gimp_tip_free (GimpTip *tip); GList * gimp_tips_from_file (const gchar *filename, - const gchar *locale, GError **error); void gimp_tips_free (GList *tips); diff --git a/po/de.po b/po/de.po index dd382b78d9..c7e621ae67 100644 --- a/po/de.po +++ b/po/de.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: GIMP 1.3.4\n" -"POT-Creation-Date: 2002-02-22 17:37+0100\n" -"PO-Revision-Date: 2002-02-22 17:38+0100\n" +"POT-Creation-Date: 2002-02-25 19:00+0100\n" +"PO-Revision-Date: 2002-02-25 19:00+0100\n" "Last-Translator: Sven Neumann \n" "Language-Team: German \n" "MIME-Version: 1.0\n" @@ -225,209 +225,261 @@ msgstr "Navigation: Kein Bild" msgid "Navigation: %s-%d.%d" msgstr "Navigation: %s-%d.%d" -#: app/undo.c:2900 +#: app/undo.c:3487 #, c-format msgid "Can't undo %s" msgstr "Kann %s nicht rückgängig machen" -#: app/undo.c:2931 +#: app/undo.c:3513 msgid "<>" msgstr "<>" -#: app/undo.c:2932 -msgid "image" -msgstr "Bild" - -#: app/undo.c:2933 -msgid "image mod" -msgstr "Bildänderung" - -#: app/undo.c:2934 -msgid "mask" -msgstr "Maske" - -#: app/undo.c:2935 -msgid "layer move" -msgstr "Ebene verschieben" - -#. ok -#: app/undo.c:2936 -msgid "transform" -msgstr "Transformation" - -#: app/undo.c:2937 -msgid "paint" -msgstr "Zeichnen" - -#: app/undo.c:2938 -msgid "new layer" -msgstr "Ebene anlegen" - -#: app/undo.c:2939 -msgid "delete layer" -msgstr "Ebene löschen" - -#: app/undo.c:2940 -msgid "layer mod" -msgstr "Ebenenänderung" - -#: app/undo.c:2941 -msgid "add layer mask" -msgstr "Ebenenmaske hinzufügen" - -#. ok -#: app/undo.c:2942 -msgid "delete layer mask" -msgstr "Ebenenmaske löschen" - -#. ok -#: app/undo.c:2943 -msgid "rename layer" -msgstr "Ebene umbenennen" - -#: app/undo.c:2944 -msgid "layer reposition" -msgstr "Ebene repositionieren" - -#. ok -#: app/undo.c:2945 -msgid "new channel" -msgstr "Neuer Kanal" - -#: app/undo.c:2946 -msgid "delete channel" -msgstr "Kanal löschen" - -#: app/undo.c:2947 -msgid "channel mod" -msgstr "Kanaländerung" - -#: app/undo.c:2948 -msgid "FS to layer" -msgstr "Schwebende Auswahl -> Ebene" - -#. ok -#: app/undo.c:2949 -msgid "gimage" -msgstr "Bild" - -#: app/undo.c:2950 -msgid "FS rigor" -msgstr "Schwebende Auswahl zeigen" - -#: app/undo.c:2951 -msgid "FS relax" -msgstr "Schwebende Auswahl verstecken" - -#: app/undo.c:2952 -msgid "guide" -msgstr "Hilfslinie" - -#: app/undo.c:2953 -msgid "text" -msgstr "Text" - -#: app/undo.c:2954 -msgid "float selection" -msgstr "Auswahl -> schwebend" - -#: app/undo.c:2955 -msgid "paste" -msgstr "Einfügen" - -#: app/undo.c:2956 -msgid "cut" -msgstr "Ausschneiden" - -#: app/undo.c:2957 -msgid "transform core" -msgstr "Transformation" - -#: app/undo.c:2958 -msgid "paint core" -msgstr "Zeichenwerkzeug" - -#: app/undo.c:2959 -msgid "floating layer" -msgstr "Schwebende Ebene" - -#. unused! -#: app/undo.c:2960 -msgid "linked layer" -msgstr "Ebene verbinden" - -#: app/undo.c:2961 -msgid "apply layer mask" -msgstr "Ebenenmaske anwenden" - -#. ok -#: app/undo.c:2962 -msgid "layer merge" -msgstr "Ebenen vereinen" - -#: app/undo.c:2963 -msgid "FS anchor" -msgstr "Schwebende Auswahl verankern" - -#: app/undo.c:2964 -msgid "gimage mod" -msgstr "Bildänderung" - -#: app/undo.c:2965 -msgid "crop" -msgstr "Zuschneiden" - -#: app/undo.c:2966 -msgid "layer scale" -msgstr "Ebene skalieren" - -#: app/undo.c:2967 -msgid "layer resize" -msgstr "Ebenengröße ändern" - -#: app/undo.c:2968 -msgid "quickmask" -msgstr "QMask" - -#: app/undo.c:2969 -msgid "attach parasite" -msgstr "Parasit zuweisen" - -#: app/undo.c:2970 -msgid "remove parasite" -msgstr "Parasit entfernen" - -#: app/undo.c:2971 -msgid "resolution change" -msgstr "Auflösung ändern" - -#: app/undo.c:2972 -msgid "image scale" +#: app/gui/resize-dialog.c:183 app/undo.c:3514 +msgid "Scale Image" msgstr "Bild skalieren" -#: app/undo.c:2973 -msgid "image resize" -msgstr "Bildgröße ändern" +#: app/undo.c:3515 +#, fuzzy +msgid "Resize Image" +msgstr "Bild zurücksetzen?" -#: app/undo.c:2974 -msgid "misc" -msgstr "Verschiedenes" +#: app/undo.c:3516 +#, fuzzy +msgid "Convert Image" +msgstr "Bild zurücksetzen?" -#: app/undo_history.c:467 app/undo_history.c:826 +#: app/undo.c:3517 +#, fuzzy +msgid "Crop Image" +msgstr "Bild öffnen" + +#: app/undo.c:3518 +#, fuzzy +msgid "Merge Layers" +msgstr "Ebenen" + +#: app/undo.c:3519 app/undo.c:3543 +#, fuzzy +msgid "QuickMask" +msgstr "QMask" + +#: app/undo.c:3520 app/undo.c:3544 +#, fuzzy +msgid "Guide" +msgstr "Hilfslinie" + +#: app/gui/resize-dialog.c:177 app/undo.c:3521 +msgid "Scale Layer" +msgstr "Ebene skalieren" + +#: app/undo.c:3522 +#, fuzzy +msgid "Resize Layer" +msgstr "/Stapel/Ebene anheben" + +#: app/undo.c:3523 +#, fuzzy +msgid "Move Layer" +msgstr "Neue Ebene" + +#: app/undo.c:3524 +#, fuzzy +msgid "Apply Layer Mask" +msgstr "/Ebenenmaske anwenden..." + +#: app/undo.c:3525 +#, fuzzy +msgid "Linked Layer" +msgstr "Ebene verbinden" + +#: app/undo.c:3526 +#, fuzzy +msgid "Float Selection" +msgstr "Schwebende Auswahl" + +#: app/undo.c:3527 +#, fuzzy +msgid "Anchor Floating Selection" +msgstr "Schwebende Auswahl" + +#: app/undo.c:3528 +msgid "Paste" +msgstr "Einfügen" + +#: app/undo.c:3529 +#, fuzzy +msgid "Cut" +msgstr "Anzahl:" + +#: app/undo.c:3530 +msgid "Text" +msgstr "Text" + +#: app/undo.c:3531 app/undo.c:3564 +msgid "Transform" +msgstr "Transformation" + +#: app/undo.c:3532 app/undo.c:3565 +#, fuzzy +msgid "Paint" +msgstr "Zeichnen" + +#: app/undo.c:3533 app/undo.c:3566 +#, fuzzy +msgid "Attach Parasite" +msgstr "Parasit zuweisen" + +#: app/undo.c:3534 app/undo.c:3567 +#, fuzzy +msgid "Remove Parasite" +msgstr "Parasit entfernen" + +#: app/undo.c:3535 +#, fuzzy +msgid "Plug-In" +msgstr "Plugins" + +#: app/gui/palette-import-dialog.c:423 app/pdb/internal_procs.c:122 +#: app/undo.c:3537 +msgid "Image" +msgstr "Bild" + +#: app/undo.c:3538 +#, fuzzy +msgid "Image Mod" +msgstr "Bildänderung" + +#. frame for Image Type +#: app/gui/file-new-dialog.c:361 app/undo.c:3539 +msgid "Image Type" +msgstr "Bildart" + +#. Image size frame +#: app/gui/file-new-dialog.c:139 app/undo.c:3540 +#, fuzzy +msgid "Image Size" +msgstr "Bildgröße: %s" + +#: app/undo.c:3541 +#, fuzzy +msgid "Resolution Change" +msgstr "Auflösung ändern" + +#: app/core/gimpchannel.c:456 app/undo.c:3542 +msgid "Selection Mask" +msgstr "Auswahlmaske" + +#: app/gui/layers-commands.c:642 app/undo.c:3545 +msgid "New Layer" +msgstr "Neue Ebene" + +#: app/undo.c:3546 +msgid "Delete Layer" +msgstr "Ebene löschen" + +#: app/undo.c:3547 +#, fuzzy +msgid "Layer Mod" +msgstr "Ebenenänderung" + +#: app/undo.c:3548 +#, fuzzy +msgid "Add Layer Mask" +msgstr "/Ebenenmaske hinzufügen..." + +#: app/undo.c:3549 +#, fuzzy +msgid "Delete Layer Mask" +msgstr "/Ebenenmaske löschen" + +#: app/undo.c:3550 +#, fuzzy +msgid "Rename Layer" +msgstr "Ebene umbenennen" + +#: app/undo.c:3551 +#, fuzzy +msgid "Layer Reposition" +msgstr "Ebene repositionieren" + +#: app/undo.c:3552 +#, fuzzy +msgid "Layer Move" +msgstr "Ebene verschieben" + +#: app/gui/channels-commands.c:437 app/undo.c:3553 +msgid "New Channel" +msgstr "Neuer Kanal" + +#: app/undo.c:3554 +msgid "Delete Channel" +msgstr "Kanal löschen" + +#: app/undo.c:3555 +#, fuzzy +msgid "Channel Mod" +msgstr "Kanaländerung" + +#: app/undo.c:3556 +#, fuzzy +msgid "Channel Reposition" +msgstr "Ebene repositionieren" + +#: app/undo.c:3557 +#, fuzzy +msgid "New Vectors" +msgstr "Neue Ebene" + +#: app/undo.c:3558 +#, fuzzy +msgid "Delete Vectors" +msgstr "Auswahl löschen" + +#: app/undo.c:3559 +#, fuzzy +msgid "Vectors Mod" +msgstr "Auswahlmodus" + +#: app/undo.c:3560 +#, fuzzy +msgid "Vectors Reposition" +msgstr "Ebene repositionieren" + +#: app/undo.c:3561 +#, fuzzy +msgid "FS to Layer" +msgstr "Schwebende Auswahl -> Ebene" + +#: app/undo.c:3562 +#, fuzzy +msgid "FS Rigor" +msgstr "Schwebende Auswahl zeigen" + +#: app/undo.c:3563 +#, fuzzy +msgid "FS Relax" +msgstr "Schwebende Auswahl verstecken" + +#: app/undo.c:3569 +#, fuzzy +msgid "EEK: can't undo" +msgstr "Kann %s nicht rückgängig machen" + +#: app/undo_history.c:468 app/undo_history.c:827 #, c-format msgid "Undo History: %s" msgstr "Journal: %s" -#: app/undo_history.c:547 +#: app/undo_history.c:548 msgid "[ base image ]" msgstr "[ Basisbild ]" #: app/display/gimpdisplayshell.c:909 app/pdb/internal_procs.c:173 -#: app/undo_history.c:922 +#: app/undo_history.c:923 msgid "Undo" msgstr "Rückgängig" -#: app/display/gimpdisplayshell.c:910 app/undo_history.c:929 +#: app/display/gimpdisplayshell.c:910 app/undo_history.c:930 msgid "Redo" msgstr "Wiederholen" @@ -545,10 +597,6 @@ msgid "" "Brush pipe file '%s' is corrupt." msgstr "" -#: app/core/gimpchannel.c:456 -msgid "Selection Mask" -msgstr "Auswahlmaske" - #: app/core/gimpdatafactory.c:299 #, c-format msgid "" @@ -608,7 +656,7 @@ msgstr "" msgid "Cannot float selection: No selection made." msgstr "Schwebende Auswahl: Keine Auswahl vorhanden" -#: app/core/gimpimage-mask.c:396 app/gui/layers-commands.c:832 +#: app/core/gimpimage-mask.c:396 app/gui/layers-commands.c:826 msgid "Floating Selection" msgstr "Schwebende Auswahl" @@ -648,20 +696,20 @@ msgstr "RGB" msgid "Grayscale" msgstr "Graustufen" -#: app/core/gimpimage-new.c:68 app/gui/layers-commands.c:716 +#: app/core/gimpimage-new.c:68 app/gui/layers-commands.c:710 msgid "Foreground" msgstr "Vordergrund" #: app/core/gimpimage-new.c:74 app/core/gimpimage-new.c:272 -#: app/gui/layers-commands.c:717 app/gui/offset-dialog.c:196 +#: app/gui/layers-commands.c:711 app/gui/offset-dialog.c:196 msgid "Background" msgstr "Hintergrund" -#: app/core/gimpimage-new.c:80 app/gui/layers-commands.c:718 +#: app/core/gimpimage-new.c:80 app/gui/layers-commands.c:712 msgid "White" msgstr "Weiß" -#: app/core/gimpimage-new.c:86 app/gui/layers-commands.c:719 +#: app/core/gimpimage-new.c:86 app/gui/layers-commands.c:713 #: app/gui/offset-dialog.c:198 msgid "Transparent" msgstr "Transparent" @@ -696,59 +744,69 @@ msgstr "%.2f MB" msgid "%.1f MB" msgstr "%.1f MB" -#: app/core/gimpimage.c:1002 app/core/gimppalette-import.c:206 +#: app/core/gimpimage.c:1023 app/core/gimppalette-import.c:206 #: app/core/gimppalette.c:535 app/gui/palette-import-dialog.c:288 #: app/widgets/gimpdatafactoryview.c:260 msgid "Untitled" msgstr "Unbenannt" -#: app/core/gimpimage.c:2600 +#: app/core/gimpimage.c:2735 #, fuzzy msgid "Layer cannot be raised higher." msgstr "Ebene kann nicht weiter angehoben werden" -#: app/core/gimpimage.c:2624 +#: app/core/gimpimage.c:2759 #, fuzzy msgid "Layer cannot be lowered more." msgstr "Ebene kann nicht weiter abgesenkt werden" -#: app/core/gimpimage.c:2645 +#: app/core/gimpimage.c:2780 #, fuzzy msgid "Layer is already on top." msgstr "Ebene ist schon ganz oben" -#: app/core/gimpimage.c:2651 +#: app/core/gimpimage.c:2786 #, fuzzy msgid "Cannot raise a layer without alpha." msgstr "Kann Ebene ohne Alphakanal nicht anheben" -#: app/core/gimpimage.c:2675 +#: app/core/gimpimage.c:2810 #, fuzzy msgid "Layer is already on the bottom." msgstr "Ebene ist schon ganz unten" -#: app/core/gimpimage.c:2722 +#: app/core/gimpimage.c:2857 #, fuzzy, c-format msgid "" "Layer \"%s\" has no alpha.\n" "Layer was placed above it." msgstr "HG hat keinen Alphakanal, Ebene ist darüber plaziert worden" -#: app/core/gimpimage.c:2856 +#: app/core/gimpimage.c:2983 #, fuzzy msgid "Channel cannot be raised higher." msgstr "Kanal kann nicht weiter angehoben werden" -#: app/core/gimpimage.c:2876 +#: app/core/gimpimage.c:3003 #, fuzzy msgid "Channel cannot be lowered more." msgstr "Kanal kann nicht weiter abgesenkt werden" +#: app/core/gimpimage.c:3140 +#, fuzzy +msgid "Vectors cannot be raised higher." +msgstr "Ebene kann nicht weiter angehoben werden" + +#: app/core/gimpimage.c:3160 +#, fuzzy +msgid "Vectors cannot be lowered more." +msgstr "Ebene kann nicht weiter abgesenkt werden" + #: app/core/gimplayer.c:320 msgid "Zero width or height layers not allowed." msgstr "Ebenen mit Höhe oder Breite gleich null sind nicht erlaubt." -#: app/core/gimplayer.c:546 +#: app/core/gimplayer.c:545 #, fuzzy msgid "" "Cannot add layer mask to layer\n" @@ -757,7 +815,7 @@ msgstr "" "Kann keine Maske zu einer Ebene\n" "ohne Alphakanal hinzufügen." -#: app/core/gimplayer.c:553 +#: app/core/gimplayer.c:552 msgid "" "Unable to add a layer mask since\n" "the layer already has one." @@ -765,7 +823,7 @@ msgstr "" "Kann keine Ebenenenmaske hinzufügen, da\n" "diese Ebene bereits eine Maske hat." -#: app/core/gimplayer.c:560 +#: app/core/gimplayer.c:559 msgid "" "Unable to add a layer mask to a\n" "layer in an indexed image." @@ -773,7 +831,7 @@ msgstr "" "Kann keine Maske zu einer Ebene in\n" "einem indizierten Bild hinzufügen." -#: app/core/gimplayer.c:567 +#: app/core/gimplayer.c:566 msgid "" "Cannot add layer mask to a layer\n" "with no alpha channel." @@ -781,7 +839,7 @@ msgstr "" "Kann keine Maske zu einer Ebene\n" "ohne Alphakanal hinzufügen." -#: app/core/gimplayer.c:577 +#: app/core/gimplayer.c:576 #, fuzzy msgid "" "Cannot add layer mask of different\n" @@ -789,7 +847,7 @@ msgid "" msgstr "" "Kann keine Ebenenmaske mit anderen Abmessungen als die Ebene hinzufügen." -#: app/core/gimplayer.c:618 +#: app/core/gimplayer.c:611 #, c-format msgid "%s mask" msgstr "%s Maske" @@ -943,8 +1001,8 @@ msgstr "GIMP Musterdatei \"%s\" scheint nicht vollständig zu sein." msgid "pixel" msgstr "Pixel" -#: app/core/gimpunit.c:60 app/tools/gimpmeasuretool.c:571 -#: app/tools/gimpmeasuretool.c:574 app/tools/gimppainttool.c:566 +#: app/core/gimpunit.c:60 app/tools/gimpmeasuretool.c:572 +#: app/tools/gimpmeasuretool.c:575 app/tools/gimppainttool.c:566 msgid "pixels" msgstr "Pixel" @@ -1143,7 +1201,7 @@ msgid "Aspect Ratio:" msgstr "Seitenverhältnis:" #: app/gui/brush-editor.c:211 app/tools/gimpinktool.c:1476 -#: app/tools/gimpmeasuretool.c:392 app/tools/gimprotatetool.c:182 +#: app/tools/gimpmeasuretool.c:393 app/tools/gimprotatetool.c:182 msgid "Angle:" msgstr "Winkel:" @@ -1189,10 +1247,6 @@ msgstr "Einstellungen für neuen Kanal" msgid "Channel name:" msgstr "Kanalname:" -#: app/gui/channels-commands.c:437 -msgid "New Channel" -msgstr "Neuer Kanal" - #. The opacity scale #: app/gui/channels-commands.c:441 app/gui/channels-commands.c:600 msgid "Fill Opacity:" @@ -1509,12 +1563,6 @@ msgstr "" msgid "New Image" msgstr "Neues Bild" -#. Image size frame -#: app/gui/file-new-dialog.c:139 -#, fuzzy -msgid "Image Size" -msgstr "Bildgröße: %s" - #. the pixel size labels #: app/gui/file-new-dialog.c:158 app/gui/file-new-dialog.c:176 #: app/tools/gimpcroptool.c:992 app/tools/selection_options.c:427 @@ -1522,7 +1570,7 @@ msgid "Width:" msgstr "Breite:" #: app/gui/file-new-dialog.c:164 app/gui/file-new-dialog.c:182 -#: app/gui/layers-commands.c:658 app/gui/resize-dialog.c:277 +#: app/gui/layers-commands.c:652 app/gui/resize-dialog.c:277 #: app/gui/resize-dialog.c:302 app/gui/resize-dialog.c:541 #: app/tools/gimpcroptool.c:995 app/tools/gimpscaletool.c:182 #: app/tools/gimpscaletool.c:191 app/tools/selection_options.c:442 @@ -1552,11 +1600,6 @@ msgstr "Y:" msgid "pixels/%a" msgstr "Pixel/%a" -#. frame for Image Type -#: app/gui/file-new-dialog.c:361 -msgid "Image Type" -msgstr "Bildart" - #. frame for Fill Type #: app/gui/file-new-dialog.c:402 app/gui/offset-dialog.c:191 msgid "Fill Type" @@ -2031,78 +2074,74 @@ msgstr "Invertierung schlug fehl." msgid "Equalize does not operate on indexed drawables." msgstr "Angleichen funktioniert nicht mit indizierten Bildern." -#: app/gui/layers-commands.c:584 +#: app/gui/layers-commands.c:578 msgid "Empty Layer Copy" msgstr "Leere Ebene Kopie" -#: app/gui/layers-commands.c:607 +#: app/gui/layers-commands.c:601 msgid "New Layer Options" msgstr "Einstellungen für neue Ebene" #. The name label and entry -#: app/gui/layers-commands.c:637 +#: app/gui/layers-commands.c:631 msgid "Layer Name:" msgstr "Ebenenname:" -#: app/gui/layers-commands.c:648 -msgid "New Layer" -msgstr "Neue Ebene" - #. The size labels -#: app/gui/layers-commands.c:652 +#: app/gui/layers-commands.c:646 msgid "Layer Width:" msgstr "Ebenenbreite:" -#: app/gui/layers-commands.c:711 +#: app/gui/layers-commands.c:705 msgid "Layer Fill Type" msgstr "Ebenenfüllart" -#: app/gui/layers-commands.c:791 +#: app/gui/layers-commands.c:785 msgid "Edit Layer Attributes" msgstr "Ebenenmerkmale ändern" -#: app/gui/layers-commands.c:824 +#: app/gui/layers-commands.c:818 msgid "Layer name:" msgstr "Ebenenname:" -#: app/gui/layers-commands.c:897 +#: app/gui/layers-commands.c:891 msgid "Add Mask Options" msgstr "Einstellungen für neue Maske" -#: app/gui/layers-commands.c:926 app/gui/layers-commands.c:953 +#: app/gui/layers-commands.c:920 app/gui/layers-commands.c:947 msgid "Initialize Layer Mask to:" msgstr "Initialisierung Ebenenmaske nach:" -#: app/gui/layers-commands.c:931 app/tools/gimpbycolorselecttool.c:564 +#: app/gui/layers-commands.c:925 app/tools/gimpbycolorselecttool.c:564 msgid "Selection" msgstr "Auswahl" -#: app/gui/layers-commands.c:933 +#: app/gui/layers-commands.c:927 #, fuzzy msgid "Inverse Selection" msgstr "/Mit Auswahl schneiden" -#: app/gui/layers-commands.c:936 app/gui/layers-commands.c:958 +#: app/gui/layers-commands.c:930 app/gui/layers-commands.c:952 msgid "Grayscale Copy of Layer" msgstr "" -#: app/gui/layers-commands.c:938 app/gui/layers-commands.c:960 +#: app/gui/layers-commands.c:932 app/gui/layers-commands.c:954 msgid "Inverse Grayscale Copy of Layer" msgstr "" -#: app/gui/layers-commands.c:941 app/gui/layers-commands.c:963 +#: app/gui/layers-commands.c:935 app/gui/layers-commands.c:957 msgid "White (Full Opacity)" msgstr "Weiß (volle Deckkraft)" -#: app/gui/layers-commands.c:943 app/gui/layers-commands.c:965 +#: app/gui/layers-commands.c:937 app/gui/layers-commands.c:959 msgid "Black (Full Transparency)" msgstr "Schwarz (volle Transparenz)" -#: app/gui/layers-commands.c:945 app/gui/layers-commands.c:967 +#: app/gui/layers-commands.c:939 app/gui/layers-commands.c:961 msgid "Layer's Alpha Channel" msgstr "Alphakanal der Ebene" -#: app/gui/layers-commands.c:1034 app/gui/layers-commands.c:1123 +#: app/gui/layers-commands.c:1028 app/gui/layers-commands.c:1117 msgid "" "Invalid width or height.\n" "Both must be positive." @@ -3569,10 +3608,6 @@ msgstr "Quelle:" msgid "Gradient" msgstr "Farbverlauf" -#: app/gui/palette-import-dialog.c:423 app/pdb/internal_procs.c:122 -msgid "Image" -msgstr "Bild" - #. The sample size #: app/gui/palette-import-dialog.c:439 msgid "Sample Size:" @@ -4404,19 +4439,11 @@ msgstr "QMask Attribute ändern" msgid "Mask Opacity:" msgstr "Maskendeckkraft:" -#: app/gui/resize-dialog.c:177 -msgid "Scale Layer" -msgstr "Ebene skalieren" - #: app/gui/resize-dialog.c:179 app/gui/resize-dialog.c:204 #: app/tools/paint_options.c:388 msgid "Size" msgstr "Größe" -#: app/gui/resize-dialog.c:183 -msgid "Scale Image" -msgstr "Bild skalieren" - #: app/gui/resize-dialog.c:185 msgid "Pixel Dimensions" msgstr "Pixel Abmessungen" @@ -4522,32 +4549,30 @@ msgstr "GIMP Start" msgid "The GIMP" msgstr "GIMP" -#: app/gui/tips-dialog.c:77 -msgid "gimp_tips.txt" -msgstr "gimp_tips.de.txt" - -#: app/gui/tips-dialog.c:92 +#: app/gui/tips-dialog.c:105 msgid "GIMP Tip of the Day" msgstr "GIMP Tip des Tages" -#: app/gui/tips-dialog.c:147 +#: app/gui/tips-dialog.c:176 msgid "Show tip next time GIMP starts" msgstr "Tips beim nächsten Start anzeigen" -#: app/gui/tips-dialog.c:178 -msgid "Previous Tip" +#: app/gui/tips-dialog.c:207 +#, fuzzy +msgid "_Previous Tip" msgstr "Vorheriger Tip" -#: app/gui/tips-dialog.c:188 -msgid "Next Tip" +#: app/gui/tips-dialog.c:217 +#, fuzzy +msgid "_Next Tip" msgstr "Nächster Tip" -#: app/gui/tips-dialog.c:284 +#: app/gui/tips-parser.c:143 #, fuzzy msgid "" "Your GIMP tips file appears to be missing!\n" -"There should be a file called gimp_tips.txt in\n" -"the tips subfolder of the GIMP data folder.\n" +"There should be a file called gimp-tips.xml in the tips subfolder of the " +"GIMP data folder.\n" "Please check your installation." msgstr "" "Die Datei mit den GIMP Tips scheint zu fehlen!\n" @@ -4555,6 +4580,21 @@ msgstr "" "tips eine Datei names gimp_tips.de.txt existieren.\n" "Überprüfen Sie Ihre Installation." +#. This is a special string to specify the language identifier to +#. look for in the gimp-tips.xml file. Please translate the C in it +#. according to the name of the po file used for gimp-tips.xml. +#. E.g. for the german translation, that would be "tips-locale:de". +#. +#: app/gui/tips-parser.c:158 +msgid "tips-locale:C" +msgstr "tips-locale:de" + +#: app/gui/tips-parser.c:191 +msgid "" +"Your GIMP tips file could not be parsed correctly!\n" +"Please check your installation." +msgstr "" + #: app/gui/toolbox.c:338 msgid "" "Foreground & background colors. The black and white squares reset colors. " @@ -6271,7 +6311,7 @@ msgstr "Hineinzoomen" msgid "Zoom out" msgstr "Herauszoomen" -#: app/tools/gimpmeasuretool.c:137 app/tools/gimpmeasuretool.c:389 +#: app/tools/gimpmeasuretool.c:137 app/tools/gimpmeasuretool.c:390 msgid "Measure Tool" msgstr "Maßband" @@ -6284,16 +6324,16 @@ msgstr "Distanzen und Winkel messen" msgid "/Tools/Measure" msgstr "/Werkzeuge/Messen" -#: app/tools/gimpmeasuretool.c:391 +#: app/tools/gimpmeasuretool.c:392 msgid "Distance:" msgstr "Abstand:" -#: app/tools/gimpmeasuretool.c:571 app/tools/gimpmeasuretool.c:576 -#: app/tools/gimpmeasuretool.c:584 app/tools/gimpmeasuretool.c:614 +#: app/tools/gimpmeasuretool.c:572 app/tools/gimpmeasuretool.c:577 +#: app/tools/gimpmeasuretool.c:585 app/tools/gimpmeasuretool.c:615 msgid "degrees" msgstr "Grad" -#: app/tools/gimpmeasuretool.c:865 +#: app/tools/gimpmeasuretool.c:866 msgid "Use Info Window" msgstr "Benutze Info-Fenster" @@ -6975,6 +7015,90 @@ msgstr "Bilder und Photos bearbeiten und erstellen" msgid "The GIMP (unstable)" msgstr "GIMP (instabil)" +#~ msgid "image" +#~ msgstr "Bild" + +#~ msgid "mask" +#~ msgstr "Maske" + +#~ msgid "transform" +#~ msgstr "Transformation" + +#~ msgid "new layer" +#~ msgstr "Ebene anlegen" + +#~ msgid "delete layer" +#~ msgstr "Ebene löschen" + +#~ msgid "add layer mask" +#~ msgstr "Ebenenmaske hinzufügen" + +#~ msgid "delete layer mask" +#~ msgstr "Ebenenmaske löschen" + +#~ msgid "new channel" +#~ msgstr "Neuer Kanal" + +#~ msgid "delete channel" +#~ msgstr "Kanal löschen" + +#~ msgid "gimage" +#~ msgstr "Bild" + +#~ msgid "text" +#~ msgstr "Text" + +#~ msgid "float selection" +#~ msgstr "Auswahl -> schwebend" + +#~ msgid "paste" +#~ msgstr "Einfügen" + +#~ msgid "cut" +#~ msgstr "Ausschneiden" + +#~ msgid "transform core" +#~ msgstr "Transformation" + +#~ msgid "paint core" +#~ msgstr "Zeichenwerkzeug" + +#~ msgid "floating layer" +#~ msgstr "Schwebende Ebene" + +#~ msgid "apply layer mask" +#~ msgstr "Ebenenmaske anwenden" + +#~ msgid "layer merge" +#~ msgstr "Ebenen vereinen" + +#~ msgid "FS anchor" +#~ msgstr "Schwebende Auswahl verankern" + +#~ msgid "gimage mod" +#~ msgstr "Bildänderung" + +#~ msgid "crop" +#~ msgstr "Zuschneiden" + +#~ msgid "layer scale" +#~ msgstr "Ebene skalieren" + +#~ msgid "layer resize" +#~ msgstr "Ebenengröße ändern" + +#~ msgid "image scale" +#~ msgstr "Bild skalieren" + +#~ msgid "image resize" +#~ msgstr "Bildgröße ändern" + +#~ msgid "misc" +#~ msgstr "Verschiedenes" + +#~ msgid "gimp_tips.txt" +#~ msgstr "gimp_tips.de.txt" + #~ msgid "/Merge Visible Layers..." #~ msgstr "/Sichtbare Ebenen vereinen..." @@ -7145,9 +7269,6 @@ msgstr "GIMP (instabil)" #~ msgid "Split segments uniformly" #~ msgstr "Segment gleichmäßig aufteilen" -#~ msgid "Delete selection" -#~ msgstr "Auswahl löschen" - #~ msgid "Re-center midpoints in selection" #~ msgstr "Mittelpunkte in Auswahl zentrieren" @@ -7300,9 +7421,6 @@ msgstr "GIMP (instabil)" #~ msgid "Reset" #~ msgstr "Standard" -#~ msgid "Selection Mode" -#~ msgstr "Auswahlmodus" - #~ msgid "Replace" #~ msgstr "Ersetzen" @@ -7324,9 +7442,6 @@ msgstr "GIMP (instabil)" #~ msgid "Shear" #~ msgstr "Scheren" -#~ msgid "Transform" -#~ msgstr "Transformation" - #~ msgid "GTK color selector as a pluggable color selector" #~ msgstr "Standard GTK Farbauswahl als ladbares Modul" @@ -7367,9 +7482,6 @@ msgstr "GIMP (instabil)" #~ msgid "module load error: %s: %s" #~ msgstr "Fehler beim Laden von Modul %s: %s" -#~ msgid "Load Image" -#~ msgstr "Bild öffnen" - #~ msgid "/Dialogs/Document Index..." #~ msgstr "/Dialoge/Dokumentenindex..." @@ -7403,9 +7515,6 @@ msgstr "GIMP (instabil)" #~ msgid "Duplicate Channel" #~ msgstr "Kanal duplizieren" -#~ msgid "Delete Channel" -#~ msgstr "Kanal löschen" - #~ msgid "Indexed Color Palette" #~ msgstr "Indizierte Farbpalette" @@ -7458,9 +7567,6 @@ msgstr "GIMP (instabil)" #~ "Warnung: Konnte Pinselanimation\n" #~ "\"%s\" nicht laden" -#~ msgid "Paste" -#~ msgstr "Einfügen" - #~ msgid "Select a buffer to paste:" #~ msgstr "Ablage zum Einfügen wählen:" @@ -7500,9 +7606,6 @@ msgstr "GIMP (instabil)" #~ msgid "Anchor Layer" #~ msgstr "Ebene verankern" -#~ msgid "Delete Layer" -#~ msgstr "Ebene löschen" - #~ msgid "Normal" #~ msgstr "Normal" @@ -7536,9 +7639,6 @@ msgstr "GIMP (instabil)" #~ msgid "Layers, Channels & Paths" #~ msgstr "Ebenen, Kanäle und Pfade" -#~ msgid "Layers" -#~ msgstr "Ebenen" - #~ msgid "Channels" #~ msgstr "Kanäle" @@ -7635,9 +7735,6 @@ msgstr "GIMP (instabil)" #~ msgid "Flip" #~ msgstr "Spiegeln" -#~ msgid "Text" -#~ msgstr "Text" - #~ msgid "Draw sharp pencil strokes" #~ msgstr "Harte Pinselstriche zeichnen"