diff -Nru fotoxx-14.03/data/edit-menus-ca fotoxx-14.04/data/edit-menus-ca --- fotoxx-14.03/data/edit-menus-ca 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/data/edit-menus-ca 2014-04-01 06:09:31.000000000 +0000 @@ -16,6 +16,7 @@ Histograma Aplanar o expandir histograma Rampa de brillantor Variació de la lluminositat horitzontalment o verticalment Editar pintant Pintar una edició de retoc poc a poc amb el ratolí. +Edició per nivells Controlar una funció de retoc usant brillantor o color. Reparar ======= diff -Nru fotoxx-14.03/data/edit-menus-en fotoxx-14.04/data/edit-menus-en --- fotoxx-14.03/data/edit-menus-en 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/data/edit-menus-en 2014-04-01 06:09:31.000000000 +0000 @@ -16,6 +16,7 @@ Brightness Distribution Flatten or expand brightness distribution. Brightness Ramp Horizontal/Vertical variation of brightness. Paint Edits Paint a retouch edit gradually using the mouse. +Leverage Edits Regulate a retouch edit with brightness or color. Repair ====== diff -Nru fotoxx-14.03/data/edit-menus-es fotoxx-14.04/data/edit-menus-es --- fotoxx-14.03/data/edit-menus-es 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/data/edit-menus-es 2014-04-01 06:09:31.000000000 +0000 @@ -16,6 +16,7 @@ Histograma Aplanar o expandir el histograma Rampa de brillo Variación del brillo vertical/horizontalmente Editar pintando Pintar una edición de retoque poco a poco con el ratón. +Edición por niveles Controlar una función de retoque usando brillo o color. Reparar ======= Binary files /tmp/3XfiINoMYv/fotoxx-14.03/data/images/leverage-edits.jpg and /tmp/9K8oNyXDER/fotoxx-14.04/data/images/leverage-edits.jpg differ Binary files /tmp/3XfiINoMYv/fotoxx-14.03/data/images/pattern.jpg and /tmp/9K8oNyXDER/fotoxx-14.04/data/images/pattern.jpg differ Binary files /tmp/3XfiINoMYv/fotoxx-14.03/data/images/retouch-combo2.jpg and /tmp/9K8oNyXDER/fotoxx-14.04/data/images/retouch-combo2.jpg differ Binary files /tmp/3XfiINoMYv/fotoxx-14.03/data/images/retouch-combo.jpg and /tmp/9K8oNyXDER/fotoxx-14.04/data/images/retouch-combo.jpg differ Binary files /tmp/3XfiINoMYv/fotoxx-14.03/data/images/slide-show.jpg and /tmp/9K8oNyXDER/fotoxx-14.04/data/images/slide-show.jpg differ Binary files /tmp/3XfiINoMYv/fotoxx-14.03/data/patterns/brick wall.jpg and /tmp/9K8oNyXDER/fotoxx-14.04/data/patterns/brick wall.jpg differ Binary files /tmp/3XfiINoMYv/fotoxx-14.03/data/patterns/burlap coarse.jpg and /tmp/9K8oNyXDER/fotoxx-14.04/data/patterns/burlap coarse.jpg differ Binary files /tmp/3XfiINoMYv/fotoxx-14.03/data/patterns/burlap.jpg and /tmp/9K8oNyXDER/fotoxx-14.04/data/patterns/burlap.jpg differ Binary files /tmp/3XfiINoMYv/fotoxx-14.03/data/patterns/geometry 2.jpg and /tmp/9K8oNyXDER/fotoxx-14.04/data/patterns/geometry 2.jpg differ Binary files /tmp/3XfiINoMYv/fotoxx-14.03/data/patterns/geometry 3.jpeg and /tmp/9K8oNyXDER/fotoxx-14.04/data/patterns/geometry 3.jpeg differ Binary files /tmp/3XfiINoMYv/fotoxx-14.03/data/patterns/linen-fine.jpg and /tmp/9K8oNyXDER/fotoxx-14.04/data/patterns/linen-fine.jpg differ diff -Nru fotoxx-14.03/data/userguide-en.html fotoxx-14.04/data/userguide-en.html --- fotoxx-14.03/data/userguide-en.html 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/data/userguide-en.html 2014-04-01 06:09:31.000000000 +0000 @@ -7,7 +7,7 @@ Fotoxx User -Guide  v.14.03
+Guide  v.14.04

For experienced users, skip to the Table @@ -627,8 +627,8 @@
Curve Editing
-Some image edit functions use editable curves. You can manipulate the curves to change some property of the image depending @@ -641,7 +641,7 @@ Y-axis the output property (also brightness). The curves can be moved (pulled) with the mouse. "Up" increases the effect and "down" decreases the effect. An anchor point (black dot) is added to the curve wherever -it is pulled, and this becomes a constraint for subsequent pulls: the +it is pulled, and this point remains fixed for subsequent pulls: the curve will continue to go through this point as other parts of the curve are pulled. Anchor points can also be dragged. Delete an anchor point by right-clicking it.
-  
Brightness Histogram
+  Brightness +Distribution
Show brightness distribution @@ -1444,6 +1444,14 @@ +  Leverage Edits
+ + Apply +edit functions regulated +by initial brightness or color + +

@@ -3268,83 +3276,56 @@ style="font-family: Verdana;"> Slide Show
-With +With this function you can show a pre-selected sequence of images in -full-screen mode.
-
-Slide -Show Select: Use the +There are three dialogs used to define and customize a slide show.
+

+Use +the
Manage Collections function to assemble the images for a slide show as a collection with an assigned name. This allows you to collect images from -anywhere in your image database and order them as desired. When a slide -show is started, select the collection name to be used. If the -collection includes images with multiple versions, you can show all the -versions or only the last version, depending on the 'last versions' -checkbox.
-
-Pause -List -Select: You can optionally -select another -collection for images that -will be automatically paused in the slide show. The show stops at these -images, plays a tone, and waits for the user to continue by pressing -the space bar. This is for making speeches at selected images. If you -make the slide show collection first, you can select images from that -collection for the pause list collection. The pause list collection can -also be more general, containing images that appear in different slide -show collections. To cancel a pause list, use the [Select] button and -then cancel the file selection dialog that follows.
-
-Transitions: -There are a number -of transition types that can be used between images. Transition modes -include instant -replacement, fade-out / -fade-in, and many animated methods of image replacement (e.g. the -new image expands from the center to replace the old image). Press the -[transitions] button to get the second dialog. Here you can select the -transitions to be used and whether they are used randomly or in -sequence. The slowdown -parameters can be used to slow selected -transitions that may operate too fast on some computers (and some may -be too slow on slow computers, but this cannot be helped). The -preference parameters specify a -relative preference which will -influence how frequently the transition type is used when random -sequence is selected. The random method avoids using a transition that -was used shortly before, and will only work if 5 or more transition -types are selected. The -arrow keys can always be used -at any time -during the show to go back or forward immediately.
-
-Seconds: -The time each image is -shown. The spacebar -can be used to pause and resume the timer between slides. The B-key can +anywhere in your image database and order them as desired. In the slide +show dialog, press [Select] +and choose a collection from the list provided. Press the Proceed button to start the slide +show with the first image (or the current image if it is a member of +the slide show collection). Use +the +escape key or F11 to exit the slide show and +return to the dialog.
+
+
The spacebar +can be used to pause and resume between slides. The B-key can be used to blank the screen and pause the show. Press again to restore -the last image, or press the space bar to resume with the next image. -You can interrupt the slide show by pressing the G-key (gallery). -Navigate elsewhere if needed, click on an image, and the slide show -will resume from that image (if the image is in the slide show -collection). This allows you to skip around more easily than stopping +the last image, or press the spacebar to resume with the next image. +You can use the left and right arrow +keys to go back and forth within the sequence of images. You can +interrupt the slide show by pressing the Gallery tab (or G-key). Click on a thumbnail image, and +this will be the next image to show. This allows you to skip around +more easily than stopping and starting the show each time.


-Clip + +Seconds: The time each image is +shown.
+
+
Clip Limit: Images are scaled to fit the window. If the image and window aspect ratios are different, -this will create black margins above and below, or left and right of +this will create black margins above and below or left and right of the image. You can optionally make the images expand to fill these margins and cut off the opposite sides of the image (e.g. if the margins are on the left and right, the image is expanded to fill these @@ -3352,18 +3333,91 @@ of this is allowed with the Clip Limit, which is the percent difference in aspect ratios below which expansion and clipping will be done. Zero means no clipping is done, 10% means that images with 10% or less -difference in aspect ratio will be expanded and clipped.
-
-Show +difference in aspect ratio will be expanded and clipped.
+
+Show Captions: If selected, metadata captions and comments are shown above each image.


-Use the escape key or F11 to get -out of slide show mode.
+Music +File: An optional music file or playlist that will start when +the slide show is started.
+
+Press +[transitions] to start a dialog +to +select and customize the transitions between images. These include +instant +replacement, fade-out / +fade-in, and many animated methods of image replacement (e.g. the +new image expands from the center to replace the old image). Select the +transitions to be used and whether they are used randomly or in +sequence. The slowdown +parameters can be used to slow +transitions that may operate too fast on some computers (some may +be too slow on slow computers, but this cannot be helped). The +preference parameters specify a +relative preference which will +influence how frequently the transition type is used when random +sequence is selected. The random method avoids using a transition that +was used shortly before, and will only work if 5 or more transitions +are selected.
+
+Press [image files] to start a +dialog for image preferences. These are optional. An image is selected +for customizing by clicking its thumbnail (click the gallery tab or +press the G-key to show thumbnails). The dialog is filled-in +with default +settings or the previous settings for this image. Enter revisions and +press [done], or click on the next image to be customized. If Tone is selected, a tone is played +when the image appears during the slide show. Transition is used to select a +transition type to be used for this image. If "next" is selected, then +the normal transition sequence is used (as specified in the Transitions +dialog). Seconds is used to specify +additional display time for the image. There are two entries, one for +before the zoom-in and one for after the zoom-in. They are both used +even if the zoom is disabled (they can be zero). If Zoom size % +is greater +than zero, the image is slowly zoomed-in (magnified) after the initial +display. The zoom value is the percent size increase (50 means +that the image will be magnified 50%). Steps sets the number of zoom-in +steps to use. A lower value makes a faster zoom. The Zoom center values specify an image +position that will be centered when the zoom is complete. These are +percent values, e.g. 50/50 is the image midpoint. +When an image thumbnail is clicked to select an image to customize, the +Center values +are set from the mouse click position. Click the thumbnail again to +correct or adjust the zoom center.
+
+
Sequence of slide show events:
+  + get next image
+  + do the transition for this image (unless first image)
+  + wait for "before zoom" seconds (image prefs dialog)
+  + do the zoom-in if zoom % > 0
+  + wait for "after zoom" seconds (image prefs dialog)
+  + wait for the standard seconds (initial dialog)
+  + loop
+




-
Brightness -Histogram
+Distribution

This function opens a small window that shows a brightness distribution graph of the current image in the main window, or the currently @@ -5219,7 +5273,7 @@ and color: overall brightness and contrast, brightness curves (overall, per color), color saturation, color temperature, white balance and black level.
- 
@@ -5239,7 +5293,10 @@

 
-Use the sliders for brightness and +
+
+
+Use the sliders for brightness and contrast to optimize

the image. This may be adequate for most photos.
@@ -5249,10 +5306,17 @@ style="font-family: Verdana;" clear="all">
+ + + + @@ -5286,13 +5350,21 @@ areas / bright
- + - + + + @@ -5307,20 +5379,26 @@ adjust individual colors. Use ALL first, then make revisions using RGB.

- dark - bright + Dark - Bright image areas
This modifies the operation of the color adjustments to affect primarily darker or brighter image areas. Leave in the middle to adjust -all areas equally.
-  +all areas equally.
+
+Checkbox: Brightness Distribution
+If checked, a brightness distribution graph is drawn inside the curve +edit window. The graph is live and changes as the dialog controls are +changed. The edit curve overlays the graph and may still be edited.
+
 
Checkbox: click for white balance or black level
-If this box is checked, this -function takes ownership of the mouse and -processes mouse clicks (otherwise clicks +If checked, mouse clicks on the +image are used to set a black point and/or white balance (otherwise +clicks on the image will zoom the image, as usual). If you click on a fairly bright gray or white spot on the image, this will be used as a white balance set point, and the image RGB colors will be shifted to make @@ -5339,9 +5417,6 @@
Buttons
-Bdist - a brightness distribution -graph is shown in a small popup window
Reset - set all controls back to a neutral position - image is also reset
@@ -5553,6 +5628,34 @@ Mapping, Sharpen, Blur, Reduce Noise. Most of the Color and Effects functions can also be used.


+
+Leverage Edits
+
+
It is sometimes effective to +apply +a retouching function "leveraged" by some image attribute, e.g. apply +noise reduction to darker areas of the image while leaving brighter +areas alone. To do this, use Leverage Edits. +Choose brightness or contrast as the controlling attribute (lever). The +lever may be for a single RGB color or for all colors. The editable +graph controls how subsequent edit functions are applied to the image. +The x-axis is the selected lever (brightness or contrast), from minimum +to maximum value. The y-axis value governs how strongly an edit +function affects a pixel having the attribute value on the x-axis. A +low y-value minimizes the effect, and a high y-value maximizes it.
+
+Example: apply tone mapping +primarily to dark pixels: Start Tone +Mapping, then start start Leverage Edits and drag the curve so that +high values are on the left +(dark pixels) and low values are in the middle and on the right (bright +pixels). You can edit either curve (leverage curve, +tone mapping curve) while watching the resulting image.




-Pattern
-Add a background pattern to an image. A small image file (pattern file) +Pattern
+Add a background pattern to an +image. A small image file (pattern file) is used to cover the current image (base image) by duplicating the file, like a tiled floor. This file can be a real pattern (e.g. an image of canvas cloth, a brick wall, a @@ -6508,48 +6612,82 @@ over the pattern, or the pattern over the image. Many pattern files can be found using a Google search for "pattern image". Download some of these and trim them if -needed to a size around 200-500 pixels. LibreOffice background patterns -are another good source. You can save them anywhere in your image -collection.
-
-Use the [Choose] button to select a pattern file. The [Apply] button -will duplicate the pattern to cover the base image. The +needed to a size around 200-500 pixels.

+
+Use the [Browse] button to +select a pattern file. The +selected pattern will cover the base image. The pattern is partly transparent so that the base image shows through. -Adjust the Power setting and use [Apply] again until you have the right -mix of base image and pattern.
-
-Width and Height are initially set to +Adjust
Opacity until you have +the right +mix of base image and pattern. Use Magnify +to grow or shrink the pattern size.
+
+Width and Height are initially set to the size of the pattern file. You can adjust these smaller, which will cause less of the pattern to be used for duplication. If the pattern file contains an image that repeats at fixed intervals both -horizontally and vertically, the [Find] button can be used to set width +horizontally and vertically, the [Calculate] +button can be used to set width and height to match this image. The result will be a continuous pattern -without discontinuities.
-
-If the pattern is irregular and joints are visible where the duplicated -patterns are joined, you may be able to improve this. Use width and -height to revise what part of the pattern image is used. The two -overlap values determine how much the duplicated patterns overlap at -the edges, horizontally and vertically. Add some overlap to mask the -edge effects.
-
-Select Area can be used to apply a pattern +without discontinuities.

+
+If the pattern is irregular and +joints are visible where the duplicated +patterns are joined, you may be able to improve this. Use Width and Height to revise what part of the +pattern image is used. The two Overlap +values determine how much the duplicated patterns overlap at +the edges, horizontally and vertically. Add some overlap to mask edge +effects.
+
+Select Area can be used to apply a pattern to part of an image, or different patterns to different parts. After -applying a pattern to an image, it might be interesting to use Embossing or Tone -Mapping to add a 3-D effect to the pattern.
-
-
-Mosaic
-Create a mosaic image using tiles made from all your images.
-
-
-Specify the tile size in pixels (e.g. 36 x 24) and press [Tiles]. Tiles +applying a pattern to an image, it might be interesting to use
Embossing or Tone +Mapping to add a 3-D effect to +the pattern.
+
+Usefull pattern files in +LibreOffice: /usr/lib/libreoffice/share/gallery/www-back
+
+
+Mosaic
+Create a mosaic image using tiles +made from all your images.
+
+
+Specify the tile size in pixels +(e.g. 36 x 24) and press [Tiles]. Tiles will be created from all of your images (actually the thumbnail images are used since their small size makes the process run much faster). This may take some time (speed is about 11K images/min. using a slow @@ -6558,29 +6696,34 @@ have been cached in memory by the OS. The generated tiles are saved to a file and loaded again the next time the Mosaic function is used. Regenerate the tiles only when new images have been added to your -collection or if you change the tile size.
-
-After the tiles are created, press [Image] to convert the current image +collection or if you change the tile size.

+
+After the tiles are created, press +[Image] to convert the current image into a mosaic using these tiles. This takes only a few seconds. You can process additional images without regenerating the tiles. Tiles are chosen by matching the average tile color to the average image color at the tile position. If thousands of images are available and if the range of colors is good enough, the mosaic will turn out quite good. Use the mouse wheel (or CTRL+left click) to zoom-in on any part of the -image to see the tile images.
-
-The Tile blending slider will cause the image to be blended with the +image to see the tile images.

+
+The Tile blending slider will cause +the image to be blended with the tiles, making it look better if the tiles are a bad color match. If the blending is less than about 50%, the tiles remain -almost as clear as before (the eye compensates the false tint).
-
-After a mosaic is created, you can click on any tile to get a larger +almost as clear as before (the eye compensates the false tint).

+
+After a mosaic is created, you can +click on any tile to get a larger popup image. This is the full image for the tile, so you can drag the window as large as you like and it will remain sharp. A mosaic image can be saved like any other edited image, but if a saved mosaic is opened, clicking the tiles for a bigger image does not work. Regenerating the mosaic is quite fast, so do this if you want the -popups to work.
+popups to work.




@@ -7492,6 +7635,29 @@ reading the whole manual. Fotoxx version numbers correspond to year and month of release.


+v.14.04
+
    +
  • The classic menu style (horizontal at the top) was removed, +leaving only the vertical menu style (left side of window). This was +done for space efficiency (esp. HD wide monitors), and reduced code +maintenance.
    +
  • +
  • Retouch Combo can better adjust +individual +colors, and a brightness distribution graph can be added, sharing the +same window with the edit curve.
  • +
  • Slide Show: Transition types can be +selected per image, if wanted. Zoom-in speed, center location, and +final magnification can be selected per image.
    +
  • +
  • The gallery page has a slow scroll button for visual image +searching. 
  • +
  • Background Pattern capabilities were +extended.
  • +
  • Leverage Edits was restored. It works +better than Paint Edits in come cases.
    +
  • +
v.14.03
  • New function Mosaic was added.
  • diff -Nru fotoxx-14.03/debian/changelog fotoxx-14.04/debian/changelog --- fotoxx-14.03/debian/changelog 2014-03-03 06:19:55.000000000 +0000 +++ fotoxx-14.04/debian/changelog 2014-04-02 12:36:39.000000000 +0000 @@ -1,3 +1,19 @@ +fotoxx (14.04-1dhor~quantal) quantal; urgency=low + + * The classic top menu was replaced with a vertical menu on the left side. + * Retouch Combo: improved capability to adjust individual colors. + * Retouch Combo: brightness distribution graph cohabits the curve edit window. + * Retouch Combo: new control to adjust the sensitivity of the edit curves. + * Gallery: additional slow scroll mode for scanning images visually. + * Slide Show: specify transitions and dwell times per image where wanted. + * Slide Show: specify zoom-in per image (speed, target center, magnification). + * Leverage Edits is back (for some cases it is better than Paint Edits). + * All curve edits: sharper bends can be made (closer anchor points are allowed). + * Background Pattern: GUI is easier to use and the pattern is now resizable. + * Bugfix: memory leak in Retouch > Brightness Distribution. + + -- Dariusz Duma Wed, 02 Apr 2014 14:31:15 +0200 + fotoxx (14.03-2dhor~quantal) quantal; urgency=low * Gallery view: highlight the current image with a red frame. diff -Nru fotoxx-14.03/debian/patches/appdata fotoxx-14.04/debian/patches/appdata --- fotoxx-14.03/debian/patches/appdata 2014-03-03 06:19:41.000000000 +0000 +++ fotoxx-14.04/debian/patches/appdata 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -Description: Missing appdata - . - fotoxx (14.03-2dhor~precise) precise; urgency=low - . - * Gallery view: highlight the current image with a red frame. - * Gallery thumbnail right-click menu: new entry to pop-up a large resizable movable image. View multiple images within the gallery. - * Mosaic: new function to convert an image into a mosaic with tiles made from all available images. Click a tile to pop-up the underlying image. - * Pattern: new function to add a semi-transparent pattern to an image background - (e.g. make an image seem painted on canvas or a brick wall). - * New slide show transition: Ken Burns effect (slow zoom-in). - * Mashup transparencies can be adjusted instantly as well as gradually. - * Several small user interface changes were made for convenience and consistency with common practices. Speed was also improved. - * Keyboard shortcuts editing was simplified. - * Leverage Edits was removed (this is more easily done with Paint Edits). - * Edit Translations was removed (unused AFAIK, and slightly buggy). - * Bugfix: Paint/Clone: ignore source pixels beyond image edge [crash risk]. - * Bugfix: Fix memory allocation thread contention [crash risk]. - * Bugfix: If a collection once contained images that are now deleted, copy/cut/paste operations could move the wrong images. -Author: Dariusz Duma - ---- -The information above should follow the Patch Tagging Guidelines, please -checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here -are templates for supplementary fields that you might want to add: - -Origin: , -Bug: -Bug-Debian: http://bugs.debian.org/ -Bug-Ubuntu: https://launchpad.net/bugs/ -Forwarded: -Reviewed-By: -Last-Update: - ---- fotoxx-14.03.orig/Makefile -+++ fotoxx-14.03/Makefile -@@ -102,7 +102,7 @@ install: fotoxx - cp -f desktop $(DESTDIR)$(MENUFILE) - # xdg-desktop-menu install --novendor $(DESTDIR)$(MENUFILE) - # appdata xml file -- cp -f appdata/*.xml $(DESTDIR)$(APPDATADIR) -+# cp -f appdata/*.xml $(DESTDIR)$(APPDATADIR) - - uninstall: - rm -f $(DESTDIR)$(BINDIR)/fotoxx diff -Nru fotoxx-14.03/debian/patches/series fotoxx-14.04/debian/patches/series --- fotoxx-14.03/debian/patches/series 2014-03-03 06:19:15.000000000 +0000 +++ fotoxx-14.04/debian/patches/series 2014-04-02 12:36:12.000000000 +0000 @@ -1,2 +1 @@ xdg -appdata diff -Nru fotoxx-14.03/debian/patches/xdg fotoxx-14.04/debian/patches/xdg --- fotoxx-14.03/debian/patches/xdg 2014-03-03 05:53:19.000000000 +0000 +++ fotoxx-14.04/debian/patches/xdg 2014-04-02 12:36:25.000000000 +0000 @@ -1,21 +1,17 @@ Description: Remove xdg calls + fotoxx (14.04-1dhor~precise) precise; urgency=low . - fotoxx (14.03-1dhor~precise) precise; urgency=low - . - * Gallery view: highlight the current image with a red frame. - * Gallery thumbnail right-click menu: new entry to pop-up a large resizable movable image. View multiple images within the gallery. - * Mosaic: new function to convert an image into a mosaic with tiles made from all available images. Click a tile to pop-up the underlying image. - * Pattern: new function to add a semi-transparent pattern to an image background - (e.g. make an image seem painted on canvas or a brick wall). - * New slide show transition: Ken Burns effect (slow zoom-in). - * Mashup transparencies can be adjusted instantly as well as gradually. - * Several small user interface changes were made for convenience and consistency with common practices. Speed was also improved. - * Keyboard shortcuts editing was simplified. - * Leverage Edits was removed (this is more easily done with Paint Edits). - * Edit Translations was removed (unused AFAIK, and slightly buggy). - * Bugfix: Paint/Clone: ignore source pixels beyond image edge [crash risk]. - * Bugfix: Fix memory allocation thread contention [crash risk]. - * Bugfix: If a collection once contained images that are now deleted, copy/cut/paste operations could move the wrong images. + * The classic top menu was replaced with a vertical menu on the left side. + * Retouch Combo: improved capability to adjust individual colors. + * Retouch Combo: brightness distribution graph cohabits the curve edit window. + * Retouch Combo: new control to adjust the sensitivity of the edit curves. + * Gallery: additional slow scroll mode for scanning images visually. + * Slide Show: specify transitions and dwell times per image where wanted. + * Slide Show: specify zoom-in per image (speed, target center, magnification). + * Leverage Edits is back (for some cases it is better than Paint Edits). + * All curve edits: sharper bends can be made (closer anchor points are allowed). + * Background Pattern: GUI is easier to use and the pattern is now resizable. + * Bugfix: memory leak in Retouch > Brightness Distribution. Author: Dariusz Duma --- @@ -31,9 +27,9 @@ Reviewed-By: Last-Update: ---- fotoxx-14.03.orig/Makefile -+++ fotoxx-14.03/Makefile -@@ -78,7 +78,7 @@ install: fotoxx +--- fotoxx-14.04.orig/Makefile ++++ fotoxx-14.04/Makefile +@@ -77,7 +77,7 @@ install: fotoxx rm -f -R $(DESTDIR)$(SHAREDIR) rm -f -R $(DESTDIR)$(DOCDIR) rm -f $(DESTDIR)$(MANDIR)/fotoxx.1.gz @@ -42,16 +38,15 @@ rm -f $(DESTDIR)$(MENUFILE) mkdir -p $(DESTDIR)$(BINDIR) mkdir -p $(DESTDIR)$(DATADIR) -@@ -100,7 +100,7 @@ install: fotoxx +@@ -99,14 +99,14 @@ install: fotoxx rm -f fotoxx.1.gz # menu (desktop) file cp -f desktop $(DESTDIR)$(MENUFILE) - xdg-desktop-menu install --novendor $(DESTDIR)$(MENUFILE) +# xdg-desktop-menu install --novendor $(DESTDIR)$(MENUFILE) - # appdata xml file - cp -f appdata/*.xml $(DESTDIR)$(APPDATADIR) -@@ -109,7 +109,7 @@ uninstall: + uninstall: + rm -f $(DESTDIR)$(BINDIR)/fotoxx rm -f -R $(DESTDIR)$(SHAREDIR) rm -f -R $(DESTDIR)$(DOCDIR) rm -f $(DESTDIR)$(MANDIR)/fotoxx.1.gz diff -Nru fotoxx-14.03/debian-control fotoxx-14.04/debian-control --- fotoxx-14.03/debian-control 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/debian-control 2014-04-01 06:09:32.000000000 +0000 @@ -1,5 +1,5 @@ Package: fotoxx -Version: 14.03 +Version: 14.04 Architecture: amd64 Section: graphics Installed-Size: 8948 @@ -7,14 +7,14 @@ Maintainer: Mike Cornelison Priority: optional Homepage: http://kornelix.com/fotoxx -Depends: libc6, libgtk-3-0, binutils, xdg-utils, libtiff4, libimage-exiftool-perl, liblcms2-2 +Depends: libc6, binutils, xdg-utils, libimage-exiftool-perl Recommends: dcraw, ufraw, gnome-session-canberra Description: Edit photos and manage a large collection. Includes thumbnail browser/navigator, RAW file import, a comprehensive set of edit functions working in deep color, rapid visual feedback, edit/copy/paste selected image areas, file versioning, batch operations, named collections (views), - HDR, stack, panorama, mashup, metadata edit and report, - image search using any metadata and directory/file names. + HDR, stack, panorama, montage, metadata edit and report, + image search using any metadata and (partial) file names. diff -Nru fotoxx-14.03/doc/changelog fotoxx-14.04/doc/changelog --- fotoxx-14.03/doc/changelog 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/doc/changelog 2014-04-01 06:09:31.000000000 +0000 @@ -1,6 +1,24 @@ Fotoxx Change Log ================= +2014 Apr 01 v.14.04 ++ The classic menu style was removed in favor of the vertical menu style. ++ Retouch Combo: improved capability to adjust individual colors. ++ Retouch Combo: brightness distribution can cohabit curve edit window. ++ Gallery: additional slow scroll mode for scanning images visually. ++ Slide Show: specify transitions and dwell times per image where wanted. ++ Slide Show: specify zoom-in per image (speed, center, magnification). ++ Leverage Edits is back (for some cases it is better than Paint Edits). ++ Retouch Combo: additional control for "amplification" of edit curves. ++ All curve edits: sharper bends can be made (closer anchor points). ++ Background Pattern: GUI is easier to use and the pattern is resizable. ++ Bugfix: memory leak in Retouch > Brightness Distribution. + +2014 Mar xx v.14.03.1 ++ Bugfix: Makefile references a file not in the tarball. ++ Translation updates: French, Portuguese ++ Improve positioning of "no more images" notification. + 2014 Mar 01 v.14.03 + Gallery view: highlight the current image with a red frame. + Gallery thumbnail right-click menu: new entry to pop-up a large @@ -52,7 +70,7 @@ 2014 Jan 04 v.14.01.1 + Russian translation updated. -+ Spanish and Catalan Quit Start documents updated. ++ Spanish and Catalan Quick Start documents updated. 2014 Jan 01 v.14.01 + Adjustments for brightness, contrast, color, gamma, and white balance diff -Nru fotoxx-14.03/doc/fotoxx-release fotoxx-14.04/doc/fotoxx-release --- fotoxx-14.03/doc/fotoxx-release 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/doc/fotoxx-release 2014-04-01 06:09:31.000000000 +0000 @@ -1,3 +1,3 @@ -Fotoxx 14.03 +Fotoxx 14.04 diff -Nru fotoxx-14.03/doc/freecode fotoxx-14.04/doc/freecode --- fotoxx-14.03/doc/freecode 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/doc/freecode 2014-04-01 06:09:31.000000000 +0000 @@ -1,19 +1 @@ -The gallery page highlights the current image thumbnail. - -The gallery thumbnail menu can pop-up a large, resizable, movable image. -Multiple images can be viewed this way. - -Convert an image into a mosaic with small tiles made from all available -images. Click on a tile to pop-up a large, resizable, movable image. - -Add a semi-transparent background pattern to an image -(e.g. make it seem painted on a canvas or brick wall). - -Slide Show has a "Ken Burns" mode (slow zoom-in). - -Several small interface changes were made for convenience and -consistency with other apps. Speed was also improved. - -Three bugs were fixed. - - +14.04 TBD diff -Nru fotoxx-14.03/f.combine.cc fotoxx-14.04/f.combine.cc --- fotoxx-14.03/f.combine.cc 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/f.combine.cc 2014-04-01 06:09:32.000000000 +0000 @@ -6016,7 +6016,7 @@ PXM *pxm1f; // info pixmap, if from select area v.14.01 PXM *pxm2f; // " curr. size float scale; // pxm2 scale, 0.0 to 1.0 = 1x - float theta; // angle, -pi to +pi radians + float theta; // angle, -PI to +PI radians float sinT, cosT; // trig values for theta float Btransp; // base transparency, 0.0 to 1.0 = invisible int blendist; // edge blend distance, pixels @@ -6722,7 +6722,7 @@ using namespace mashup; int ii, ww1, hh1, ww2, hh2, nn; - float rad = pi / 180.0; + float rad = PI / 180.0; float scale, angle, Btransp; if (zd->zstat) @@ -7579,7 +7579,7 @@ using namespace mashup; char *pp; - float rad = 180 / pi; + float rad = 180 / PI; float scale, angle, Btransp; int blendist; zdialog *zd; diff -Nru fotoxx-14.03/f.effects.cc fotoxx-14.04/f.effects.cc --- fotoxx-14.03/f.effects.cc 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/f.effects.cc 2014-04-01 06:09:32.000000000 +0000 @@ -1064,7 +1064,7 @@ astep = 0.5 / rad1; // 0.5 pixel steps at rad1 from center - for (angle = 0; angle < 2*pi; angle += astep) // loop full circle + for (angle = 0; angle < 2*PI; angle += astep) // loop full circle { pixseq_angle[ii] = jj; // start pixel sequence for this angle ii++; @@ -2994,12 +2994,14 @@ { editfunc EFpattern; // edit function data int e3ww, e3hh; - int power = 40; - char *pattfile = 0; // pattern (tile) image file - GdkPixbuf *pixbuf = 0; // tile pixbuf - int tww, thh, trs; // tile length, width, row stride - int lapww = 0, laphh = 0; // tile overlap - uint8 *timage; // tile pixels + char *pattfile = 0; // pattern image file + GdkPixbuf *pixbuf = 0; // pattern pixbuf + int pattww, patthh, pattrs; // pixbuf length, width, row stride + uint8 *pixels; // pixbuf pixels + int olapww = 0, olaphh = 0; // pattern overlap + int opacity = 40; // pattern opacity + float zoom = 1.0; // pattern magnification + int update_thread = 0; } void m_pattern(GtkWidget *, const char *) // v.14.03 @@ -3015,7 +3017,7 @@ EFpattern.menufunc = m_pattern; EFpattern.funcname = "pattern"; // function name - EFpattern.Farea = 2; // fixme ****** // select area OK + EFpattern.Farea = 2; // select area OK *** fixme *** EFpattern.threadfunc = pattern_thread; // thread function if (! edit_setup(EFpattern)) return; // setup edit @@ -3024,49 +3026,60 @@ e3hh = E3pxm->hh; /*** - ______________________________________ - | Add pattern | - | | - | Pattern [Choose] Power [___|-+] | - | Pattern size [Find] | - | Width [___|-+] Height [___|-+] | - | Overlap [___|-+] Overlap [___|-+] | - | | - | [apply] [done] [cancel] | - |______________________________________| + _______________________________________________ + | [x][-][_] Background Pattern | + | | + | Pattern File [____________________] [Browse] | + | Geometry [Calculate] Zoom [___|-+] | + | Pattern Width [___|-+] Height [___|-+] | + | Overlap Width [___|-+] Height [___|-+] | + | Opacity [___|-+] | + | | + | [done] [cancel] | + |_______________________________________________| ***/ - zd = zdialog_new(ZTX("Add pattern"),mWin,Bapply,Bdone,Bcancel,null); // pattern dialog + zd = zdialog_new(ZTX("Background Pattern"),mWin,Bdone,Bcancel,null); CEF->zd = zd; - zdialog_add_widget(zd,"hbox","hbpatt","dialog"); - zdialog_add_widget(zd,"label","labpatt","hbpatt",ZTX("Pattern"),"space=3"); - zdialog_add_widget(zd,"button","choose","hbpatt",Bchoose,"space=5"); - zdialog_add_widget(zd,"label","space","hbpatt",0,"space=5"); - zdialog_add_widget(zd,"label","labpow","hbpatt",Bpower,"space=3"); - zdialog_add_widget(zd,"spin","power","hbpatt","1|100|1|40"); - - zdialog_add_widget(zd,"hbox","hbfind","dialog"); - zdialog_add_widget(zd,"label","labfind","hbfind",ZTX("Pattern size"),"space=3"); - zdialog_add_widget(zd,"button","find","hbfind",Bfind,"space=5"); + zdialog_add_widget(zd,"hbox","hbfile","dialog",0,"space=3"); + zdialog_add_widget(zd,"label","labfile","hbfile",ZTX("Pattern File:"),"space=5"); + zdialog_add_widget(zd,"label","pattfile","hbfile",0,"scc=40"); + zdialog_add_widget(zd,"button","browse","hbfile",Bbrowse,"space=5"); + + zdialog_add_widget(zd,"hbox","hbcalc","dialog"); + zdialog_add_widget(zd,"label","labcalc","hbcalc",ZTX("Geometry"),"space=5"); + zdialog_add_widget(zd,"button","calc","hbcalc",ZTX("Calculate")); + zdialog_add_widget(zd,"label","space","hbcalc",0,"space=10"); + zdialog_add_widget(zd,"label","labmag","hbcalc",ZTX("Zoom"),"space=3"); + zdialog_add_widget(zd,"spin","zoom","hbcalc","0.2|5.0|0.01|1.0"); zdialog_add_widget(zd,"hbox","hbsize","dialog"); zdialog_add_widget(zd,"vbox","vbs1","hbsize",0,"space=3|homog"); - zdialog_add_widget(zd,"vbox","vbs2","hbsize",0,"homog"); - zdialog_add_widget(zd,"vbox","space","hbsize",0,"space=5"); + zdialog_add_widget(zd,"vbox","vbs2","hbsize",0,"space=3|homog"); + zdialog_add_widget(zd,"vbox","space","hbsize",0,"space=8"); zdialog_add_widget(zd,"vbox","vbs3","hbsize",0,"space=3|homog"); - zdialog_add_widget(zd,"vbox","vbs4","hbsize",0,"homog"); - - zdialog_add_widget(zd,"label","labww","vbs1",Bwidth,"space=3"); - zdialog_add_widget(zd,"label","lablap","vbs1",ZTX("Overlap"),"space=3"); - zdialog_add_widget(zd,"spin","width","vbs2","20|1000|1|0","space=3"); - zdialog_add_widget(zd,"spin","lapww","vbs2","0|100|1|0","space=3"); - zdialog_add_widget(zd,"label","labhh","vbs3",Bheight,"space=3"); - zdialog_add_widget(zd,"label","lablap","vbs3",ZTX("Overlap"),"space=3"); - zdialog_add_widget(zd,"spin","height","vbs4","20|1000|1|0","space=3"); - zdialog_add_widget(zd,"spin","laphh","vbs4","0|100|1|0","space=3"); + zdialog_add_widget(zd,"vbox","vbs4","hbsize",0,"space=3|homog"); + zdialog_add_widget(zd,"hbox","hbs11","vbs1"); + zdialog_add_widget(zd,"label","labpatt","hbs11",ZTX("Pattern"),"space=3"); + zdialog_add_widget(zd,"label","labwidth","hbs11",Bwidth,"space=3"); + zdialog_add_widget(zd,"spin","pattww","vbs2","20|1000|1|100"); + zdialog_add_widget(zd,"label","labheight","vbs3",Bheight,"space=3"); + zdialog_add_widget(zd,"spin","patthh","vbs4","20|1000|1|100"); + + zdialog_add_widget(zd,"hbox","hbs12","vbs1"); + zdialog_add_widget(zd,"label","labover","hbs12",ZTX("Overlap"),"space=3"); + zdialog_add_widget(zd,"label","labwidth","hbs12",Bwidth,"space=3"); + zdialog_add_widget(zd,"spin","olapww","vbs2","0|1000|1|0"); + zdialog_add_widget(zd,"label","labheight","vbs3",Bheight,"space=3"); + zdialog_add_widget(zd,"spin","olaphh","vbs4","0|1000|1|0"); + + zdialog_add_widget(zd,"hbox","hbopac","dialog"); + zdialog_add_widget(zd,"label","labopac","hbopac",ZTX("Opacity"),"space=5"); + zdialog_add_widget(zd,"spin","opacity","hbopac","0|100|1|40"); + zdialog_run(zd,pattern_dialog_event,"save"); // run dialog - parallel return; } @@ -3080,78 +3093,133 @@ void pattern_match(); - GError *gerror = 0; - char *file; + GdkPixbuf *pixbuf2; + GError *gerror = 0; + char *file, *pp; - if (strEqu(event,"focus")) return 1; - if (strEqu(event,"done")) zd->zstat = 2; // from edit_setup() or f_save() + if (strEqu(event,"done")) zd->zstat = 1; // from edit_setup() or f_save() if (zd->zstat) { - if (zd->zstat == 1) { // apply - zd->zstat = 0; // keep dialog active - edit_reset(); - signal_thread(); // process - return 1; - } - - if (zd->zstat == 2) edit_done(0); // done + if (zd->zstat == 1) edit_done(0); // done else edit_cancel(0); // cancel or destroy if (pixbuf) g_object_unref(pixbuf); // free memory pixbuf = 0; + if (pattfile) free(pattfile); + pattfile = 0; return 1; } - if (strEqu(event,"choose")) // choose pattern file - { + if (strEqu(event,"browse")) // choose pattern file + { + if (! pattfile) pattfile = strdup(pattern_dirk); file = zgetfile(ZTX("choose pattern tile"),"file",pattfile); if (! file) return 1; + if (pixbuf) g_object_unref(pixbuf); pixbuf = gdk_pixbuf_new_from_file(file,&gerror); // create pixbuf image if (! pixbuf) { zmessageACK(mWin,0,"%s \n %s",file,gerror->message); // not an image file return 1; } - + if (pattfile) free(pattfile); pattfile = file; - tww = gdk_pixbuf_get_width(pixbuf); // pattern (tile) dimensions - thh = gdk_pixbuf_get_height(pixbuf); - trs = gdk_pixbuf_get_rowstride(pixbuf); // row stride - timage = gdk_pixbuf_get_pixels(pixbuf); // image data (pixels) - lapww = laphh = 0; // overlap = 0 - - zdialog_stuff(zd,"width",tww); // put pattern dimensions into dialog - zdialog_stuff(zd,"height",thh); - zdialog_stuff(zd,"lapww",lapww); - zdialog_stuff(zd,"laphh",laphh); + if (! strstr(pattfile,pattern_dirk)) + shell_quiet("cp \"%s\" \"%s\" ",pattfile,pattern_dirk); + + pattww = gdk_pixbuf_get_width(pixbuf); // pattern file dimensions + patthh = gdk_pixbuf_get_height(pixbuf); + pattrs = gdk_pixbuf_get_rowstride(pixbuf); // row stride + pixels = gdk_pixbuf_get_pixels(pixbuf); // image data (pixels) + olapww = olaphh = 0; // overlap = 0 + + pp = strrchr(pattfile,'/'); + zdialog_stuff(zd,"pattfile",pp+1); + zdialog_stuff(zd,"pattww",pattww); // put pattern dimensions into dialog + zdialog_stuff(zd,"patthh",patthh); + zdialog_stuff(zd,"olapww",olapww); + zdialog_stuff(zd,"olaphh",olaphh); + update_thread++; + } + + if (strEqu(event,"opacity")) { // pattern opacity + zdialog_fetch(zd,"opacity",opacity); + update_thread++; } - if (strEqu(event,"power")) // pattern power - zdialog_fetch(zd,"power",power); - - if (strEqu(event,"find")) // find pattern dimensions automatically - { + if (strEqu(event,"calc")) { // find pattern dimensions automatically + if (! pixbuf) return 1; pattern_match(); - zdialog_stuff(zd,"width",tww); // put pattern dimensions into dialog - zdialog_stuff(zd,"height",thh); - zdialog_stuff(zd,"lapww",lapww); - zdialog_stuff(zd,"laphh",laphh); + zdialog_stuff(zd,"pattww",pattww); // put pattern dimensions into dialog + zdialog_stuff(zd,"patthh",patthh); + zdialog_stuff(zd,"olapww",olapww); + zdialog_stuff(zd,"olaphh",olaphh); + update_thread++; } - if (strEqu(event,"width")) // pattern dimensions from user - zdialog_fetch(zd,"width",tww); + if (strEqu(event,"zoom")) + { + zdialog_fetch(zd,"zoom",zoom); // pattern magnification, 0.2 to 5x - if (strEqu(event,"height")) - zdialog_fetch(zd,"height",thh); + if (! pixbuf) return 1; + g_object_unref(pixbuf); - if (strEqu(event,"lapww")) // pattern overlaps from user - zdialog_fetch(zd,"lapww",lapww); + pixbuf = gdk_pixbuf_new_from_file(pattfile,&gerror); // refresh pixbuf at scale 1x + if (! pixbuf) { + zmessageACK(mWin,0,"%s \n %s",pattfile,gerror->message); + return 1; + } - if (strEqu(event,"laphh")) - zdialog_fetch(zd,"laphh",laphh); + pattww = gdk_pixbuf_get_width(pixbuf); // pixbuf dimensions + patthh = gdk_pixbuf_get_height(pixbuf); + + pattww = pattww * zoom; // new dimensions + patthh = patthh * zoom; + + pixbuf2 = gdk_pixbuf_scale_simple(pixbuf,pattww,patthh,BILINEAR); // rescale pixbuf + if (! pixbuf2) return 1; + + g_object_unref(pixbuf); // replace original pixbuf + pixbuf = pixbuf2; + + pattww = gdk_pixbuf_get_width(pixbuf); // new pixbuf dimensions + patthh = gdk_pixbuf_get_height(pixbuf); + pattrs = gdk_pixbuf_get_rowstride(pixbuf); // row stride + pixels = gdk_pixbuf_get_pixels(pixbuf); // image data (pixels) + olapww = olaphh = 0; // overlap = 0 + pp = strrchr(pattfile,'/'); + zdialog_stuff(zd,"pattfile",pp+1); + zdialog_stuff(zd,"pattww",pattww); // put pattern dimensions into dialog + zdialog_stuff(zd,"patthh",patthh); + zdialog_stuff(zd,"olapww",olapww); + zdialog_stuff(zd,"olaphh",olaphh); + update_thread++; + } + + if (strEqu(event,"pattww")) { // pattern dimensions from user + zdialog_fetch(zd,"pattww",pattww); + update_thread++; + } + + if (strEqu(event,"patthh")) { + zdialog_fetch(zd,"patthh",patthh); + update_thread++; + } + + if (strEqu(event,"olapww")) { // pattern overlaps from user + zdialog_fetch(zd,"olapww",olapww); + update_thread++; + } + + if (strEqu(event,"olaphh")) { + zdialog_fetch(zd,"olaphh",olaphh); + update_thread++; + } + + if (update_thread) signal_thread(); // update image return 1; } @@ -3167,8 +3235,10 @@ int diff, mindiff; uint8 *pix1, *pix2; - limx = tww / 2; - limy = thh / 2; + limx = pattww / 2; + limy = patthh / 2; + + if (limx < 21 || limy < 21) return; sx = sy = 1; // best origin found mindiff = 999999999; // best pixel difference found @@ -3180,8 +3250,8 @@ for (qy = py; qy < py + limy; qy++) // match vert. lines from (1,1) and (px,py) { - pix1 = timage + (1+qy-py) * trs + 1 * 3; // line from (1,1) - pix2 = timage + qy * trs + px * 3; // line from (qx,qy) + pix1 = pixels + (1+qy-py) * pattrs + 1 * 3; // line from (1,1) + pix2 = pixels + qy * pattrs + px * 3; // line from (qx,qy) diff += abs(pix1[0] - pix2[0]) + abs(pix1[1] - pix2[1]) + abs(pix1[2] - pix2[2]); @@ -3189,8 +3259,8 @@ for (qx = px; qx < px + limx; qx++) // match horz. lines from (1,1) and (px,py) { - pix1 = timage + 1 * trs + (1+qx-px) * 3; // line from (1,1) - pix2 = timage + py * trs + qx * 3; // line from (qx,qy) + pix1 = pixels + 1 * pattrs + (1+qx-px) * 3; // line from (1,1) + pix2 = pixels + py * pattrs + qx * 3; // line from (qx,qy) diff += abs(pix1[0] - pix2[0]) + abs(pix1[1] - pix2[1]) + abs(pix1[2] - pix2[2]); @@ -3203,10 +3273,10 @@ } } - tww = 2 * (sx - 1); // set width, height to match - thh = 2 * (sy - 1); // pattern size + pattww = 2 * (sx - 1); // set width, height to match + patthh = 2 * (sy - 1); // pattern size - lapww = laphh = 0; // set no overlaps + olapww = olaphh = 0; // set no overlaps return; } @@ -3225,14 +3295,12 @@ if (! pixbuf) continue; - if (sa_stat == 3) Fbusy_goal = sa_Npixel; // set up progress monitor - else Fbusy_goal = e3ww * e3hh; - Fbusy_done = 0; - - start_wthread(pattern_wthread,&Nval[0]); // start worker thread (1) - wait_wthreads(); // wait for completion + while (update_thread) { + update_thread = 0; + start_wthread(pattern_wthread,&Nval[0]); // start worker thread (1) + wait_wthreads(); // wait for completion + } - Fbusy_goal = Fbusy_done = 0; CEF->Fmods = 1; // image modified CEF->Fsaved = 0; // not saved @@ -3266,17 +3334,17 @@ pix3[0] = pix3[1] = pix3[2] = 0; } - Ntrows = e3hh / (thh-2*laphh) + 1; // tile rows and columns including - Ntcols = e3ww / (tww-2*lapww) + 1; // top/bottom and left/right overlaps + Ntrows = e3hh / (patthh-2*olaphh) + 1; // tile rows and columns including + Ntcols = e3ww / (pattww-2*olapww) + 1; // top/bottom and left/right overlaps for (trow = 0; trow < Ntrows; trow++) // loop tile rows, columns for (tcol = 0; tcol < Ntcols; tcol++) { - for (tpy = 0; tpy < thh; tpy++) // loop tile pixels - for (tpx = 0; tpx < tww; tpx++) + for (tpy = 0; tpy < patthh; tpy++) // loop tile pixels + for (tpx = 0; tpx < pattww; tpx++) { - mpy = trow * (thh-2*laphh) + tpy; // corresponding image pixel - mpx = tcol * (tww-2*lapww) + tpx; + mpy = trow * (patthh-2*olaphh) + tpy; // corresponding image pixel + mpx = tcol * (pattww-2*olapww) + tpx; if (mpy >= e3hh || mpx >= e3ww) continue; ii = mpy * e3ww + mpx; // count tiles overlapping ++tmap[ii]; // this image pixel @@ -3286,18 +3354,18 @@ for (trow = 0; trow < Ntrows; trow++) // loop tile rows, columns for (tcol = 0; tcol < Ntcols; tcol++) { - for (tpy = 0; tpy < thh; tpy++) // loop tile pixels - for (tpx = 0; tpx < tww; tpx++) + for (tpy = 0; tpy < patthh; tpy++) // loop tile pixels + for (tpx = 0; tpx < pattww; tpx++) { - mpy = trow * (thh-2*laphh) + tpy; // corresponding image pixel - mpx = tcol * (tww-2*lapww) + tpx; + mpy = trow * (patthh-2*olaphh) + tpy; // corresponding image pixel + mpx = tcol * (pattww-2*olapww) + tpx; if (mpy >= e3hh || mpx >= e3ww) continue; ii = mpy * e3ww + mpx; - pixt = timage + tpy * trs + tpx * 3; // input tile pixel + pixt = pixels + tpy * pattrs + tpx * 3; // input tile pixel pix3 = PXMpix(E3pxm,mpx,mpy); // output image pixel - pix3[0] += (0.01 * power / tmap[ii]) * pixt[0]; // add tile image pixel, reduced - pix3[1] += (0.01 * power / tmap[ii]) * pixt[1]; // for count of overlapping tiles - pix3[2] += (0.01 * power / tmap[ii]) * pixt[2]; + pix3[0] += (0.01 * opacity / tmap[ii]) * pixt[0]; // add tile image pixel, reduced + pix3[1] += (0.01 * opacity / tmap[ii]) * pixt[1]; // for count of overlapping tiles + pix3[2] += (0.01 * opacity / tmap[ii]) * pixt[2]; } } @@ -3306,9 +3374,9 @@ { pix1 = PXMpix(E1pxm,mpx,mpy); // input image pixel pix3 = PXMpix(E3pxm,mpx,mpy); // output image pixel - pix3[0] += (1.0 - 0.01 * power) * pix1[0]; // add input pixel to output, - pix3[1] += (1.0 - 0.01 * power) * pix1[1]; // part not taken by tiles - pix3[2] += (1.0 - 0.01 * power) * pix1[2]; + pix3[0] += (1.0 - 0.01 * opacity) * pix1[0]; // add input pixel to output, + pix3[1] += (1.0 - 0.01 * opacity) * pix1[1]; // part not taken by tiles + pix3[2] += (1.0 - 0.01 * opacity) * pix1[2]; } if (sa_stat == 3) // select area active diff -Nru fotoxx-14.03/f.file.cc fotoxx-14.04/f.file.cc --- fotoxx-14.03/f.file.cc 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/f.file.cc 2014-04-01 06:09:32.000000000 +0000 @@ -290,7 +290,7 @@ mouse = gdk_device_manager_get_client_pointer(manager); gdk_device_get_position(mouse,&screen,&mx,&my); - poptext_mouse(ZTX("no more images"),mouse,50,0,0,3); + poptext_window(ZTX("no more images"),MWIN,200,200,0,3); return; } @@ -949,15 +949,15 @@ strncpy0(rename_prev,rename_new,199); // save new name to previous name - load_filemeta(newfile); // add new file to search index - update_search_index(newfile); + load_filemeta(newfile); // add new file to image index + update_image_index(newfile); if (navi::gallerytype == 1) gallery(curr_file,"init"); // update curr. gallery list v.14.03 set_mwin_title(); // update window title posn, count add_recent_file(newfile); // first in recent files list free(newfile); - delete_search_index(rename_file); // delete old file in search index + delete_image_index(rename_file); // delete old file in image index Nth = gallery_position(rename_file,0); // find in gallery list if (Nth >= 0) gallery(0,"delete",Nth); // delete from gallery list @@ -1290,8 +1290,8 @@ return 0; } - load_filemeta(newfile); // update search index for new file - update_search_index(newfile); + load_filemeta(newfile); // update image index for new file + update_image_index(newfile); free(newfile); if (copymove_Fdelete) { @@ -1305,7 +1305,7 @@ return 0; } - delete_search_index(copymove_file); // delete old file in search index + delete_image_index(copymove_file); // delete old file in image index Nth = gallery_position(copymove_file,0); // find in gallery list if (Nth >= 0) gallery(0,"delete",Nth); // delete from gallery list } @@ -1410,7 +1410,7 @@ goto KILL; } - delete_search_index(delete_file); // delete old file in search index + delete_image_index(delete_file); // delete old file in image index Nth = gallery_position(delete_file,0); // find in gallery list if (Nth >= 0) gallery(0,"delete",Nth); // delete from gallery list @@ -1595,7 +1595,7 @@ } } - delete_search_index(trash_file); // delete file in search index + delete_image_index(trash_file); // delete file in image index Nth = gallery_position(trash_file,0); // find in gallery list if (Nth >= 0) gallery(0,"delete",Nth); // delete from gallery list @@ -2341,8 +2341,8 @@ return; } - load_filemeta(tiffile); // update search index - update_search_index(tiffile); + load_filemeta(tiffile); // update image index + update_image_index(tiffile); f_open(tiffile); // open tiff file if present free(tiffile); @@ -2354,7 +2354,7 @@ // save current image to specified disk file (same or new). // set f_save_file, f_save_type, f_save_bpc, f_save_size. -// update search index file. +// update image index file. // returns 0 if OK, else +N. // If Fack is true, failure will cause a popup ACK dialog. @@ -2492,8 +2492,8 @@ for (ii = 0; ii <= URS_pos; ii++) // prior edits are saved v.13.08 URS_saved[ii] = 1; - load_filemeta(outfile); // update search index rec. v.13.04 - update_search_index(outfile); + load_filemeta(outfile); // update image index rec. v.13.04 + update_image_index(outfile); thumbfile = image_thumbfile(outfile); // update thumbnail file if (thumbfile) free(thumbfile); @@ -3812,9 +3812,11 @@ int fontsize = 9; // font size for text in gallery window int xrows, xcols; // gallery window thumbnail rows, cols int margin = 5; // cell margin from left and top edge + int texthh; int genthumbs = 0; // count newly generated thumbnails int maxscroll; // max. scroll position int topfileposn = 0; // scroll-to file position (Nth) + int Fslowscroll = 0; // gallery slow scroll-down engaged // private functions int gallery_paint(GtkWidget *, cairo_t *); // gallery window paint function @@ -3881,7 +3883,7 @@ using namespace navi; zthreadcrash(); // thread usage not allowed - + if (strstr("init initF",action)) { // generate new gallery file list gallerypainted = 0; // from directory/file image_navigate(filez,action); @@ -3926,7 +3928,7 @@ int row1, row2, ftyp; int ww, hh, scrollp; int drwingW, drwingH; - int thumx, thumy, texthh; + int thumx, thumy; char *pp, *fname, p0; char text[200], fdate[16], pdate[16], size[16]; @@ -3937,8 +3939,6 @@ gallery(curr_dirk,"init"); } - poptext_killnow(); // kill possible popup message v.14.01 - set_gwin_title(); // main window title = gallery name gtk_entry_set_text(GTK_ENTRY(gPath),galleryname); // set current directory label @@ -3991,11 +3991,11 @@ } topfileposn = -1; // keep scroll position } - + cairo_clip_extents(cr,&x1,&y1,&x2,&y2); // window region to paint row1 = y1 / thumbH; row2 = y2 / thumbH; - + for (row = row1; row <= row2; row++) // draw file thumbnails { for (col = 0; col < xcols; col++) // draw all columns in row @@ -4075,7 +4075,7 @@ int row1, row2; int ww, hh, scrollp; int drwingW, drwingH; - int thumx, thumy, textww, texthh; + int thumx, thumy, textww; char p0; if (thumbsize < 128) thumbsize = 128; @@ -4202,9 +4202,11 @@ { using namespace navi; - int ii, scrollp, scroll1, scroll2; - int step = thumbH / 8; // row-scroll step size - char *file; + int ii, scrollp, scroll1, scroll2; + int step = thumbH / 8; // row-scroll step size + char *file; + + if (strNeq(menu,ZTX("Scroll"))) Fslowscroll = 0; // v.14.04 if (strEqu(menu,ZTX("Sync.G"))) { // gallery <-- directory of curr. file if (! curr_file) return; @@ -4285,6 +4287,24 @@ } return; } + + if (strEqu(menu,ZTX("Scroll"))) { // start/stop slow scroll down v.14.04 + Fslowscroll = 1 - Fslowscroll; + while (Fslowscroll) { + scroll1 = (scrollp+thumbH/3) / thumbH * thumbH; + scroll2 = scroll1 + thumbH; + if (scroll2 > maxscroll) scroll2 = maxscroll; + for (scrollp = scroll1; scrollp <= scroll2; scrollp++) { + gtk_adjustment_set_value(gSadj,scrollp); + for (ii = 0; ii < 4; ii++) { + zsleep(0.001); + zmainloop(); + } + } + if (scrollp >= maxscroll) break; + } + return; + } if (strEqu(menu,ZTX("First"))) scrollp = 0; // jump to page if (strEqu(menu,ZTX("Last"))) scrollp = maxscroll; @@ -4313,6 +4333,8 @@ char *pp, directory[500]; cchar *ppc; + Fslowscroll = 0; + if (gallerytype > 1) return; // not a directory gallery ppc = gtk_entry_get_text(GTK_ENTRY(widget)); // current directory @@ -4339,6 +4361,8 @@ zdialog *zd; char dirk[200], *pp; + Fslowscroll = 0; + zd = zdialog_new(ZTX("Choose image directory"),mWin,null); // popup dialog with top image directories zdialog_add_widget(zd,"combo","top","dialog"); for (int ii = 0; ii < Ntopdirks; ii++) // insert all top image directories @@ -4403,6 +4427,8 @@ int ii, contx = 0, count = 0; zdialog *zd; + Fslowscroll = 0; + while ((buff = command_output(contx,findcomm,collections_dirk))) // find all collection files { if (count > 99) { @@ -4472,6 +4498,8 @@ zdialog *zd; int nn; + Fslowscroll = 0; + zd = zdialog_new(ZTX("Gallery Sort"),mWin,Bapply,null); // user dialog zdialog_add_widget(zd,"hbox","hb1","dialog"); zdialog_add_widget(zd,"label","space","hb1",0,"space=2"); @@ -4519,31 +4547,18 @@ { using namespace navi; - GdkDevice *mouse; GdkEventButton *eventB; + GdkPixbuf *pxbT; int evtype, mousex, mousey, mousebutt; - int row, col, nrows, dx, dy; - int Nth, poswidth, ftyp, err; - char *filez, *fname; + int row, col, nrows, tww, thh; + int Nth, poswidth, posheight, err; + char *filez; struct stat statb; - static int mbusy = 0; - static char metadata[1000]; - - cchar *keys[7] = { exif_date_key, exif_size_key, iptc_keywords_key, - exif_comment_key, iptc_caption_key, - exif_city_key, exif_country_key }; - char **data; - + if (! nfiles) return; // empty gallery if (! gallerypainted) return; // not initialized v.13.09 - + evtype = event->type; - mouse = gdk_event_get_device(event); - - poptext_mouse(0,mouse,0,0,0,0); // cancel prior popup - - if (evtype == GDK_LEAVE_NOTIFY) return; // can happen before window drawn v.13.01 - mousex = int(((GdkEventMotion *) event)->x); mousey = int(((GdkEventMotion *) event)->y); mousebutt = ((GdkEventButton *) event)->button; @@ -4552,7 +4567,9 @@ row = (mousey - margin) / thumbH; // find selected row, col col = (mousex - margin) / thumbW; poswidth = (mousex - margin) - thumbW * col; // mouse position within thumbnail v.13.07 - poswidth = 100 * poswidth / thumbW; // normalize 0-100 = left to right edge + poswidth = 100 * poswidth / thumbsize; // normalize 0-100 = left to right edge + posheight = (mousey - texthh - margin) - thumbH * row; + posheight = 100 * posheight / thumbsize; // 0-100 = top to bottom edge v.14.04 if (! xcols) return; // v.13.01 nrows = 1 + (nfiles-1) / xcols; // total thumbnail rows, 1 or more @@ -4570,52 +4587,10 @@ return; } - if (evtype == GDK_MOTION_NOTIFY) // popup mini metadata report v.13.01 - { - if (mbusy) return; // discard excess motion events - mbusy++; - zmainloop(); - mbusy = 0; - - if (zfuncs::zdialog_busy) return; // no popup if dialog busy v.14.02 - - ftyp = image_file_type(filez); - if (ftyp != 2 && ftyp != 3) { // image or RAW file v.13.02 - free(filez); - return; - } - - fname = strrchr(filez,'/'); // base name only - fname++; - - data = exif_get(filez,keys,7); // get the metadata - if (! data) { - free(filez); - return; - } - - if (data[0] && strlen(data[0]) > 10) data[0][10] = 0; // truncate date/time to yyyy:mm:dd - if (data[3] && strlen(data[3]) > 50) data[3][50] = 0; // truncate caption and comment to 50 char. - if (data[4] && strlen(data[4]) > 50) data[4][50] = 0; - - snprintf(metadata,999, // make text for popup window - " %s \n Date: %s \n Size: %s \n Tags: %s \n" - " Comment: %s \n Caption: %s \n City: %s %s ", - fname,data[0],data[1],data[2],data[3],data[4],data[5],data[6]); - - for (int ii = 0; ii < 7; ii++) // free data - if (data[ii]) free(data[ii]); - free(filez); - - dx = 0.8 * thumbW; // position for popup - if (col > 0 && col == xcols-1) dx = -thumbW -100; // v.14.01 - dy = -20; - poptext_mouse(metadata,mouse,dx,dy,1,4); // popup metadata report v.13.12 - return; - } - if (evtype == GDK_BUTTON_RELEASE) // use release not press v.14.01 { + Fslowscroll = 0; + if (S_ISDIR(statb.st_mode)) { // if directory, go there gallery(filez,"init"); gallery(0,"paint",0); // paint new gallery v.13.03 @@ -4626,7 +4601,21 @@ if (clicked_file) free(clicked_file); // save clicked file and gallery position clicked_file = filez; // v.13.07 clicked_posn = Nth; - clicked_width = poswidth; + clicked_width = poswidth; // normalized 0-100 + clicked_height = posheight; + + pxbT = image_thumbnail(filez,thumbsize); // get thumbnail image + if (pxbT) { + tww = gdk_pixbuf_get_width(pxbT); // thumbnail width and height + thh = gdk_pixbuf_get_height(pxbT); + g_object_unref(pxbT); + clicked_width = poswidth * thumbsize / tww; // clicked position is relative v.14.04 + clicked_height = posheight * thumbsize / thh; // to thumbnail dimensions + if (clicked_width < 0) clicked_width = 0; + if (clicked_width > 100) clicked_width = 100; + if (clicked_height < 0) clicked_height = 0; + if (clicked_height > 100) clicked_height = 100; + } eventB = (GdkEventButton *) event; // set KB key status v.13.09 KBcontrolkey = KBshiftkey = KBaltkey = 0; @@ -4637,6 +4626,7 @@ if (mousebutt == 1) { // left click if (zd_gallery_getfiles) gallery_getfiles_Lclick_func(Nth); // send to gallery_getfiles() else if (zd_edit_bookmarks) bookmarks_Lclick_func(Nth); // send to bookmarks editor v.13.03 + else if (zd_ss_imageprefs) slideshow_Lclick_func(Nth); // send to slide show editor v.14.04 else gallery_Lclick_func(Nth); // open the file } @@ -4662,6 +4652,8 @@ KBkey = event->keyval; + Fslowscroll = 0; + if (KBkey == GDK_KEY_plus) menufuncx(win,ZTX("Zoom+")); // +/- = bigger/smaller thumbnails if (KBkey == GDK_KEY_equal) menufuncx(win,ZTX("Zoom+")); if (KBkey == GDK_KEY_minus) menufuncx(win,ZTX("Zoom-")); diff -Nru fotoxx-14.03/f.menus.cc fotoxx-14.04/f.menus.cc --- fotoxx-14.03/f.menus.cc 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/f.menus.cc 2014-04-01 06:09:32.000000000 +0000 @@ -27,108 +27,73 @@ GtkWidget *popmenu_main, *popmenu_thumb, *popmenu_coll_thumb, *popmenu_raw; -void build_menus() // v.13.01 +void build_menus() // v.14.04 vertical menu/toolbar only { - // build the main window menus, either classic (at the top of the window) - // or vertical on the left side of the window. + // build the main window menus, vertical on the left side of the window. GtkWidget *mFile, *mTools, *mMeta, *mArea; GtkWidget *mImage, *mRet, *mRep, *mColor, *mBend, *mEff, *mComb; GtkWidget *mPlug, *mHelp; GtkWidget *fhbox, *fvb1, *fvb2; - GtkWidget *KBshort = (GtkWidget *) -1; // KB shortcuts not in menu or toolbar v.13.04 Vmenu *fvbm = 0; - if (strEqu(menu_style,"classic")) // classic menu and toolbar - { - fMenu = create_menubar(fVbox); // add menu bar to main window - fTbar = create_toolbar(fVbox); // add toolbar - fDwin = gtk_drawing_area_new(); // add drawing window - gtk_box_pack_start(GTK_BOX(fVbox),fDwin,1,1,0); - fSbar = create_stbar(fVbox); // add status bar - - if (strEqu(tbar_style,"icons")) // set toolbar style - gtk_toolbar_set_style(GTK_TOOLBAR(fTbar),GTK_TOOLBAR_ICONS); - else if (strEqu(tbar_style,"text")) - gtk_toolbar_set_style(GTK_TOOLBAR(fTbar),GTK_TOOLBAR_TEXT); - else gtk_toolbar_set_style(GTK_TOOLBAR(fTbar),GTK_TOOLBAR_BOTH); - - mFile = add_menubar_item(fMenu,ZTX("File"),topmenufunc); // add top menu items - mTools = add_menubar_item(fMenu,ZTX("Tools"),topmenufunc); - mMeta = add_menubar_item(fMenu,ZTX("Metadata"),topmenufunc); - mArea = add_menubar_item(fMenu,ZTX("Areas"),topmenufunc); - mImage = add_menubar_item(fMenu,ZTX("Image"),topmenufunc); - mRet = add_menubar_item(fMenu,ZTX("Retouch"),topmenufunc); - mRep = add_menubar_item(fMenu,ZTX("Repair"),topmenufunc); - mColor = add_menubar_item(fMenu,ZTX("Color"),topmenufunc); - mBend = add_menubar_item(fMenu,ZTX("Bend"),topmenufunc); - mEff = add_menubar_item(fMenu,ZTX("Effects"),topmenufunc); - mComb = add_menubar_item(fMenu,ZTX("Combine"),topmenufunc); - mPlug = add_menubar_item(fMenu,ZTX("Plugins"),topmenufunc); - mHelp = add_menubar_item(fMenu,ZTX("Help"),topmenufunc); - } + fhbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); // ____________________ + gtk_box_pack_start(GTK_BOX(fVbox),fhbox,1,1,0); // | | | + fvb1 = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); // | fvb1 | fvb2 | fhbox + fvb2 = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); // | menu | image | + gtk_box_pack_start(GTK_BOX(fhbox),fvb1,0,0,0); // |_______|____________| + gtk_box_pack_start(GTK_BOX(fhbox),fvb2,1,1,0); // |____________________| status bar + fDwin = gtk_drawing_area_new(); + gtk_box_pack_start(GTK_BOX(fvb2),fDwin,1,1,0); + fSbar = create_stbar(fVbox); + gtk_widget_set_size_request(fvb1,10,10); // compensate GTK bug + fvbm = Vmenu_new(fvb1); + fVMenu = fvb1; // global name for win_fullscreen() v.13.03 + + mFile = create_popmenu(); // add top menu items to menu vbox + mTools = create_popmenu(); + mMeta = create_popmenu(); + mArea = create_popmenu(); + mImage = create_popmenu(); + mRet = create_popmenu(); + mRep = create_popmenu(); + mColor = create_popmenu(); + mBend = create_popmenu(); + mEff = create_popmenu(); + mComb = create_popmenu(); + mHelp = create_popmenu(); + mPlug = create_popmenu(); - else // vertical menu and toolbar - { - fhbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); // ____________________ - gtk_box_pack_start(GTK_BOX(fVbox),fhbox,1,1,0); // | | | - fvb1 = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); // | fvb1 | fvb2 | fhbox - fvb2 = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); // | menu | image | - gtk_box_pack_start(GTK_BOX(fhbox),fvb1,0,0,0); // |_______|____________| - gtk_box_pack_start(GTK_BOX(fhbox),fvb2,1,1,0); // |____________________| status bar - fDwin = gtk_drawing_area_new(); - gtk_box_pack_start(GTK_BOX(fvb2),fDwin,1,1,0); - fSbar = create_stbar(fVbox); - gtk_widget_set_size_request(fvb1,10,10); // compensate GTK bug - fvbm = Vmenu_new(fvb1); - fVMenu = fvb1; // global name for win_fullscreen() v.13.03 - - mFile = create_popmenu(); // add top menu items to menu vbox - mTools = create_popmenu(); - mMeta = create_popmenu(); - mArea = create_popmenu(); - mImage = create_popmenu(); - mRet = create_popmenu(); - mRep = create_popmenu(); - mColor = create_popmenu(); - mBend = create_popmenu(); - mEff = create_popmenu(); - mComb = create_popmenu(); - mHelp = create_popmenu(); - mPlug = create_popmenu(); - fTbar = 0; // no GTK toolbar - - cchar * favorites_tip = ZTX("Favorite Functions"); - cchar * file_tip = ZTX("Open, Save, Trash, Rename, Print"); - cchar * tools_tip = ZTX("Index Files, Settings, Collections, Batch Funcs ..."); - cchar * metadata_tip = ZTX("Captions, Tags, Ratings, Geotags, Search ... "); - cchar * areas_tip = ZTX("Select image areas to edit, copy and paste"); - cchar * image_tip = ZTX("Trim/Crop, Rotate, Resize, Add Text"); - cchar * retouch_tip = ZTX("Improve brightness, contrast, color ..."); - cchar * repair_tip = ZTX("Sharpen, Clean, Red-eyes, Paint, Clone ..."); - cchar * color_tip = ZTX("White Balance, Color Profile, Color Matching"); - cchar * bend_tip = ZTX("Fix Perspective, Bend/Warp image ..."); - cchar * effects_tip = ZTX("Special Effects, Arty Transforms"); - cchar * combine_tip = ZTX("HDR, HDF, Panorama, Stack, Mashup"); - cchar * plugins_tip = ZTX("Use other image editors within Fotoxx"); - cchar * help_tip = ZTX("Quick Start, User Guide, Recent Changes ..."); - - Vmenu_add(fvbm,0, "favorites.png", 32, 32, favorites_tip, m_favorites, 0 ); - Vmenu_add(fvbm,ZTX("File"), 0, 0, 0, file_tip, (mtFunc *) popup_menu, (cchar *) mFile); - Vmenu_add(fvbm,ZTX("Tools"), 0, 0, 0, tools_tip, (mtFunc *) popup_menu, (cchar *) mTools); - Vmenu_add(fvbm,ZTX("Metadata"), 0, 0, 0, metadata_tip, (mtFunc *) popup_menu, (cchar *) mMeta); - Vmenu_add(fvbm,ZTX("Areas"), 0, 0, 0, areas_tip, (mtFunc *) popup_menu, (cchar *) mArea); - Vmenu_add(fvbm,ZTX("Image"), 0, 0, 0, image_tip, (mtFunc *) popup_menu, (cchar *) mImage); - Vmenu_add(fvbm,ZTX("Retouch"), 0, 0, 0, retouch_tip, (mtFunc *) popup_menu, (cchar *) mRet); - Vmenu_add(fvbm,ZTX("Repair"), 0, 0, 0, repair_tip, (mtFunc *) popup_menu, (cchar *) mRep); - Vmenu_add(fvbm,ZTX("Color"), 0, 0, 0, color_tip, (mtFunc *) popup_menu, (cchar *) mColor); - Vmenu_add(fvbm,ZTX("Bend"), 0, 0, 0, bend_tip, (mtFunc *) popup_menu, (cchar *) mBend); - Vmenu_add(fvbm,ZTX("Effects"), 0, 0, 0, effects_tip, (mtFunc *) popup_menu, (cchar *) mEff); - Vmenu_add(fvbm,ZTX("Combine"), 0, 0, 0, combine_tip, (mtFunc *) popup_menu, (cchar *) mComb); - Vmenu_add(fvbm,ZTX("Plugins"), 0, 0, 0, plugins_tip, (mtFunc *) popup_menu, (cchar *) mPlug); - Vmenu_add(fvbm,ZTX("Help"), 0, 0, 0, help_tip, (mtFunc *) popup_menu, (cchar *) mHelp); - Vmenu_add(fvbm," ---- ", 0, 0, 0, 0, 0, 0); - } + cchar * favorites_tip = ZTX("Favorite Functions"); + cchar * file_tip = ZTX("Open, Save, Trash, Rename, Print"); + cchar * tools_tip = ZTX("Index Files, Settings, Collections, Batch Funcs ..."); + cchar * metadata_tip = ZTX("Captions, Tags, Ratings, Geotags, Search ... "); + cchar * areas_tip = ZTX("Select image areas to edit, copy and paste"); + cchar * image_tip = ZTX("Trim/Crop, Rotate, Resize, Add Text"); + cchar * retouch_tip = ZTX("Improve brightness, contrast, color ..."); + cchar * repair_tip = ZTX("Sharpen, Clean, Red-eyes, Paint, Clone ..."); + cchar * color_tip = ZTX("White Balance, Color Profile, Color Matching"); + cchar * bend_tip = ZTX("Fix Perspective, Bend/Warp image ..."); + cchar * effects_tip = ZTX("Special Effects, Arty Transforms"); + cchar * combine_tip = ZTX("HDR, HDF, Panorama, Stack, Mashup"); + cchar * plugins_tip = ZTX("Use other image editors within Fotoxx"); + cchar * help_tip = ZTX("Quick Start, User Guide, Recent Changes ..."); + + Vmenu_add(fvbm,0, "favorites.png", 32, 32, favorites_tip, m_favorites, 0 ); + Vmenu_add(fvbm,ZTX("File"), 0, 0, 0, file_tip, (cbFunc *) popup_menu, (cchar *) mFile); + Vmenu_add(fvbm,ZTX("Tools"), 0, 0, 0, tools_tip, (cbFunc *) popup_menu, (cchar *) mTools); + Vmenu_add(fvbm,ZTX("Metadata"), 0, 0, 0, metadata_tip, (cbFunc *) popup_menu, (cchar *) mMeta); + Vmenu_add(fvbm,ZTX("Areas"), 0, 0, 0, areas_tip, (cbFunc *) popup_menu, (cchar *) mArea); + Vmenu_add(fvbm,ZTX("Image"), 0, 0, 0, image_tip, (cbFunc *) popup_menu, (cchar *) mImage); + Vmenu_add(fvbm,ZTX("Retouch"), 0, 0, 0, retouch_tip, (cbFunc *) popup_menu, (cchar *) mRet); + Vmenu_add(fvbm,ZTX("Repair"), 0, 0, 0, repair_tip, (cbFunc *) popup_menu, (cchar *) mRep); + Vmenu_add(fvbm,ZTX("Color"), 0, 0, 0, color_tip, (cbFunc *) popup_menu, (cchar *) mColor); + Vmenu_add(fvbm,ZTX("Bend"), 0, 0, 0, bend_tip, (cbFunc *) popup_menu, (cchar *) mBend); + Vmenu_add(fvbm,ZTX("Effects"), 0, 0, 0, effects_tip, (cbFunc *) popup_menu, (cchar *) mEff); + Vmenu_add(fvbm,ZTX("Combine"), 0, 0, 0, combine_tip, (cbFunc *) popup_menu, (cchar *) mComb); + Vmenu_add(fvbm,ZTX("Plugins"), 0, 0, 0, plugins_tip, (cbFunc *) popup_menu, (cchar *) mPlug); + Vmenu_add(fvbm,ZTX("Help"), 0, 0, 0, help_tip, (cbFunc *) popup_menu, (cchar *) mHelp); + Vmenu_add(fvbm," ---- ", 0, 0, 0, 0, 0, 0); // build a table of menu and toolbar items @@ -158,55 +123,54 @@ MENUENT(mFile, ZTX("Print Image"), 0, ZTX("Print the current image"), m_print, 0 ); MENUENT(mFile, ZTX("Quit Fotoxx"), 0, ZTX("Quit Fotoxx"), m_quit, 0 ); - MENUENT(mTools, ZTX("Index Image Files"), 0, ZTX("Index new files and make thumbnails"), m_index, 0 ); - MENUENT(mTools, ZTX("User Settings"), 0, ZTX("Change user preferences"), m_settings, 0 ); - MENUENT(mTools, ZTX("Keyboard Shortcuts"), 0, ZTX("Change Keyboard Shortcut Keys"), m_KBshortcuts, 0 ); - MENUENT(mTools, ZTX("Manage Collections"), 0, ZTX("Organize images into collections"), m_manage_coll, 0 ); - MENUENT(mTools, ZTX("Move Collections"), 0, ZTX("Convert for a new top directory"), m_move_coll, 0 ); - MENUENT(mTools, ZTX("Slide Show"), 0, ZTX("Start a slide show"), m_slideshow, 0 ); - MENUENT(mTools, ZTX("Batch Convert"), 0, ZTX("Rename/convert/resize/move multiple files"), m_batch_convert, 0 ); - MENUENT(mTools, ZTX("Batch Convert RAW"), 0, ZTX("Convert multiple camera RAW files"), m_batch_conv_raw, 0 ); - MENUENT(mTools, ZTX("Brightness Histogram"), 0, ZTX("Show a brightness distribution graph"), m_histogram, 0 ); - MENUENT(mTools, ZTX("Grid Lines"), 0, ZTX("Show or revise grid lines"), m_gridlines, 0 ); - MENUENT(mTools, ZTX("Show RGB"), 0, ZTX("Show RGB colors at mouse click"), m_show_RGB, 0 ); - MENUENT(mTools, ZTX("Dark/Bright Pixels"), 0, ZTX("Highlight darkest and brightest pixels"), m_darkbrite, 0 ); - MENUENT(mTools, ZTX("Monitor Color"), 0, ZTX("Chart to adjust monitor color"), m_moncheck, 0 ); - MENUENT(mTools, ZTX("Monitor Gamma"), 0, ZTX("Chart to adjust monitor gamma"), m_mongamma, 0 ); - MENUENT(mTools, ZTX("Change Language"), 0, ZTX("Change the GUI language"), m_lang, 0 ); - MENUENT(mTools, ZTX("Missing Translations"), 0, ZTX("Report missing translations"), m_untranslated, 0 ); -///MENUENT(mTools, ZTX("Edit Translations"), 0, ZTX("Edit translations while using Fotoxx"), m_translate, 0 ); - MENUENT(mTools, ZTX("Menu and Launcher"), 0, ZTX("Create a Gnome menu and launcher"), m_menu_launcher, 0 ); - MENUENT(mTools, ZTX("Burn Images to CD/DVD"), 0, ZTX("Burn selected image files to CD or DVD"), m_burn, 0 ); - MENUENT(mTools, ZTX("Resources"), 0, ZTX("Memory and CPU (to terminal/logfile)"), m_resources, 0 ); -///MENUENT(mTools, ZTX("zappcrash test"), 0, "deliberate zappcrash", m_zappcrash, 0 ); - - MENUENT(mMeta, ZTX("Edit Metadata"), 0, ZTX("Edit image tags/caption/rating ..."), m_edit_metadata, 0 ); - MENUENT(mMeta, ZTX("Batch Add/Remove Tags"), 0, ZTX("Add/remove tags for multiple images"), m_batchTags, 0 ); - MENUENT(mMeta, ZTX("View Metadata (short)"), 0, ZTX("List a few key metadata items"), m_meta_view_short, 0 ); - MENUENT(mMeta, ZTX("View Metadata (long)"), 0, ZTX("List all metadata items"), m_meta_view_long, 0 ); - MENUENT(mMeta, ZTX("View Captions and Comments"), 0, ZTX("List captions and comments only"), m_meta_view_capcomm, 0 ); - MENUENT(mMeta, ZTX("Edit Any Metadata"), 0, ZTX("Edit any image metadata"), m_meta_edit_any, 0 ); - MENUENT(mMeta, ZTX("Delete Metadata"), 0, ZTX("Remove all metadata from an image"), m_meta_delete, 0 ); - MENUENT(mMeta, ZTX("Show Captions on Image"), 0, ZTX("(Toggle) show captions and comments"), m_captions, 0 ); - MENUENT(mMeta, ZTX("Download Geolocations"), 0, ZTX("Download initial geolocation database"), m_download_geolocs, 0 ); -///MENUENT(mMeta, ZTX("World Map Test"), 0, ZTX("Test World Map coordinate transforms"), m_worldmap_test, 0 ); - MENUENT(mMeta, ZTX("Edit Geotags"), 0, ZTX("Edit image location and geotags"), m_edit_geotags, 0 ); - MENUENT(mMeta, ZTX("Batch Add Geotags"), 0, ZTX("Add geotags to multiple images"), m_batch_add_geotags, 0 ); - MENUENT(mMeta, ZTX("Images by Location/Date"), 0, ZTX("Find all images for a location [date]"), m_geotag_groups, 0 ); - MENUENT(mMeta, ZTX("Images by Map Location"), 0, ZTX("Find images by clicking a world map"), m_geotag_worldmap, 0 ); - MENUENT(mMeta, ZTX("Search Images"), 0, ZTX("Find images meeting select criteria"), m_search_images, 0 ); - - MENUENT(mArea, ZTX("Select"), 0, ZTX("Select object or area for editing"), m_select, 0 ); - MENUENT(mArea, ZTX("Show"), 0, ZTX("Show (outline) existing area"), m_select_show, 0 ); - MENUENT(mArea, ZTX("Hide"), 0, ZTX("Hide existing area"), m_select_hide, 0 ); - MENUENT(mArea, ZTX("Enable"), 0, ZTX("Enable area for editing"), m_select_enable, 0 ); - MENUENT(mArea, ZTX("Disable"), 0, ZTX("Disable area for editing"), m_select_disable, 0 ); - MENUENT(mArea, ZTX("Invert"), 0, ZTX("Reverse existing area"), m_select_invert, 0 ); - MENUENT(mArea, ZTX("Unselect"), 0, ZTX("Erase existing area"), m_select_unselect, 0 ); - MENUENT(mArea, ZTX("Copy"), 0, ZTX("Copy an area for later pasting"), m_select_copy, 0 ); - MENUENT(mArea, ZTX("Paste"), 0, ZTX("Paste an area into the current image"), m_select_paste, 0 ); - MENUENT(mArea, ZTX("Open"), 0, ZTX("Open a file with a saved area"), m_select_open, 0 ); - MENUENT(mArea, ZTX("Save"), 0, ZTX("Save an area to a file"), m_select_save, 0 ); + MENUENT(mTools, ZTX("Index Image Files"), 0, ZTX("Index new files and make thumbnails"), m_index, 0 ); + MENUENT(mTools, ZTX("User Settings"), 0, ZTX("Change user preferences"), m_settings, 0 ); + MENUENT(mTools, ZTX("Keyboard Shortcuts"), 0, ZTX("Change Keyboard Shortcut Keys"), m_KBshortcuts, 0 ); + MENUENT(mTools, ZTX("Manage Collections"), 0, ZTX("Organize images into collections"), m_manage_coll, 0 ); + MENUENT(mTools, ZTX("Move Collections"), 0, ZTX("Convert for a new top directory"), m_move_coll, 0 ); + MENUENT(mTools, ZTX("Slide Show"), 0, ZTX("Start a slide show"), m_slideshow, 0 ); + MENUENT(mTools, ZTX("Batch Convert"), 0, ZTX("Rename/convert/resize/move multiple files"), m_batch_convert, 0 ); + MENUENT(mTools, ZTX("Batch Convert RAW"), 0, ZTX("Convert multiple camera RAW files"), m_batch_conv_raw, 0 ); + MENUENT(mTools, ZTX("Brightness Distribution"), 0, ZTX("Show a brightness distribution graph"), m_brdist, 0 ); + MENUENT(mTools, ZTX("Grid Lines"), 0, ZTX("Show or revise grid lines"), m_gridlines, 0 ); + MENUENT(mTools, ZTX("Show RGB"), 0, ZTX("Show RGB colors at mouse click"), m_show_RGB, 0 ); + MENUENT(mTools, ZTX("Dark/Bright Pixels"), 0, ZTX("Highlight darkest and brightest pixels"), m_darkbrite, 0 ); + MENUENT(mTools, ZTX("Monitor Color"), 0, ZTX("Chart to adjust monitor color"), m_moncheck, 0 ); + MENUENT(mTools, ZTX("Monitor Gamma"), 0, ZTX("Chart to adjust monitor gamma"), m_mongamma, 0 ); + MENUENT(mTools, ZTX("Change Language"), 0, ZTX("Change the GUI language"), m_lang, 0 ); + MENUENT(mTools, ZTX("Missing Translations"), 0, ZTX("Report missing translations"), m_untranslated, 0 ); + MENUENT(mTools, ZTX("Menu and Launcher"), 0, ZTX("Create a Gnome menu and launcher"), m_menu_launcher, 0 ); + MENUENT(mTools, ZTX("Burn Images to CD/DVD"), 0, ZTX("Burn selected image files to CD or DVD"), m_burn, 0 ); + MENUENT(mTools, ZTX("Resources"), 0, ZTX("Memory and CPU (to terminal/logfile)"), m_resources, 0 ); +///MENUENT(mTools, ZTX("zappcrash test"), 0, "deliberate zappcrash", m_zappcrash, 0 ); + + MENUENT(mMeta, ZTX("Edit Metadata"), 0, ZTX("Edit image tags/caption/rating ..."), m_edit_metadata, 0 ); + MENUENT(mMeta, ZTX("Batch Add/Remove Tags"), 0, ZTX("Add/remove tags for multiple images"), m_batchTags, 0 ); + MENUENT(mMeta, ZTX("View Metadata (short)"), 0, ZTX("List a few key metadata items"), m_meta_view_short, 0 ); + MENUENT(mMeta, ZTX("View Metadata (long)"), 0, ZTX("List all metadata items"), m_meta_view_long, 0 ); + MENUENT(mMeta, ZTX("View Captions and Comments"), 0, ZTX("List captions and comments only"), m_meta_view_capcomm, 0 ); + MENUENT(mMeta, ZTX("Edit Any Metadata"), 0, ZTX("Edit any image metadata"), m_meta_edit_any, 0 ); + MENUENT(mMeta, ZTX("Delete Metadata"), 0, ZTX("Remove all metadata from an image"), m_meta_delete, 0 ); + MENUENT(mMeta, ZTX("Show Captions on Image"), 0, ZTX("(Toggle) show captions and comments"), m_captions, 0 ); + MENUENT(mMeta, ZTX("Download Geolocations"), 0, ZTX("Download initial geolocation database"), m_download_geolocs, 0 ); +///MENUENT(mMeta, ZTX("World Map Test"), 0, ZTX("Test World Map coordinate transforms"), m_worldmap_test, 0 ); + MENUENT(mMeta, ZTX("Edit Geotags"), 0, ZTX("Edit image location and geotags"), m_edit_geotags, 0 ); + MENUENT(mMeta, ZTX("Batch Add Geotags"), 0, ZTX("Add geotags to multiple images"), m_batch_add_geotags, 0 ); + MENUENT(mMeta, ZTX("Images by Location/Date"), 0, ZTX("Find all images for a location [date]"), m_geotag_groups, 0 ); + MENUENT(mMeta, ZTX("Images by Map Location"), 0, ZTX("Find images by clicking a world map"), m_geotag_worldmap, 0 ); + MENUENT(mMeta, ZTX("Search Images"), 0, ZTX("Find images meeting select criteria"), m_search_images, 0 ); + + MENUENT(mArea, ZTX("Select"), 0, ZTX("Select object or area for editing"), m_select, 0 ); + MENUENT(mArea, ZTX("Show"), 0, ZTX("Show (outline) existing area"), m_select_show, 0 ); + MENUENT(mArea, ZTX("Hide"), 0, ZTX("Hide existing area"), m_select_hide, 0 ); + MENUENT(mArea, ZTX("Enable"), 0, ZTX("Enable area for editing"), m_select_enable, 0 ); + MENUENT(mArea, ZTX("Disable"), 0, ZTX("Disable area for editing"), m_select_disable, 0 ); + MENUENT(mArea, ZTX("Invert"), 0, ZTX("Reverse existing area"), m_select_invert, 0 ); + MENUENT(mArea, ZTX("Unselect"), 0, ZTX("Erase existing area"), m_select_unselect, 0 ); + MENUENT(mArea, ZTX("Copy"), 0, ZTX("Copy an area for later pasting"), m_select_copy, 0 ); + MENUENT(mArea, ZTX("Paste"), 0, ZTX("Paste an area into the current image"), m_select_paste, 0 ); + MENUENT(mArea, ZTX("Open"), 0, ZTX("Open a file with a saved area"), m_select_open, 0 ); + MENUENT(mArea, ZTX("Save"), 0, ZTX("Save an area to a file"), m_select_save, 0 ); MENUENT(mImage, ZTX("Rotate 90º"), 0, ZTX("Rotate 90 degrees"), m_rotate90, 0 ); MENUENT(mImage, ZTX("Trim/Rotate"), 0, ZTX("Trim/Crop margins and/or Rotate"), m_trimrotate, 0 ); @@ -217,12 +181,11 @@ MENUENT(mRet, ZTX("Voodoo Enhance"), 0, ZTX("Fast auto enhance that may work OK"), m_voodoo, 0 ); MENUENT(mRet, ZTX("Retouch Combo"), 0, ZTX("Adjust brightness, contrast, color"), m_combo, 0 ); -///MENUENT(mRet, ZTX("Brightness/Contrast/Color"), 0, ZTX("Adjust brightness, contrast, color"), m_brightcolor, 0 ); -///MENUENT(mRet, ZTX("Gamma Curves"), 0, ZTX("Adjust contrast using a gamma curve"), m_gamma, 0 ); MENUENT(mRet, ZTX("Tone Mapping"), 0, ZTX("Add local contrast, enhance details"), m_tonemap, 0 ); MENUENT(mRet, ZTX("Brightness Distribution"), 0, ZTX("Adjust brightness distribution"), m_brightdist, 0 ); MENUENT(mRet, ZTX("Brightness Ramp"), 0, ZTX("Fix brightness uniformity across image"), m_brightramp, 0 ); MENUENT(mRet, ZTX("Paint Edits"), 0, ZTX("Paint edit function gradually with mouse"), m_paint_edits, 0 ); + MENUENT(mRet, ZTX("Leverage Edits"), 0, ZTX("Leverage edits by brightness or color"), m_lever_edits, 0 ); MENUENT(mRep, ZTX("Sharpen"), 0, ZTX("Make the image look sharper"), m_sharpen, 0 ); MENUENT(mRep, ZTX("Blur"), 0, ZTX("Make the image look fuzzy"), m_blur, 0 ); @@ -235,7 +198,6 @@ MENUENT(mRep, ZTX("Fix Color Fringes"), 0, ZTX("Reduce Chromatic Abberation"), m_chromatic, 0 ); MENUENT(mRep, ZTX("Fix Stuck Pixels"), 0, ZTX("Erase known hot and dark pixels"), m_stuckpix, 0 ); -///MENUENT(mColor, ZTX("White Balance"), 0, ZTX("Click on a white/gray area to fix color tint"), m_whitebal, 0 ); MENUENT(mColor, ZTX("Shift Colors"), 0, ZTX("Shift/convert colors into other colors"), m_shift_colors, 0 ); MENUENT(mColor, ZTX("Color Mode"), 0, ZTX("Make BW/color, negative/positive, sepia"), m_colormode, 0 ); MENUENT(mColor, ZTX("Color Profile"), 0, ZTX("Convert to another color profile"), m_colorprof, 0 ); @@ -286,19 +248,16 @@ MENUENT(mHelp, ZTX("Home Page"), 0, ZTX("Show the Fotoxx web page"), m_help, 0 ); MENUENT(mHelp, ZTX("About"), 0, ZTX("Version, license, contact, credits"), m_help, 0 ); - if (strEqu(menu_style,"classic")) - MENUENT(fTbar, ZTX("Favs"), "favorites.png", ZTX("Favorite Functions"), m_favorites, 0 ); + MENUENT(0, ZTX("Color"), "fg-color.png", ZTX("Color of area borders etc."), m_fg_color, 0 ); + MENUENT(0, ZTX("Undo"), "undo.png", ZTX("Undo one edit"), m_undo, 0 ); + MENUENT(0, ZTX("Redo"), "redo.png", ZTX("Redo one edit"), m_redo, 0 ); + MENUENT(0, ZTX("Sync.G"), "sync.G.png", ZTX("Set gallery from current image file"), navi::menufuncx, 0 ); + MENUENT(0, ZTX("Open"), "open.png", ZTX("Open a new image file"), m_open, 0 ); + MENUENT(0, ZTX("Prev"), "prev.png", ZTX("Open the previous file"), m_prev, 0 ); + MENUENT(0, ZTX("Next"), "next.png", ZTX("Open the next file"), m_next, 0 ); + MENUENT(0, ZTX("Save"), "save.png", ZTX("Save modified image file to disk"), m_file_save, 0 ); + MENUENT(0, ZTX("Trash"), "trash.png", ZTX("Move image file to Trash"), m_trash, 0 ); - MENUENT(fTbar, ZTX("Color"), "fg-color.png", ZTX("Color of area borders etc."), m_fg_color, 0 ); - MENUENT(fTbar, ZTX("Undo"), "undo.png", ZTX("Undo one edit"), m_undo, 0 ); - MENUENT(fTbar, ZTX("Redo"), "redo.png", ZTX("Redo one edit"), m_redo, 0 ); - MENUENT(fTbar, "separator", null, null, null, 0 ); - MENUENT(fTbar, ZTX("Sync.G"), "sync.G.png", ZTX("Set gallery from current image file"), navi::menufuncx, 0 ); - MENUENT(fTbar, ZTX("Open"), "open.png", ZTX("Open a new image file"), m_open, 0 ); - MENUENT(fTbar, ZTX("Prev"), "prev.png", ZTX("Open the previous file"), m_prev, 0 ); - MENUENT(fTbar, ZTX("Next"), "next.png", ZTX("Open the next file"), m_next, 0 ); - MENUENT(fTbar, ZTX("Save"), "save.png", ZTX("Save modified image file to disk"), m_file_save, 0 ); - MENUENT(fTbar, ZTX("Trash"), "trash.png", ZTX("Move image file to Trash"), m_trash, 0 ); // load plugins menu from plugins file @@ -325,87 +284,44 @@ Nplugins = ii; } - if (strEqu(menu_style,"classic")) // build classic menu and toolbar + for (me = 0; me < Nmenus; me++) { - for (me = 0; me < Nmenus; me++) - { - if (menutab[me].topmenu == KBshort) continue; // omit KB shortcut "menus" v.13.04 - if (menutab[me].topmenu == fTbar) - add_toolbar_button(fTbar, menutab[me].menu, menutab[me].desc, menutab[me].icon, menutab[me].func); - else - add_submenu_item(menutab[me].topmenu, menutab[me].menu, menutab[me].func, menutab[me].desc); - } - - for (ii = 0; ii < Nplugins; ii++) // add plugin menu items - { - char *pp = strstr(plugins[ii]," = "); - if (! pp) continue; - *pp = 0; - add_submenu_item(mPlug, plugins[ii], m_run_plugin, ZTX("Run as Fotoxx edit function")); - *pp = ' '; + if (menutab[me].topmenu) + add_popmenu_item(menutab[me].topmenu, menutab[me].menu, // submenu within top menu + menutab[me].func, menutab[me].arg, menutab[me].desc); + else { // toolbar button + if (strEqu(tbar_style,"text")) + Vmenu_add(fvbm, menutab[me].menu, 0, 0, 0, menutab[me].desc, menutab[me].func, menutab[me].arg); + else if (strEqu(tbar_style,"icons")) + Vmenu_add(fvbm, 0, menutab[me].icon, 24, 24, menutab[me].desc, menutab[me].func, menutab[me].arg); + else + Vmenu_add(fvbm, menutab[me].menu, menutab[me].icon, 24, 24, menutab[me].desc, menutab[me].func, menutab[me].arg); } } - else // build vertical menu and toolbar - { - for (me = 0; me < Nmenus; me++) - { - if (strEqu(menutab[me].menu,"separator")) continue; // separators not used - if (menutab[me].topmenu == KBshort) continue; // omit KB shortcut "menus" v.13.04 - - if (menutab[me].topmenu) - add_popmenu_item(menutab[me].topmenu, menutab[me].menu, // submenu within top menu - menutab[me].func, menutab[me].arg, menutab[me].desc); - else { // toolbar button - if (strEqu(tbar_style,"text")) - Vmenu_add(fvbm, menutab[me].menu, 0, 0, 0, menutab[me].desc, menutab[me].func, menutab[me].arg); - else if (strEqu(tbar_style,"icons")) - Vmenu_add(fvbm, 0, menutab[me].icon, 24, 24, menutab[me].desc, menutab[me].func, menutab[me].arg); - else - Vmenu_add(fvbm, menutab[me].menu, menutab[me].icon, 24, 24, menutab[me].desc, menutab[me].func, menutab[me].arg); - } - } - - for (ii = 0; ii < Nplugins; ii++) { // build plugins menu - char *pp = strstr(plugins[ii]," = "); - if (! pp) continue; - *pp = 0; - add_popmenu_item(mPlug, plugins[ii], m_run_plugin, 0, ZTX("Run as Fotoxx edit function")); - *pp = ' '; - } + for (ii = 0; ii < Nplugins; ii++) { // build plugins menu + char *pp = strstr(plugins[ii]," = "); + if (! pp) continue; + *pp = 0; + add_popmenu_item(mPlug, plugins[ii], m_run_plugin, 0, ZTX("Run as Fotoxx edit function")); + *pp = ' '; } - // build the gallery window toolbar, either classic (at the top of the window) - // or vertical on the left side of the window. + // build the gallery window toolbar, vertical on the left side of the window. GtkWidget *gTbar, *gVbox2, *ghbox; Vmenu *gvbm = 0; PangoFontDescription *pfontdesc; - if (strEqu(menu_style,"classic")) // classic toolbar - { - gTbar = create_toolbar(gVbox,24); // add toolbar and buttons - gVbox2 = gVbox; - - if (strEqu(tbar_style,"icons")) // set toolbar style - gtk_toolbar_set_style(GTK_TOOLBAR(gTbar),GTK_TOOLBAR_ICONS); - else if (strEqu(tbar_style,"text")) - gtk_toolbar_set_style(GTK_TOOLBAR(gTbar),GTK_TOOLBAR_TEXT); - else gtk_toolbar_set_style(GTK_TOOLBAR(gTbar),GTK_TOOLBAR_BOTH); - } - - else // vertical toolbar - { - ghbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); // ____________________ - gtk_box_pack_start(GTK_BOX(gVbox),ghbox,1,1,0); // | | | - gTbar = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); // | gTbar | gVbox2 | ghbox - gVbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); // | | gallery | - gtk_box_pack_start(GTK_BOX(ghbox),gTbar,0,0,0); // |_______|____________| - gtk_box_pack_start(GTK_BOX(ghbox),gVbox2,1,1,0); - gtk_widget_set_size_request(gTbar,10,10); // compensate GTK bug - gvbm = Vmenu_new(gTbar); - } + ghbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0); // ____________________ + gtk_box_pack_start(GTK_BOX(gVbox),ghbox,1,1,0); // | | | + gTbar = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); // | gTbar | gVbox2 | ghbox + gVbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); // | | gallery | + gtk_box_pack_start(GTK_BOX(ghbox),gTbar,0,0,0); // |_______|____________| + gtk_box_pack_start(GTK_BOX(ghbox),gVbox2,1,1,0); + gtk_widget_set_size_request(gTbar,10,10); // compensate GTK bug + gvbm = Vmenu_new(gTbar); gHbox = gtk_box_new(HORIZONTAL,0); // add navigation widgets gtk_box_pack_start(GTK_BOX(gVbox2),gHbox,0,0,0); // [Top] [no directory] @@ -441,19 +357,16 @@ MENUENT(gTbar, ZTX("Page↓"), "down+.png", ZTX("next page"), navi::menufuncx, 0 ); MENUENT(gTbar, ZTX("Row↑"), "up.png", ZTX("previous row"), navi::menufuncx, 0 ); MENUENT(gTbar, ZTX("Row↓"), "down.png", ZTX("next row"), navi::menufuncx, 0 ); + MENUENT(gTbar, ZTX("Scroll"), "scroll.png", ZTX("slow scroll"), navi::menufuncx, 0 ); for (me = me0; me < Nmenus; me++) { - if (strEqu(menu_style,"classic")) - add_toolbar_button(gTbar, menutab[me].menu, menutab[me].desc, menutab[me].icon, menutab[me].func); - else { - if (strEqu(tbar_style,"text")) - Vmenu_add(gvbm, menutab[me].menu, 0, 0, 0, menutab[me].desc, menutab[me].func, menutab[me].arg); - else if (strEqu(tbar_style,"icons")) - Vmenu_add(gvbm, 0, menutab[me].icon, 24, 24, menutab[me].desc, menutab[me].func, menutab[me].arg); - else - Vmenu_add(gvbm, menutab[me].menu, menutab[me].icon, 24, 24, menutab[me].desc, menutab[me].func, menutab[me].arg); - } + if (strEqu(tbar_style,"text")) + Vmenu_add(gvbm, menutab[me].menu, 0, 0, 0, menutab[me].desc, menutab[me].func, menutab[me].arg); + else if (strEqu(tbar_style,"icons")) + Vmenu_add(gvbm, 0, menutab[me].icon, 24, 24, menutab[me].desc, menutab[me].func, menutab[me].arg); + else + Vmenu_add(gvbm, menutab[me].menu, menutab[me].icon, 24, 24, menutab[me].desc, menutab[me].func, menutab[me].arg); } // Setups for right-click popup menus diff -Nru fotoxx-14.03/f.meta.cc fotoxx-14.04/f.meta.cc --- fotoxx-14.03/f.meta.cc 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/f.meta.cc 2014-04-01 06:09:32.000000000 +0000 @@ -753,7 +753,7 @@ /**************************************************************************/ // Load tags_defined file into tags_deftags[ii] => category: tag1, tag2, ... -// Read search_index recs. and add unmatched tags: => nocatg: tag1, tag2, ... +// Read image_index recs. and add unmatched tags: => nocatg: tag1, tag2, ... void load_deftags() { @@ -802,12 +802,12 @@ } nocat = ncats; // make last category "nocatg" for - ncats++; // unmatched tags in search_index recs. + ncats++; // unmatched tags in image_index recs. tags_deftags[nocat] = (char *) malloc(tagGcc); strcpy(tags_deftags[nocat],"nocatg: "); nocatcc = 8; - ftf = 1; // read all search index recs. + ftf = 1; // read all image index recs. while (true) { @@ -1215,7 +1215,7 @@ fclose(fid); } - ftf = 1; // read all search index recs. + ftf = 1; // read all image index recs. while (true) { @@ -1383,7 +1383,7 @@ } -// add metadata in memory to image file EXIF/IPTC data and search_index recs. +// add metadata in memory to image file EXIF/IPTC data and image_index recs. // update defined tags file if any changes void save_filemeta(cchar *file) @@ -1424,7 +1424,7 @@ exif_put(file,exifkeys,exifdata,10); // write EXIF - update_search_index(file); // update search index file + update_image_index(file); // update image index file if (zdexifview) meta_view(0); // live EXIF/IPTC update @@ -1433,9 +1433,9 @@ } -// update search index record (replace updated file data) +// update image index record (replace updated file data) -void update_search_index(cchar *file) // overhauled +void update_image_index(cchar *file) // overhauled { char gtags[200]; int err; @@ -1485,9 +1485,9 @@ } -// delete given image file from search index recs. +// delete given image file from image index recs. -void delete_search_index(cchar *file) +void delete_image_index(cchar *file) { put_sxrec(null,file); return; @@ -1852,7 +1852,8 @@ zdexifview = zdialog_new(ZTX("View Metadata"),mWin,Bcancel,null); zdialog_add_widget(zdexifview,"scrwin","scroll","dialog",0,"expand"); zdialog_add_widget(zdexifview,"text","exifdata","scroll",0,"expand|wrap"); - zdialog_resize(zdexifview,500,400); + if (reportype == 1) zdialog_resize(zdexifview,400,400); + else zdialog_resize(zdexifview,600,600); zdialog_run(zdexifview,meta_view_dialog_event); } @@ -1864,7 +1865,7 @@ { gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(widget),GTK_WRAP_NONE); // disable text wrap - snprintf(command,ccc,"exiftool -s -d \"%s\" -common " // exiftool command v.13.08 + snprintf(command,ccc,"exiftool -S -d \"%s\" -common " // exiftool command v.13.08 "-%s -%s -%s -%s -%s -%s -%s -%s -%s -%s \"%s\" ", DTformat, iptc_keywords_key, iptc_rating_key, exif_editlog_key, exif_comment_key, iptc_caption_key, exif_focal_length_key, exif_city_key, exif_country_key, @@ -2011,8 +2012,8 @@ pp2[0] = keydata; err = exif_put(curr_file,pp1,pp2,1); if (err) zmessageACK(mWin,0,"error: %s",strerror(err)); - load_filemeta(curr_file); // update search index in case - update_search_index(curr_file); // searchable metadata item updated + load_filemeta(curr_file); // update image index in case + update_image_index(curr_file); // searchable metadata item updated if (zdexifview) meta_view(0); // update exif view if active } @@ -2080,8 +2081,8 @@ shell_ack("exiftool -m -q -overwrite_original -%s= \"%s\"",keyname,curr_file); else return 1; - load_filemeta(curr_file); // update search index in case a - update_search_index(curr_file); // searchable metadata deleted + load_filemeta(curr_file); // update image index in case a + update_image_index(curr_file); // searchable metadata deleted gallery_monitor("start"); @@ -2275,40 +2276,33 @@ { int init_glocs_comp(cchar *rec1, cchar *rec2); - char geotagsfile[200], mapfile[200]; - char buff[200], city[100], country[100]; - char latitude[20], longitude[20]; - char *filename, *gtags, *pp; - float flati, flongi; - int ftf, cc, ii, jj; - int err, found, keep, Ngeolocs2, Ngeotags; - int mx, my, px, py; - uint8 *pixel; - FILE *fid; - sxrec_t sxrec; + char geotagsfile[200]; + char buff[200], city[100], country[100]; + char latitude[20], longitude[20]; + char *filename, *gtags, *pp; + float flati, flongi; + int err, ftf, cc, ii, jj; + int found, keep, Ngeolocs2, Ngeotags; + int mx, my, px, py; + uint8 *pixel; + FILE *fid; + sxrec_t sxrec; + struct stat statbuf; if (Ngeolocs) return Ngeolocs; // already done + if (checkpend("lock")) return 0; - gtk_window_set_title(MWIN,ZTX("Location from World Map")); // window title - - paint_busy(ZTX("Loading world map")); - Ffuncbusy++; // busy message v.13.10 - Fblankwindow = 1; // blank window while working - mwpaintnow(); - zmainloop(); - - snprintf(mapfile,200,"%s/world-map-mercator.jpg",geotags_dirk); // load the huge world map image - mwpW.fpxb = PXB_load(mapfile,0); - - if (! mwpW.fpxb || mwpW.fpxb->ww != 13500) { // check validity + sprintf(geotagsfile,"%s/cities-geotags",geotags_dirk); // read cities-geotags file + err = stat(geotagsfile,&statbuf); + if (err) { zmessageACK(mWin,0,ZTX("please download geolocations data")); - mwpW.fpxb = 0; - goto finish; + return 0; } + Ffuncbusy++; + Fmenulock = 1; paint_busy(ZTX("Loading geolocations")); - zmainloop(); - + cc = maxgeotags * sizeof(geolocs_t); // get memory for geotag locations DB geolocs = (geolocs_t *) malloc(cc); @@ -2319,7 +2313,9 @@ ftf = 1; while (true) { - err = read_sxrec_seq(sxrec,ftf); // read search index recs. + zmainloop(100); + + err = read_sxrec_seq(sxrec,ftf); // read image index recs. if (err) break; filename = sxrec.file; @@ -2355,7 +2351,7 @@ strcpy(latitude,"null"); // missing (1) or bad (2) data strcpy(longitude,"null"); if (err == 2) { // exclude invalid v.13.01 - printz("*** bad geotag in search_index: %s \n",filename); + printz("*** bad geotag in image_index: %s \n",filename); found = 0; } } @@ -2495,7 +2491,15 @@ fclose(fid); printz("total geolocations %d with images: %d \n",Ngeolocs,Ngeolocs2); + + // load and initialize the world map image + mwpW.fpxb = PXB_load(worldmap_file,0); // load the huge world map image + if (! mwpW.fpxb || mwpW.fpxb->ww != 13500) { + Ngeolocs = 0; + goto finish; + } + for (ii = 0; ii < Ngeolocs2; ii++) // paint red dots on world map { // where images are present flati = geolocs[ii].flati; @@ -2512,8 +2516,8 @@ } finish: - Fblankwindow = 0; - Ffuncbusy--; + Ffuncbusy--; + Fmenulock = 0; return Ngeolocs; } @@ -2615,7 +2619,7 @@ /**************************************************************************/ -// Save geotags in image file EXIF and search index file. +// Save geotags in image file EXIF and image index file. // location[2] = city and country // coord[2] = latitude and longitude // return value: 0 OK, no geotag revision (incomplete data) @@ -2862,7 +2866,7 @@ int maph = 8827; // map height less margins int mape = 6217; // equator less margins double px, py; - double R, rad = 180.0 / pi; + double R, rad = 180.0 / PI; } @@ -2904,7 +2908,7 @@ flong = 180.0 * px; // longitude -180 to +180 py = fabs(mape - my); // displacement from equator - R = 2.0 * pi * py / mapw; + R = 2.0 * PI * py / mapw; R = exp(R); R = 2.0 * atan(R) * rad; flat = R - 90.0; // latitude 0 to +90 @@ -2934,8 +2938,8 @@ if (flat >= 0) flat -= worldmap_fudgelat(flat); // subtract map correction else flat += worldmap_fudgelat(-flat); - flat = 0.5 * flat / rad + pi / 4.0; - py = 0.5 * mapw / pi * log(tan(flat)); // displacement from equator + flat = 0.5 * flat / rad + PI / 4.0; + py = 0.5 * mapw / PI * log(tan(flat)); // displacement from equator my = mape - py + 0.5; // 0 to maph if (mx < 0 || mx > mapw) return 1; @@ -3737,7 +3741,7 @@ while (true) { - err = read_sxrec_seq(sxrec,ftf); // read search index recs. + err = read_sxrec_seq(sxrec,ftf); // read image index recs. if (err) break; iix = Ngrec; @@ -3972,7 +3976,7 @@ ftf = 1; - while (true) // read search index recs. + while (true) // read image index recs. { err = read_sxrec_seq(sxrec,ftf); if (err) break; @@ -4076,7 +4080,7 @@ ftf = 1; - while (true) // read search index recs. + while (true) // read image index recs. { err = read_sxrec_seq(sxrec,ftf); if (err) break; @@ -4130,7 +4134,7 @@ /**************************************************************************/ // Search image tags, geotags, dates, stars, comments, captions -// to find matching images. This is fast using the search index. +// to find matching images. This is fast using the image index. // Search also any other metadata, but relatively slow. namespace search_images @@ -4766,6 +4770,8 @@ [clear] [apply] [cancel] ***/ + if (! init_geotags()) return 0; + zd = zdialog_new(ZTX("Add Geotags Search Criteria"),mWin,Bclear,Bapply,Bcancel,null); zdialog_add_widget(zd,"hbox","hbg1","dialog",0); @@ -4788,8 +4794,6 @@ zdialog_add_widget(zd,"label","labkm","hbg3",ZTX("range (km)"),"space=10"); zdialog_add_widget(zd,"entry","range","hbg3","100","scc=5"); - init_geotags(); - zdialog_show(zdp,0); // hide parent dialog zdialog_restore_inputs(zd); // preload prior user inputs zdialog_run(zd,searchimages_geotags_dialog_event); // run dialog @@ -5498,24 +5502,24 @@ /************************************************************************** - Functions to read and write search index records + Functions to read and write image index records ***************************************************************************/ -// Initialize for reading/writing to the search index. -// Build a memory map of the first image file in each search index subfile. +// Initialize for reading/writing to the image index. +// Build a memory map of the first image file in each image index subfile. // Set refresh = 1 to initialize after an index file has been split -// or the first image file in a search index file has changed. +// or the first image file in an image index file has changed. // Returns 0 if OK, +N otherwise. // -// /.../.fotoxx/search_index/index_001 -// /.../.fotoxx/search_index/index_002 -// /.../.fotoxx/search_index/index_... up to 999 +// /.../.fotoxx/image_index/index_001 +// /.../.fotoxx/image_index/index_002 +// /.../.fotoxx/image_index/index_... up to 999 // -// Each of these files contains up to 'search_index_max' image filespecs. +// Each of these files contains up to 'image_index_max' image filespecs. -char **search_index_map = 0; // 1st image file in each index file +char **image_index_map = 0; // 1st image file in each index file -int init_search_index_map(int refresh) +int init_image_index_map(int refresh) { int ii, cc; char *pp; @@ -5523,32 +5527,32 @@ char buff[indexrecl]; FILE *fid; - if (search_index_map && ! refresh) return 0; // already initialized + if (image_index_map && ! refresh) return 0; // already initialized - if (search_index_map) { // free memory - for (ii = 0; search_index_map[ii]; ii++) - free(search_index_map[ii]); - free(search_index_map); + if (image_index_map) { // free memory + for (ii = 0; image_index_map[ii]; ii++) + free(image_index_map[ii]); + free(image_index_map); } cc = 1001 * sizeof(char *); // allocate memory - search_index_map = (char **) malloc(cc); - memset(search_index_map,0,cc); + image_index_map = (char **) malloc(cc); + memset(image_index_map,0,cc); - for (ii = 0; ii < 999; ii++) // read search index files 001 to 999 + for (ii = 0; ii < 999; ii++) // read image index files 001 to 999 { - snprintf(indexfile,200,"%s/index_%03d",index_dirk,ii+1); // search_index_map[ii] is for - fid = fopen(indexfile,"r"); // search_index_file_(ii+1) + snprintf(indexfile,200,"%s/index_%03d",index_dirk,ii+1); // image_index_map[ii] is for + fid = fopen(indexfile,"r"); // image_index_file_(ii+1) if (! fid) break; pp = fgets_trim(buff,indexrecl,fid); if (pp && strnEqu(pp,"file: ",6)) pp = strdup(pp+6); // map first image file else pp = strdup("empty"); // if none, map "empty" - search_index_map[ii] = pp; + image_index_map[ii] = pp; fclose(fid); } - search_index_map[ii] = 0; // mark EOL + image_index_map[ii] = 0; // mark EOL if (ii == 0) { zmessLogACK(mWin,ZTX("image index is missing")); // v.14.02 @@ -5556,7 +5560,7 @@ } if (ii == 999) { - zmessLogACK(mWin,"Too many search index files"); + zmessLogACK(mWin,"too many image index files"); m_quit(0,0); } @@ -5564,18 +5568,18 @@ } -// Return which search index file a given image file belongs in. +// Return which image index file a given image file belongs in. -int find_search_index_file(cchar *file) +int find_image_index_file(cchar *file) { char *pp; int ii, nn; - init_search_index_map(0); + init_image_index_map(0); - for (ii = 0; (pp = search_index_map[ii]); ii++) + for (ii = 0; (pp = image_index_map[ii]); ii++) { - if (strEqu(pp,"empty")) continue; // same sort as search_index_compare() + if (strEqu(pp,"empty")) continue; // same sort as image_index_compare() nn = strcasecmp(file,pp); if (nn == 0) nn = strcmp(file,pp); if (nn < 0) break; // file < 1st index file, go back 1 @@ -5583,19 +5587,19 @@ if (ii == 0) ii = 1; // file < 1st file in 1st index file - while (ii > 1 && strEqu(search_index_map[ii-1],"empty")) ii--; + while (ii > 1 && strEqu(image_index_map[ii-1],"empty")) ii--; return ii; // (map ii is for index file ii+1) } /**************************************************************************/ -// Split an index file when the number of entries > search_index_max +// Split an index file when the number of entries > image_index_max // All following index files are renumbered +1. // Index_index file is refreshed. // Returns 0 if OK, else +N. -int split_search_index_file(int Nth) +int split_image_index_file(int Nth) { int ii, err, nn, last, filecount; char indexfile1[200], indexfile2[200], indexfile3[200]; @@ -5618,7 +5622,7 @@ last--; if (last == 999) { - zmessLogACK(mWin,"too many search index files"); + zmessLogACK(mWin,"too many image index files"); return 1; } @@ -5648,7 +5652,7 @@ pp = fgets_trim(buff,indexrecl,fid1); if (! pp) break; if (strnEqu(pp,"file: ",6)) filecount++; - if (filecount > search_index_max/2) break; + if (filecount > image_index_max/2) break; nn = fprintf(fid2,"%s\n",pp); if (! nn) goto file_err; } @@ -5679,11 +5683,11 @@ err = rename(indexfile3,indexfile1); if (err) goto file_err; - err = init_search_index_map(1); // update search index map + err = init_image_index_map(1); // update image index map return err; file_err: - zmessLogACK(mWin,"split_search_index error \n %s",strerror(errno)); + zmessLogACK(mWin,"split_image_index error \n %s",strerror(errno)); if (fid1) fclose(fid1); if (fid2) fclose(fid2); if (fid3) fclose(fid3); @@ -5693,7 +5697,7 @@ /**************************************************************************/ -// Get the search index record for given image file. +// Get the image index record for given image file. // Returns 0 if OK, 1 if not found, >1 if error (diagnosed). // Returned sxrec_t data has allocated fields subject to free(). // @@ -5718,14 +5722,14 @@ Fcontinue = 1; // test if prior search can continue if (! sxrec_fid) Fcontinue = 0; // no prior search still open - Nth = find_search_index_file(file); // get index file for this image file + Nth = find_image_index_file(file); // get index file for this image file if (Nth != pNth) Fcontinue = 0; // index file not the same if (image_fcomp(file,pfile) <= 0) Fcontinue = 0; // gallery file sequence if (Fcontinue) fid = sxrec_fid; else { if (sxrec_fid) fclose(sxrec_fid); - snprintf(indexfile,200,"%s/index_%03d",index_dirk,Nth); // /.../.fotoxx/search_index/index_NNN + snprintf(indexfile,200,"%s/index_%03d",index_dirk,Nth); // /.../.fotoxx/image_index/index_NNN fid = fopen(indexfile,"r"); // open index_NNN file sxrec_fid = fid; if (! fid) goto file_err; @@ -5816,7 +5820,7 @@ return 0; file_err: - if (! logerr) printz("search index read error: %s \n",strerror(errno)); + if (! logerr) printz("image index read error: %s \n",strerror(errno)); logerr++; if (fid) fclose(fid); sxrec_fid = 0; @@ -5846,14 +5850,14 @@ Fcontinue = 1; // test if prior search can continue if (! sxrec_fid) Fcontinue = 0; // no prior search still open - Nth = find_search_index_file(file); // get index file for this image file + Nth = find_image_index_file(file); // get index file for this image file if (Nth != pNth) Fcontinue = 0; // index file not the same if (image_fcomp(file,pfile) <= 0) Fcontinue = 0; // req. file not after prior file if (Fcontinue) fid = sxrec_fid; else { if (sxrec_fid) fclose(sxrec_fid); - snprintf(indexfile,200,"%s/index_%03d",index_dirk,Nth); // /.../.fotoxx/search_index/index_NNN + snprintf(indexfile,200,"%s/index_%03d",index_dirk,Nth); // /.../.fotoxx/image_index/index_NNN fid = fopen(indexfile,"r"); // open index_NNN file if (! fid) goto file_err; sxrec_fid = fid; @@ -5904,7 +5908,7 @@ return 0; file_err: - if (! logerr) printz("search index read error: %s \n",strerror(errno)); + if (! logerr) printz("image index read error: %s \n",strerror(errno)); logerr++; if (fid) fclose(fid); sxrec_fid = 0; @@ -5914,7 +5918,7 @@ /**************************************************************************/ -// Add or update search index record for given image file. +// Add or update image index record for given image file. // If sxrec is null, delete index record. // Return 0 if success, +N if error. @@ -5936,8 +5940,8 @@ err = stat(file,&statb); // check image file exists if (err && sxrec) return 1; - Nth = find_search_index_file(file); // construct index file - snprintf(indexfile,200,"%s/index_%03d",index_dirk,Nth); // /.../.fotoxx/search_index/index_NNN + Nth = find_image_index_file(file); // construct index file + snprintf(indexfile,200,"%s/index_%03d",index_dirk,Nth); // /.../.fotoxx/image_index/index_NNN err = stat(indexfile,&statb); // check if missing if (err) { @@ -5949,7 +5953,7 @@ fid1 = fopen(indexfile,"r"); // open index_NNN file if (! fid1) goto file_err; - strcpy(tempfile,indexfile); // temp search index file + strcpy(tempfile,indexfile); // temp image index file strcat(tempfile,"_temp"); fid2 = fopen(tempfile,"w"); // open for output @@ -6045,15 +6049,15 @@ err = rename(tempfile,indexfile); // replace index file with temp file if (err) goto file_err; - if (filecount > search_index_max) // if index file too big, split - split_search_index_file(Nth); + if (filecount > image_index_max) // if index file too big, split + split_image_index_file(Nth); else if (Fnewfirst) - init_search_index_map(1); // update search index map + init_image_index_map(1); // update image index map return 0; file_err: - zmessLogACK(mWin,"search index write error 3\n %s",strerror(errno)); + zmessLogACK(mWin,"image index write error 3\n %s",strerror(errno)); if (fid1) fclose(fid1); if (fid2) fclose(fid2); return 3; @@ -6062,7 +6066,7 @@ /**************************************************************************/ -// Read search index files sequentially, return one index rec. per call. +// Read image index files sequentially, return one index rec. per call. // Set ftf = 1 for first read, will be reset to 0. // Returns 0 if OK, 1 if EOF, 2 if error (diagnosed). // Returned sxrec_t data has allocated fields subject to free(). @@ -6180,7 +6184,7 @@ /**************************************************************************/ -// Write the search index files sequentially, 1 rec. per call +// Write the image index files sequentially, 1 rec. per call // Set ftf = 1 for first call, will be reset to 0. // Set sxrec = 0 to close file after last write. // Returns 0 if OK, otherwise +N. @@ -6204,17 +6208,17 @@ ftf = 0; err = stat(index_dirk,&statb); - if (! err && S_ISREG(statb.st_mode)) { // rename old search_index + if (! err && S_ISREG(statb.st_mode)) { // rename old image_index strcpy(oldirk,index_dirk); strcat(oldirk,"_old"); rename(index_dirk,oldirk); } - err = stat(index_dirk,&statb); // create new search_index directory + err = stat(index_dirk,&statb); // create new image_index directory if (err) err = mkdir(index_dirk,0750); // if not already there if (err) goto file_err; - err = shell_quiet("rm -f -v %s/index_* > /dev/null",index_dirk); // delete all search index files + err = shell_quiet("rm -f -v %s/index_* > /dev/null",index_dirk); // delete all image index files Nth = 1; snprintf(indexfile,200,"%s/index_%03d",index_dirk,Nth); // create initial index file fid = fopen(indexfile,"w"); @@ -6228,7 +6232,7 @@ fid = 0; if (err) goto file_err; } - err = init_search_index_map(1); // initz. search index map + err = init_image_index_map(1); // initz. image index map return err; } @@ -6240,12 +6244,12 @@ compact_time(statb.st_mtime,sxrec->fdate); // convert to "yyyymmddhhmmss" - if (filecount > 0.8 * search_index_max) { // if 80% max reached, + if (filecount > 0.8 * image_index_max) { // if 80% max reached, err = fclose(fid); // start new index file fid = 0; if (err) goto file_err; if (++Nth > 999) { // (v.13.02 post beta) - zmessLogACK(mWin,"too many search index files"); + zmessLogACK(mWin,"too many image index files"); return 2; } snprintf(indexfile,200,"%s/index_%03d",index_dirk,Nth); // open/write next index file @@ -6299,14 +6303,14 @@ return 0; file_err: - zmessLogACK(mWin,"search index write error 4\n %s",strerror(errno)); + zmessLogACK(mWin,"image index write error 4\n %s",strerror(errno)); if (fid) fclose(fid); fid = 0; return 3; } -// file name compare in image search index sequence +// file name compare in image image index sequence // use case blind compare first, then normal compare as a tiebreaker int image_fcomp(cchar *file1, cchar *file2) diff -Nru fotoxx-14.03/fotoxx-14.03.cc fotoxx-14.04/fotoxx-14.03.cc --- fotoxx-14.03/fotoxx-14.03.cc 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/fotoxx-14.03.cc 1970-01-01 00:00:00.000000000 +0000 @@ -1,4927 +0,0 @@ -/************************************************************************** - - Fotoxx edit photos and manage collections - - Copyright 2007-2014 Michael Cornelison - Source URL: http://kornelix.com/fotoxx - Contact: kornelix@posteo.de - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see http://www.gnu.org/licenses/. - -*************************************************************************** - - main main program, set up defaults - initzfunc initializations, carry out command line options - gtimefunc periodic function - paint_busy show busy indicator on window when something is running - update_statusbar update status parameters on status bar - - topmenufunc track which top-level menu is active - delete_event response function for main window delete event - destroy_event response function for main window delete event - state_event response function for main window fullscreen state change - settab set the current main window tab - tabchanged response function for main window tab change event - tabrecover set back to prior tab if change is not allowed - - mwpaint1 main / drawing window refresh (draw signal response function) - mwpaint2 trigger mwpaint1, callable from theads - mwpaintnow create cairo context and call mwpaint1 - mwpaint3 update drawing window section from updated E3 section - mwpaint4 update drawing window visible portion - - mouse_event mouse event response function - mouse_convert convert mouse/window space to image space - m_zoom main window zoom in/out function - KBstate send KB key from dialog to main window - KBpress KB key press event function - KBrelease KB key release event function - win_fullscreen set main window full screen status - win_unfullscreen restore main window to former size - - draw_pixel draw one overlay pixel using image space - erase_pixel erase one pixel - draw_line draw overlay line in image space - draw_dotline draw overlay dotted-line in image space - erase_line erase line - draw_toplines draw or redraw a set of overlay lines - draw_gridlines draw grid lines over image - add_toptext add to set of overlay text strings - draw_toptext draw set of overlay text strings - erase_toptext remove text from set of overlay text strings - draw_text draw text on window in image space - add_topcircle add a circle to set of overlay circles - draw_topcircles draw the set of overlay circles in window space - erase_topcircles erase the set of overlay circles - draw_mousearc draw a circle or ellipse centered on mouse, image space - - splcurve_init set up a spline curve drawing area - splcurve_adjust mouse event function to manipulate curve nodes - splcurve_draw draw curve through nodes - splcurve_generate generate x/y table of values from curve - splcurve_yval get curve y-value for given x-value - splcurve_load load curve data from a saved file - splcurve_save save curve data to a file - - edit_setup() start an image edit function - edit_cancel() cancle image edit - edit_done() finish image edit - edit_undo() undo current edit (reset) - edit_redo() redo current edit - edit_reset() reset all edit changes - edit_fullsize() convert preview to full size edit - - m_undo undo one edit in a series - m_redo redo one edit in a series - undo_all undo all edits for image - save_undo save image in the undo stack - load_undo load image from the undo stack - checkpend() check list: edit mods lock any quiet - takemouse set mouse event function and special cursor - freemouse remove mouse event function, set normal cursor - - start_thread start thread running - signal_thread signal thread that work is pending - wait_thread_idle wait for pending work complete - wrapup_thread wait for thread exit or command thread exit - wrapup_thread_noblock same with periodic zmainloop() - thread_idle_loop wait for pending work, exit if commanded - thread_exit exit thread unconditionally - start_wthread start a working thread per SMP processor - exit_wthread exit a working thread - wait_wthreads wait for all working threads to exit - - m_favorites function to generate favorites menu - favorites_callback response function for clicked menu - m_help response function for help menu - save_params save parameters when fotoxx exits - load_params load parameters at fotoxx startup - free_resources free resources for the current image file - vpixel get virtual pixel at any image location (float) - sigdiff compare 2 floats with margin of significance - PXM_audit check PXM image for pixel values > 255.99... - PXM_make create new PXM pixmap image - PXM_free destroy PXM and free memory - PXM_copy create a copy of a PXM image - PXM_copy_area create a copy of a rectangular area within a PXM - PXM_fixblue replace blue = 0 pixels with blue = 1 - PXM_rescale create a rescaled copy of a PXM image - PXM_rotate create a rotated copy of a PXM image - - PXB_make create a new PXB image, empty for from GdkPixbuf - PXB_free destroy PXB and free memory - PXB_copy create a copy of a PXB image - PXB_rescale create a rescaled copy of a PXB image - PXM_PXB_copy create a PXB copy of a PXM image - PXM_PXB_update update a rectangular area in a PXB from a corresp. PXM - PXB_PXB_update update a rectangular area in a PXB from another PXB - -***************************************************************************/ - - -#define EX // disable extern declarations -#include "fotoxx.h" - - -// fotoxx main program - -int main(int argc, char *argv[]) -{ - GError *gerror = 0; - char lang[8] = "", iconfile[200]; - int Fclone=0, cloxx=0, cloyy=0, cloww=0, clohh=0; - int err; - struct stat statb; - - if (argc > 1 && strEqu(argv[1],"-v")) { - printz(Frelease "\n"); // print version and exit - return 0; - } - - gtk_init(&argc,&argv); // initz. GTK & strip GTK params - zinitapp("fotoxx",null); // initz. app directories - err = chdir(get_zuserdir()); // set to /home//.fotoxx v.14.02 - - // initialize externals to default values - // (saved parameters will override some of these) - - strcpy(zfuncs::zappname,Frelease); // app name and version - Ffirsttime = 1; // first time startup (params override) - Prelease = strdup("unknown"); // prev. fotoxx release (params override) - Nrelease = strdup("unknown"); // last notified new release - for (int ii = 0; ii < 10; ii++) Nval[ii] = ii; // integer values 0-9 - mwgeom[0] = mwgeom[1] = 100; // default main window geometry - mwgeom[2] = 1200; mwgeom[3] = 800; // v.13.05 - *SB_text = 0; // no status bar text v.14.03 - trimsize[0] = 1600; // default initial image trim size - trimsize[1] = 1000; - trimbuttons[0] = strdup("1:1"); trimratios[0] = strdup("1:1"); // default trim ratio buttons v.13.10 - trimbuttons[1] = strdup("2:1"); trimratios[1] = strdup("2:1"); - trimbuttons[2] = strdup("3:2"); trimratios[2] = strdup("3:2"); - trimbuttons[3] = strdup("4:3"); trimratios[3] = strdup("4:3"); - trimbuttons[4] = strdup("16:9"); trimratios[4] = strdup("16:9"); - trimbuttons[5] = strdup("gold"); trimratios[5] = strdup("1.62:1"); - editresize[0] = 1600; // default initial resize size - editresize[1] = 1200; - currgrid = 0; // default initial grid settings v.13.02 - gridsettings[0][GON] = 0; // grid off - gridsettings[0][GX] = gridsettings[0][GY] = 1; // x/y grid lines enabled - gridsettings[0][GXS] = gridsettings[0][GYS] = 200; // x/y spacing - gridsettings[0][GXC] = gridsettings[0][GYC] = 5; // x/y count - menu_style = strdup("vertical"); // default menu style v.13.01 - tbar_style = strdup("both"); // default toolbar style - interpolation = strdup("bilinear"); // default image interpolation v.13.05 - startdisplay = strdup("blank"); // start with blank window - Fdragopt = 2; // image drag is magnified scroll - zoomcount = 2; // zooms to reach 2x image size - zoomratio = sqrtf(2); // corresp. zoom ratio - thumbdirk = strdup(""); // default, no thumbnail directory - jpeg_def_quality = 90; // default .jpeg save quality v.13.08 - jpeg_1x_quality = 90; - lens_mm = 35; // pano lens parameters - lens_bow = 0; - ss_collname = strdup(""); // slide show collection name v.13.11 - ss_plcollname = strdup(""); // slide show pause list collection - ss_latest = 1; // slide show, use latest versions - ss_interval = 3; // slide show, interval - ss_musicfile = strdup(""); // slide show, music file - RAWcommand = strdup("dcraw -T -6 -w -q 0 -o 1"); // default RAW to tiff command - RAWfiletypes = strdup(".arw .crw .cr2 .dng .erf .iiq .mef .mos " // some of the known RAW file types - ".mpo .nef .nrw .orf .orf .pef .ptx .raw " // (case is not significant here) - ".rw2 .rwl .srf .srw .sr2 "); - imagefiletypes = strdup(".jpg .jpeg .png .tif .tiff .bmp .ico " // supported image file types v.14.01 - ".gif .svg .xpm .tga "); - - black[0] = black[1] = black[2] = 0; // define RGB colors - white[0] = white[1] = white[2] = 255; - red[0] = 255; red[1] = red[2] = 0; - green[1] = 255; green[0] = green[2] = 0; - fg_color = green; // initial foreground drawing color - - GDKblack.red = GDKblack.green = GDKblack.blue = 0; // GDK color for black - GDKblack.alpha = 1; - - arrowcursor = gdk_cursor_new(GDK_TOP_LEFT_ARROW); // cursor for selection - dragcursor = gdk_cursor_new(GDK_CROSSHAIR); // cursor for dragging - drawcursor = gdk_cursor_new(GDK_PENCIL); // cursor for drawing lines - - // process command line parameters - - for (int ii = 1; ii < argc; ii++) // command line parameters - { - char *pp = argv[ii]; - - if (strcmpv(pp,"-debug","-d",null)) // -d -debug - Fdebug = 1; - else if (strcmpv(pp,"-lang","-l",null) && argc > ii+1) // -l -lang lc_RC language/region code - strncpy0(lang,argv[++ii],7); - else if (strcmpv(pp,"-clone","-c",null) && argc > ii+4) { // -c -clone clone new instance - Fclone = 1; - cloxx = atoi(argv[ii+1]); // window position and size - cloyy = atoi(argv[ii+2]); // passed from parent instance - cloww = atoi(argv[ii+3]); - clohh = atoi(argv[ii+4]); - ii += 4; - } - else if (strcmpv(pp,"-recent","-r",null)) // -r -recent recent files gallery - Frecent = 1; - else if (strcmpv(pp,"-new","-n",null)) // -n -new new added files gallery - Fnew = 1; - else if (strcmpv(pp,"-previous","-prev","-p",null)) // -p -prev open previous file - Fprev = 1; - else if (strcmpv(pp,"-blank","-b",null)) // -b -blank start with blank window - Fblank = 1; - else if (strEqu(pp,"-menu") && argc > ii+1) // -menu menuname starting menu - startmenu = strdup(argv[++ii]); - else initial_file = strdup(pp); // must be initial file or directory - } - - ZTXinit(lang); // setup locale and translations - setlocale(LC_NUMERIC,"en_US.UTF-8"); // stop comma decimal points - - // get files in user directory /home//.fotoxx/* - - snprintf(index_dirk,199,"%s/image_index",get_zuserdir()); // image index directory v.14.02 - snprintf(tags_defined_file,199,"%s/tags_defined",get_zuserdir()); // defined tags file - snprintf(recentfiles_file,199,"%s/recent_files",get_zuserdir()); // recent files file (index func) - snprintf(newfiles_file,199,"%s/newest_files",get_zuserdir()); // newest files file (index func) - snprintf(saved_areas_dirk,199,"%s/saved_areas",get_zuserdir()); // saved areas directory - snprintf(collections_dirk,199,"%s/collections",get_zuserdir()); // collections directory - snprintf(collections_copy,199,"%s/collections_copy",get_zuserdir()); // collections copy file - snprintf(saved_curves_dirk,199,"%s/saved_curves",get_zuserdir()); // saved curves directory - snprintf(writetext_dirk,199,"%s/write_text",get_zuserdir()); // write_text directory - snprintf(geotags_dirk,199,"%s/geotags",get_zuserdir()); // geotags directory - snprintf(favorites_dirk,199,"%s/favorites",get_zuserdir()); // favorites directory - snprintf(locales_dirk,199,"%s/locales",get_zuserdir()); // locales directory - snprintf(mashup_dirk,199,"%s/mashup",get_zuserdir()); // mashup projects directory - locale_filespec("data","quickstart.html",quickstart_file); // quickstart html file - snprintf(latest_release_file,199,"%s/latest_release",get_zuserdir()); // latest fotoxx release file - snprintf(slideshow_tone,199,"%s/slideshow-tone.oga",get_zuserdir()); // slide show pause tone file - snprintf(slideshow_prefs,199,"%s/slideshow-prefs",get_zuserdir()); // slide show preferences file - snprintf(thumb_mosaics_dirk,199,"%s/thumb_mosaics",get_zuserdir()); // thumbnail mosaics directory v.14.03 - fotoxx_install_counter = "http://www.kornelix.com/storage"; // page for fotoxx install counter v.14.03 - - err = stat(index_dirk,&statb); // create any missing directories - if (err) mkdir(index_dirk,0750); - err = stat(saved_areas_dirk,&statb); - if (err) mkdir(saved_areas_dirk,0750); - err = stat(collections_dirk,&statb); - if (err) mkdir(collections_dirk,0750); - err = stat(saved_curves_dirk,&statb); - if (err) mkdir(saved_curves_dirk,0750); - err = stat(writetext_dirk,&statb); - if (err) mkdir(writetext_dirk,0750); - err = stat(geotags_dirk,&statb); - if (err) mkdir(geotags_dirk,0750); - err = stat(favorites_dirk,&statb); - if (err) mkdir(favorites_dirk,0750); - err = stat(locales_dirk,&statb); // v.13.02 - if (err) mkdir(locales_dirk,0750); - err = stat(mashup_dirk,&statb); // v.13.09 - if (err) mkdir(mashup_dirk,0750); - - // restore parameters from last session - - load_params(); - - // create main window with image file tab and gallery tab - - mWin = gtk_window_new(GTK_WINDOW_TOPLEVEL); // create main window - gtk_window_set_title(MWIN,Frelease); - - tabWin = gtk_notebook_new(); // add tab window to main window - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tabWin),GTK_POS_LEFT); - gtk_container_add(GTK_CONTAINER(mWin),tabWin); - - snprintf(iconfile,200,"%s/F-tab.png",get_zicondir()); // add vbox as tab F (image file window) - GdkPixbuf * pxbF = gdk_pixbuf_new_from_file_at_size(iconfile,32,32,&gerror); - GtkWidget * iconF = gtk_image_new_from_pixbuf(pxbF); // tabs have icons and tool tips v.13.09 - GtkWidget * buttF = gtk_button_new(); - gtk_button_set_image(GTK_BUTTON(buttF),iconF); - gtk_widget_set_tooltip_text(buttF,ZTX("Tab F: image file view/edit")); - fVbox = gtk_box_new(VERTICAL,0); - gtk_notebook_append_page(GTK_NOTEBOOK(tabWin),fVbox,buttF); - - snprintf(iconfile,200,"%s/G-tab.png",get_zicondir()); // add vbox as tab G (gallery window) - GdkPixbuf * pxbG = gdk_pixbuf_new_from_file_at_size(iconfile,32,32,&gerror); - GtkWidget * iconG = gtk_image_new_from_pixbuf(pxbG); - GtkWidget * buttG = gtk_button_new(); - gtk_button_set_image(GTK_BUTTON(buttG),iconG); - gtk_widget_set_tooltip_text(buttG,ZTX("Tab G: image gallery")); - gVbox = gtk_box_new(VERTICAL,0); - gtk_notebook_append_page(GTK_NOTEBOOK(tabWin),gVbox,buttG); - - snprintf(iconfile,200,"%s/W-tab.png",get_zicondir()); // create tab W (world map window) - GdkPixbuf * pxbW = gdk_pixbuf_new_from_file_at_size(iconfile,32,32,&gerror); - GtkWidget * iconW = gtk_image_new_from_pixbuf(pxbW); - GtkWidget * buttW = gtk_button_new(); - gtk_button_set_image(GTK_BUTTON(buttW),iconW); - gtk_widget_set_tooltip_text(buttW,ZTX("Tab W: world map")); - wVbox = gtk_box_new(VERTICAL,0); - gtk_notebook_append_page(GTK_NOTEBOOK(tabWin),wVbox,buttW); - - build_menus(); // build menus in F and G windows - - wDwin = gtk_drawing_area_new(); // add tabW drawing window - gtk_box_pack_start(GTK_BOX(wVbox),wDwin,1,1,0); // (F/G drawing windows in build_menus()) - - G_SIGNAL(mWin,"delete_event",delete_event,0); // connect signals to main window - G_SIGNAL(mWin,"destroy",destroy_event,0); - G_SIGNAL(mWin,"window-state-event",state_event,0); - - G_SIGNAL(mWin,"key-press-event",KBpress,0); // connect KB events to main window - G_SIGNAL(mWin,"key-release-event",KBrelease,0); - - gtk_widget_add_events(buttF,GDK_BUTTON_PRESS_MASK); // connect tab button events - gtk_widget_add_events(buttG,GDK_BUTTON_PRESS_MASK); - gtk_widget_add_events(buttW,GDK_BUTTON_PRESS_MASK); - G_SIGNAL(buttF,"button-press-event",tabbutton,&Nval[0]); - G_SIGNAL(buttG,"button-press-event",tabbutton,&Nval[1]); - G_SIGNAL(buttW,"button-press-event",tabbutton,&Nval[2]); - - G_SIGNAL(tabWin,"switch-page",tabchanged,-1); // connect tab switched event - - gtk_widget_add_events(fDwin,GDK_BUTTON_PRESS_MASK); // connect mouse events to image window - gtk_widget_add_events(fDwin,GDK_BUTTON_RELEASE_MASK); - gtk_widget_add_events(fDwin,GDK_BUTTON_MOTION_MASK); // motion with button pressed - gtk_widget_add_events(fDwin,GDK_POINTER_MOTION_MASK); // pointer motion - gtk_widget_add_events(fDwin,GDK_SCROLL_MASK); // scroll wheel - G_SIGNAL(fDwin,"button-press-event",mouse_event,0); - G_SIGNAL(fDwin,"button-release-event",mouse_event,0); - G_SIGNAL(fDwin,"motion-notify-event",mouse_event,0); - G_SIGNAL(fDwin,"scroll-event",mouse_event,0); - G_SIGNAL(fDwin,"draw",mwpaint1,0); // connect draw signal - - gtk_widget_add_events(gDwin,GDK_BUTTON_PRESS_MASK); // connect mouse events to gallery window - gtk_widget_add_events(gDwin,GDK_BUTTON_RELEASE_MASK); - gtk_widget_add_events(gDwin,GDK_POINTER_MOTION_MASK); // v.13.01 - gtk_widget_add_events(gDwin,GDK_LEAVE_NOTIFY_MASK); - G_SIGNAL(gDwin,"button-press-event",navi::mouse_event,0); - G_SIGNAL(gDwin,"button-release-event",navi::mouse_event,0); // v.14.01 - G_SIGNAL(gDwin,"motion-notify-event",navi::mouse_event,0); - G_SIGNAL(gDwin,"leave-notify-event",navi::mouse_event,0); - G_SIGNAL(gDwin,"draw",navi::gallery_paint,0); // connect draw signal - - gtk_widget_add_events(gPath,GDK_BUTTON_PRESS_MASK); // connect mouse to gallery - G_SIGNAL(gPath,"button-press-event",navi::changedirk,0); // navigation widgets - G_SIGNAL(gTop,"clicked",navi::newtop,0); - - gtk_widget_add_events(wDwin,GDK_BUTTON_PRESS_MASK); // connect mouse events to world map window - gtk_widget_add_events(wDwin,GDK_BUTTON_RELEASE_MASK); - gtk_widget_add_events(wDwin,GDK_BUTTON_MOTION_MASK); // motion with button pressed - gtk_widget_add_events(wDwin,GDK_POINTER_MOTION_MASK); // pointer motion - gtk_widget_add_events(wDwin,GDK_SCROLL_MASK); // scroll wheel - G_SIGNAL(wDwin,"button-press-event",mouse_event,0); - G_SIGNAL(wDwin,"button-release-event",mouse_event,0); - G_SIGNAL(wDwin,"motion-notify-event",mouse_event,0); - G_SIGNAL(wDwin,"scroll-event",mouse_event,0); - G_SIGNAL(wDwin,"draw",mwpaint1,0); - - drag_drop_connect(mWin,m_open_drag); // connect drag-drop to main window - - mwpC = &mwpF; // tab F is current - - // open main window and start GTK main loop - - if (Fclone) { // clone: open new window - gtk_window_move(MWIN,cloxx+20,cloyy+30); // slightly offset from old window - gtk_window_resize(MWIN,cloww-20,clohh-30); - } - else { - gtk_window_move(MWIN,mwgeom[0],mwgeom[1]); // main window geometry - gtk_window_resize(MWIN,mwgeom[2],mwgeom[3]); // defaults or last session params - } - - gtk_widget_show_all(mWin); // show all widgets - gtk_widget_realize(fDwin); // compensate GTK bug - gtk_widget_realize(wDwin); // compensate GTK bug - - #define SF0 (GtkStateFlags) 0 - gtk_widget_override_background_color(fDwin,SF0,&GDKblack); // black backgrounds for F and W tabs - gtk_widget_override_background_color(wDwin,SF0,&GDKblack); - - cTab = tabF; // set current tab = F - cDwin = fDwin; // curr. drawing window - cSbar = fSbar; // status bar active - gdkWin = gtk_widget_get_window(cDwin); // GDK drawing window - - // start GTK main loop - - g_timeout_add(100,initzfunc,0); // initz. call from gtk_main() v.13.01 - gtk_main(); // start processing window events - return 0; -} - - -/**************************************************************************/ - -// Initial function called from gtk_main() at startup. -// This function MUST return 0. - -int initzfunc(void *) -{ - int Fnewrelease; - int Fexiftool = 0, Fxdgopen = 0, Fdcraw = 0, Fufraw = 0; - int ii, err, err1, err2, npid, contx; - int ftype, Fdirk = 0; - char Lrelease[20], *pp, *pp2; - char procfile[20], buff[200]; - char KBshortsU[200], KBshortsI[200]; - char favorites_config[200], badnews[200]; - double freememory, cachememory; // available memory at startup - float exifver = 0; - FILE *fid; - struct stat statb; - - cchar *ftmess = ZTX("First time Fotoxx startup. \n" - "Latest version: http://www.kornelix.com/fotoxx \n" - "File Index process will begin (may need some time) \n"); - - cchar *kornelix_fotoxx_release = - "http://www.kornelix.com/uploads/1/3/0/3/13035936/fotoxx-release"; - - cchar *release_notify = "new release %s available at \n" - "http://www.kornelix.com/packages"; - - printz(Frelease "\n"); // print Fotoxx release version - - // find and save the main window and pointer device // v.13.08 - - Fwindow = gtk_widget_get_window(mWin); // gdk window for main window - if (Fwindow) Fdisplay = gdk_window_get_display(Fwindow); - if (Fwindow) Fscreen = gdk_window_get_screen(Fwindow); - if (Fdisplay) Fmanager = gdk_display_get_device_manager(Fdisplay); - if (Fmanager) Fpointer = gdk_device_manager_get_client_pointer(Fmanager); - if (! Fscreen || ! Fpointer) { - printz("GTK/GDK failure to find hardware %p %p %p %p %p \n", - Fwindow,Fdisplay,Fscreen,Fmanager,Fpointer); - m_quit(0,0); - exit(1); - } - - // check that necessary programs are installed - - fid = popen("exiftool -ver","r"); // check exiftool version - if (fid) { - ii = fscanf(fid,"%s",buff); - pclose(fid); // bugfix: accept period or comma - convSF(buff,exifver); - printz("exiftool version: %.2f \n",exifver); - if (exifver >= 8.60) Fexiftool = 1; - } - - err = shell_quiet("which xdg-open"); // check for xdg-open - if (! err) Fxdgopen = 1; - err = shell_quiet("which dcraw"); // check for dcraw - if (! err) Fdcraw = 1; - err = shell_quiet("which ufraw"); // check for ufraw - if (! err) Fufraw = 1; - - if (Fexiftool + Fxdgopen + Fdcraw + Fufraw < 4) { // check mandatory dependencies - strcpy(badnews,ZTX("Please install missing programs:")); - if (! Fexiftool) strcat(badnews,"\n exiftool 8.6 or later"); // refuse to start if any are missing - if (! Fxdgopen) strcat(badnews,"\n xdg-utils"); - if (! Fdcraw) strcat(badnews,"\n dcraw"); - if (! Fufraw) strcat(badnews,"\n ufraw"); - zmessageACK(mWin,0,badnews); - m_quit(0,0); - } - - // delete fotoxx tempdir files if parent process is no longer running - - contx = 0; // v.13.12 - while ((pp = command_output(contx,"find /tmp/fotoxx-*",0))) { - pp2 = strchr(pp,'-'); - if (! pp2) continue; - npid = atoi(pp2+1); // pid of fotoxx owner process - snprintf(procfile,20,"/proc/%d",npid); - err = stat(procfile,&statb); - if (! err) continue; // pid is active, keep - shell_quiet("rm -R -f -v %s",pp); // delete - } - - contx = 0; - while ((pp = command_output(contx,"find /run/shm/fotoxx-*",0))) { - pp2 = strchr(pp,'-'); - if (! pp2) continue; - npid = atoi(pp2+1); // pid of fotoxx owner process - snprintf(procfile,20,"/proc/%d",npid); - err = stat(procfile,&statb); - if (! err) continue; // pid is active, keep - shell_quiet("rm -R -f -v %s",pp); // delete - } - - // set up temp directory using ramdisk if possible - // /run/shm/fotoxx-nnnnnn or /tmp/fotoxx-nnnnnn // v.13.12 - - snprintf(PIDstring,11,"%06d",getpid()); // get process PID 6-digits - sprintf(tempdir,"/run/shm/fotoxx-%s",PIDstring); // ramdisk directory - err = mkdir(tempdir,0750); - if (err) { - sprintf(tempdir,"/tmp/fotoxx-%s",PIDstring); // conventional directory - err = mkdir(tempdir,0750); - } - if (err) { - zmessageACK(mWin,0,"cannot create %s: %s",tempdir,strerror(errno)); - exit(1); - } - - printz("tempdir: %s \n",tempdir); - err = chdir(tempdir); // set working directory v.13.12 - - // file name template for undo/redo files - - snprintf(URS_filename,200,"%s/undo_nn",tempdir); // /run/shm/fotoxx-nnnnnn/undo_nn - - // check free memory and suggest image size limits - - parseprocfile("/proc/meminfo","MemFree:",&freememory,null); // get amount of free memory - parseprocfile("/proc/meminfo","Cached:",&cachememory,null); - freememory = (freememory + cachememory) / 1024; // megabytes - printz("free memory: %.0f MB \n",freememory); - printz("image size limits for good performance: \n"); // v.13.04 - printz(" view: %.0f megapixels \n",(freememory-100)/6); // F + preview, 3 bytes/pixel each - printz(" edit: %.0f megapixels \n",(freememory-100)/54); // + E0/E1/E3/ER, 12 bytes/pixel each - - // miscellaneous - - Nwt = get_nprocs(); // get SMP CPU count - if (Nwt <= 0) Nwt = 2; - if (Nwt > max_threads) Nwt = max_threads; // compile time limit - printz("using %d threads \n",Nwt); - - mutex_init(&Fpixmap_lock,0); // setup lock for edit pixmaps - mutex_init(&preload_lock,0); // setup lock for file preload function - - zdialog_inputs("load"); // load saved dialog inputs - zdialog_positions("load"); // load saved dialog positions - - exiftool_server(null); // kill orphan exiftool process - - g_timeout_add(100,gtimefunc,0); // start periodic function (100 ms) v.13.11 - - // check for first time Fotoxx startup or new installed release - - if (Ffirsttime) // initial install, show quickstart - showz_html(quickstart_file); // v.13.06 - - Fnewrelease = 0; - if (! Ffirsttime && strNeq(Prelease,Frelease)) { // detect Fotoxx release change - zmessLogACK(mWin,"fotoxx new release %s",Frelease); - Prelease = strdup(Frelease); - Fnewrelease = 1; - showz_textfile("doc","changelog"); - } - - // If new install increment web counter, else check for new release - - if (Ffirsttime || Fnewrelease) // if new install or update, v.14.03 - { // increment install counter - printz("update install counter \n"); - snprintf(command,ccc,"wget -b -T 20 -o /dev/null -O /dev/null %s", - fotoxx_install_counter); - err = system(command); - } - - else // check for new release - { - fid = fopen(latest_release_file,"r"); - if (fid) { - fgets_trim(Lrelease,20,fid,1); // latest release on web site - fclose(fid); - if (strnEqu(Lrelease,"Fotoxx",6)) { // legitimate - printz("latest release: %s \n",Lrelease); - if (strcmp(Frelease,Lrelease) < 0 // notify if release < latest release - && strNeq(Nrelease,Lrelease)) { - zmessageACK(mWin,0,release_notify,Lrelease); - Nrelease = strdup(Lrelease); // only once - save notified release - } - } - } - snprintf(command,ccc,"wget -T 20 -o /dev/null -O %s %s &", // start retrieval of latest release - latest_release_file, kornelix_fotoxx_release); // (no wait, times out in 20 secs.) - err = system(command); // may return junk if failure - } - - // update KB shortcuts if needed - - locale_filespec("data","KB-shortcuts",KBshortsI); // installed KB shortcuts - err1 = locale_filespec("user","KB-shortcuts",KBshortsU); // user KB shortcuts - err2 = shell_quiet("cmp -s %s %s",KBshortsU,KBshortsI); // compare - - if (Ffirsttime || err1 || (Fnewrelease && err2)) { // replace KB-shortcuts file v.13.03 - shell_quiet("mv -f %s %s-old",KBshortsU,KBshortsU); - shell_quiet("cp %s %s",KBshortsI,KBshortsU); - printz("new keyboard shortcuts installed \n"); - } - KBshortcuts_load(); // load KB shortcuts from file v.13.03 - - // create tags_defined file if not already - - err = stat(tags_defined_file,&statb); // v.13.08 - if (err) { - printz("create default tags_defined file \n"); - shell_quiet("cp %s/tags_defined %s",get_zdatadir(),tags_defined_file); - } - - // if no favorites menu, copy installation default - - snprintf(favorites_config,200,"%s/menu-config",favorites_dirk); // v.13.09 - err = stat(favorites_config,&statb); - if (err) { - printz("create default favorites menu \n"); - shell_quiet("cp -R -n %s/favorites/* %s",get_zdatadir(),favorites_dirk); - } - - // if no slide show pause tone file, copy installation default - - err = stat(slideshow_tone,&statb); // v.13.11 - if (err) { - printz("create default slideshow pause tone file \n"); - shell_quiet("cp %s/slideshow-tone.oga %s",get_zdatadir(),slideshow_tone); - } - - // create or update image file search index // v.14.02 - // cannot continue until completed OK - - if (Ffirsttime) // if first startup, explain - zmessageACK(mWin,0,ftmess); // image file index process - - Findexdone = 0; // insist on index rebuild v.14.02 - while (! Findexdone) index_rebuild(0); // until successfully completed - - Ffirsttime = 0; // reset first time flag - save_params(); // save parameters now - - // set current directory/file from command line if present - - curr_dirk = strdup(topdirks[0]); // default 1st top image directory - - if (initial_file) { // from command line - pp = realpath(initial_file,0); // prepend directory if needed - if (pp) { - free(initial_file); - initial_file = strdup(pp); - free(pp); - } - else { - printz("invalid file: %s \n",initial_file); // invalid file path - free(initial_file); - initial_file = 0; - } - } - - if (initial_file) { - ftype = image_file_type(initial_file); - if (ftype == 0) { // non-existent file - printz("invalid file: %s \n",initial_file); - free(initial_file); - initial_file = 0; - } - else if (ftype == 1) { // is a directory - if (curr_dirk) free(curr_dirk); - curr_dirk = initial_file; - initial_file = 0; - Fdirk = 1; - } - else { - if (curr_dirk) free(curr_dirk); - curr_dirk = strdup(initial_file); // set current directory from file - pp = strrchr(curr_dirk,'/'); - if (pp) *pp = 0; - } - } - - if (initial_file) // open initial file - f_open(initial_file); - - else if (Fdirk) { // open initial directory - gallery - gallery(curr_dirk,"init"); // v.13.01 - gallery(0,"paint"); - settab("G"); - } - - else if (Fprev) // start with previous file - m_previous(0,0); - - else if (Frecent) // start with recent files - m_recentfiles(0,0); - - else if (Fnew) // start with newly added files - m_newfiles(0,0); // v.13.07 - - else if (Fblank) { /* do nothing */ } // start with blank window - - // if no command line option, get startup option from user settings - - else if (strEqu(startdisplay,"recent")) // recent files gallery - m_recentfiles(0,0); - - else if (strEqu(startdisplay,"newest")) // newest files gallery - m_newfiles(0,0); - - else if (strEqu(startdisplay,"prevG")) { // previous gallery - m_previous(0,0); - printf("prev gallery \n"); - gallery(curr_dirk,"init",0); - gallery(0,"paint"); - settab("G"); - } - - else if (strEqu(startdisplay,"prevI")) // previous image file v.14.03 - m_previous(0,"first"); - - else if (strEqu(startdisplay,"dirk")) { // given directory - if (startdirk && *startdirk == '/') { - if (curr_dirk) free(curr_dirk); - curr_dirk = strdup(startdirk); - navi::thumbsize = 128; - gallery(curr_dirk,"init",0); // v.13.01 - gallery(0,"paint"); - settab("G"); // v.13.04 - } - } - - else if (strEqu(startdisplay,"file")) // given image file - f_open(startfile); - - if (startmenu) { // startup menu on command line - printz("startmenu: %s \n",startmenu); - for (ii = 0; ii < Nmenus; ii++) // convert menu name to menu function - if (strcasecmp(ZTX(startmenu),ZTX(menutab[ii].menu)) == 0) break; - if (ii < Nmenus) menutab[ii].func(0,menutab[ii].arg); // call the menu function - } - - zmainloop(); // mysterious, avoid blank window - return 0; // don't come back -} - - -/**************************************************************************/ - -// Periodic function (100 milliseconds) -// Avoid any thread usage of gtk/gdk functions. - -int gtimefunc(void *arg) -{ - static int domore = 0; - - if (Frefresh && cDwin) { // window update needed v.13.04 - if (mutex_trylock(&Fpixmap_lock) != 0) return 1; // pixmaps locked, come back later - mutex_unlock(&Fpixmap_lock); // (mwpaint1 will lock) - gtk_widget_queue_draw(cDwin); - } - - if (zd_thread && zd_thread_event) { // send dialog event from thread v.13.09 - zdialog_send_event(zd_thread,zd_thread_event); - zd_thread_event = 0; - } - - if (--domore > 0) return 1; // do rest 1/5 as frequently - domore = 5; - - update_statusbar(); // update status bar information - paint_busy(); // paint "BUSY" on window if something busy - if (Fslideshow) slideshow_next("timer"); // show next image if time is up - - return 1; -} - - -/**************************************************************************/ - -// Watch globals Fthreadbusy, Ffuncbusy, Findexbusy. -// Display spinner if any busy flag > 0. -// Add caller message if present. -// Add percent complete if Fbusy_goal > 0. -// window title bar: [x] - [_] window title ... ✻ caller message 99 % - -void paint_busy(cchar *message) -{ - #define GSFNORMAL GTK_STATE_FLAG_NORMAL - #define HORIZONTAL GTK_ORIENTATION_HORIZONTAL - - static GtkWidget *window = 0, *mlabel = 0, *plabel = 0; - GtkWidget *hbox, *spinner; - static char mmess[100] = "", pmess[12]; - static int pmx, pmy, ww, hh; - int busy, qmx, qmy, percent; - GdkRGBA red = { 1, 0, 0, 1 }; - - busy = Fthreadbusy + Ffuncbusy + Findexbusy; // v.13.12 - - if (! busy) { // nothing busy - if (! window) return; - gtk_widget_destroy(window); // kill popup window - window = 0; - *mmess = 0; - return; - } - - if (window) - { - gtk_window_get_position(MWIN,&qmx,&qmy); // position top of main window - if (qmx != pmx || qmy != pmy) { // window moved - gtk_widget_destroy(window); // kill popup window - window = 0; - } - } - - if (! window) // busy state initiated - { - window = gtk_window_new(GTK_WINDOW_POPUP); // create popup window - hbox = gtk_box_new(HORIZONTAL,0); - gtk_container_add(GTK_CONTAINER(window),hbox); - - spinner = gtk_spinner_new(); // add spinning icon to window - gtk_widget_set_size_request(spinner,20,20); - gtk_widget_override_color(spinner,GSFNORMAL,&red); - gtk_spinner_start(GTK_SPINNER(spinner)); - gtk_box_pack_start(GTK_BOX(hbox),spinner,0,0,2); - - if (message) strncpy0(mmess,message,99); // new message - - if (*mmess) { // keep message - mlabel = gtk_label_new(mmess); - gtk_box_pack_start(GTK_BOX(hbox),mlabel,0,0,10); - } - - if (Fbusy_goal) { - percent = 100 * (Fbusy_done / Fbusy_goal); // add NN % - sprintf(pmess," %02d %c",percent,'%'); - plabel = gtk_label_new(pmess); - gtk_box_pack_start(GTK_BOX(hbox),plabel,0,0,10); - } - - gtk_window_get_position(MWIN,&pmx,&pmy); // position top of main window - gtk_window_get_size(MWIN,&ww,&hh); - gtk_window_move(GTK_WINDOW(window),pmx+ww-200,pmy+5); - gtk_widget_show_all(window); - } - - if (Fbusy_goal) { - percent = 100 * (Fbusy_done / Fbusy_goal); // update NN % - sprintf(pmess," %02d %c",percent,'%'); - gtk_label_set_label(GTK_LABEL(plabel),pmess); - } - - return; -} - - -/**************************************************************************/ - -// update status bar with image data and status -// called from timer function - -void update_statusbar() -{ - static double time1 = 0, time2, cpu1 = 0, cpu2, cpuload; - char text1[300], text2[100]; - static char ptext1[300] = ""; - int faultrate, ww, hh, scale, bpc; - static int ftf = 1; - double file_MB = 1.0 / mega * curr_file_size; - static cchar *reduced, *areaactive, *dialogopen; - static cchar *funcbusy, *indexbusy, *menulock; - - if (ftf) { - ftf = 0; - reduced = ZTX("(reduced)"); - areaactive = ZTX("area active"); - dialogopen = ZTX("dialog open"); - funcbusy = ZTX("function busy"); - indexbusy = ZTX("file index busy"); - menulock = ZTX("menu locked"); - } - - if (! cSbar) return; - - *text1 = *text2 = 0; - - if (! time1) { - time1 = get_seconds(); - cpu1 = jobtime(); - } - - time2 = get_seconds(); // compute process cpu load % - if (time2 - time1 > 1.0) { // at 1 second intervals - cpu2 = jobtime(); - cpuload = 100.0 * (cpu2 - cpu1) / (time2 - time1); - time1 = time2; - cpu1 = cpu2; - } - - faultrate = pagefaultrate(); // recent hard page fault rate v.14.03 - - sprintf(text1,"CPU %03.0f%c PF %d",cpuload,'%',faultrate); // CPU 023% PF 0 - - if (curr_file && Fpxb) // bugfix v.13.02.1 - { - if (E3pxm) { - ww = E3pxm->ww; - hh = E3pxm->hh; - } - else { - ww = Fpxb->ww; - hh = Fpxb->hh; - } - - bpc = curr_file_bpc; - - snprintf(text2,99," %dx%dx%d",ww,hh,bpc); // 2345x1234x16 (preview) 1.56MB 45% - strcat(text1,text2); - if (CEF && CEF->Fpreview) strncatv(text1,300," ",reduced,0); // v.13.04 - sprintf(text2," %.2fMB",file_MB); - strcat(text1,text2); - scale = Mscale * 100 + 0.5; - sprintf(text2," %d%c",scale,'%'); - strcat(text1,text2); - - if (URS_pos) { // edit undo/redo stack depth - snprintf(text2,99," %s: %d",ZTX("edits"),URS_pos); - strcat(text1,text2); - } - } - - if (sa_stat == 3) strncatv(text1,300," ",areaactive,0); - if (zfuncs::zdialog_busy) strncatv(text1,300," ",dialogopen,0); - - if (Ffuncbusy) strncatv(text1,300," ",funcbusy,0); // v.13.12 - if (Findexbusy) strncatv(text1,300," ",indexbusy,0); - if (Fmenulock) strncatv(text1,300," ",menulock,0); - - if (*SB_text) { // application text - strcat(text1," "); - strcat(text1,SB_text); - } - - if (strEqu(text1,ptext1)) return; // if no change, don't output v.13.10 - - stbar_message(cSbar,text1); // write to status bar - strcpy(ptext1,text1); - - return; -} - - -/**************************************************************************/ - -// process top-level menu entry - -void topmenufunc(GtkWidget *, cchar *menu) -{ - topmenu = (char *) menu; // remember top-level menu name - return; -} - - -// functions for main window event signals - -int delete_event() // main window closed -{ - int yn; - - printz("main window delete event \n"); - if (checkpend("mods")) return 1; // allow user bailout v.13.12 - if (zfuncs::zdialog_busy) { - yn = zmessageYN(mWin,ZTX("Kill active dialog?")); // allow user bailout v.14.01 - if (! yn) return 1; - } - quitxx(); - return 0; -} - -int destroy_event() // main window destroyed -{ - printz("main window destroy event \n"); - quitxx(); - return 0; -} - -int state_event(GtkWidget *, GdkEvent *event) // main window state changed -{ - int state = ((GdkEventWindowState *) event)->new_window_state; // track window fullscreen status - if (state & GDK_WINDOW_STATE_FULLSCREEN) Ffullscreen = 1; - else Ffullscreen = 0; - return 0; -} - - -/**************************************************************************/ - -// set window visible tab, F/G/W, under program control - -int forcetab = 0; - -int settab(cchar *tabname) -{ - int tab; - - if (strEqu(tabname,"F")) tab = tabF; - if (strEqu(tabname,"G")) tab = tabG; - if (strEqu(tabname,"W")) tab = tabW; - if (tab == cTab) return 1; // no change - - forcetab = 1; // programmed tab changes OK v.13.12 - gtk_notebook_set_current_page(GTK_NOTEBOOK(tabWin),tab); - return 1; -} - - -// tab button pressed, set new current tab from button - -int tabbutton(GtkWidget *, GdkEvent *, void *arg) -{ - int tab = *((int *) arg); - gtk_notebook_set_current_page(GTK_NOTEBOOK(tabWin),tab); - return 0; -} - - -// current tab has changed, by user or by function settab() above - -int tabchanged(GtkNotebook *, GtkWidget *, int tab, void *arg) // overhauled v.13.03 -{ - int tabrecover(void *); - - if (tab == cTab) return 0; // no tab change - - if (! forcetab) { // user tab change v.13.12 - if (checkpend("edit lock quiet")) { // not allowed - g_timeout_add(0,tabrecover,0); // schedule tab recover function - return 0; // (GTK does not work from here) - } - } - else forcetab = 0; - - if (tab == tabW) { // entering tab W - if (! init_geotags()) { // check world map available - g_timeout_add(0,tabrecover,0); // no, schedule tab recover function - return 0; // (does not work from here) - } - cTab = tab; - mwpC = &mwpW; // use tab W image/window parameters v.13.03 - cDwin = wDwin; // set drawing window, no status bar - cSbar = 0; - gdkWin = gtk_widget_get_window(cDwin); // GDK drawing window - gtk_window_set_title(MWIN,ZTX("Location from World Map")); // window title - m_geotag_worldmap(0,0); // activate clickable world map - mwpaint2(); - } - - if (tab == tabF) { // entering tab F - cTab = tab; - mwpC = &mwpF; // use tab F image/window parameters v.13.03 - cDwin = fDwin; // set drawing window and status bar - cSbar = fSbar; - gdkWin = gtk_widget_get_window(cDwin); // GDK drawing window - set_mwin_title(); // window title from image file - } - - if (tab == tabG) { // entering tab G - cTab = tab; - mwpC = 0; // no image/window parameters - cDwin = 0; // v.13.04 - gdkWin = 0; - cSbar = 0; - F1_help_topic = "navigation"; - if (curr_file) // v.13.03 - gallery(curr_file,"paint",curr_file_posn); - else gallery(0,"paint",-1); - } - - return 0; -} - - -// reset to prior tab after disallowed user change -// use: g_timeout_add(0,tabrecover,0) - -int tabrecover(void *) -{ - printz("tab change blocked %d \n",cTab); - gtk_notebook_set_current_page(GTK_NOTEBOOK(tabWin),cTab); - return 0; // don't come back -} - - -/**************************************************************************/ - -// GTK3 "draw" function for the main/drawing window, tab F and tab W. -// Paint window when created, exposed, resized, or image modified (edited). -// Update window image if scale change or window size change. -// Otherwise do only the draw function (was triggered from GTK). -// Draw the image section currently within the visible window. -// May NOT be called from threads. See mwpaint2() for threads. - -int mwpaint1(GtkWidget *cDwin, cairo_t *cr) -{ - GdkPixbuf *Dpxb; - uint8 *pixels; - static int pdww = 0, pdhh = 0; // prior window size - float wscale, hscale; - int fww, fhh; // current image size at 1x - int mww, mhh; // scaled image size - int centerx, centery; - int quitnow = 0; - int refresh = 0; // flag, full image refesh needed - int mousex, mousey; // mouse position after zoom - int rs; - float magx, magy; // mouse drag, magnification ratios - - if (Fshutdown) quitnow++; // shutdown underway - if (Fblankwindow) quitnow++; // blank window v.13.06 - if (! mwpC || ! mwpC->fpxb) quitnow++; // no image v.13.06 - if (! cDwin) quitnow++; // v.13.04 - if (! gdkWin) quitnow++; - - if (quitnow) { - Frefresh = 0; // reset paint request v.13.06 - return 0; - } - - if (mutex_trylock(&Fpixmap_lock) != 0) return 0; // cannot lock pixmaps (causes window blink) - - Dww = gdk_window_get_width(gdkWin); // (new) drawing window size - Dhh = gdk_window_get_height(gdkWin); - if (Dww < 20 || Dhh < 20) return 0; // too small - - if (Dww != pdww || Dhh != pdhh) { // window size changed - refresh++; // image refresh needed - pdww = Dww; - pdhh = Dhh; - } - - if (Frefresh) { // image refresh needed v.13.06 - if (cTab == tabF && (E0pxm || E3pxm)) { // insure tab F v.13.06 - PXB *pxb1; // update Fpxb from E0/E3 - if (E3pxm) pxb1 = PXM_PXB_copy(E3pxm); // use image now being edited - else pxb1 = PXM_PXB_copy(E0pxm); // or use already edited image - PXB_free(mwpC->fpxb); - mwpC->fpxb = pxb1; - } - refresh++; // full image refresh needed - } - - Frefresh = 0; // reset image paint request v.13.04 - - centerx = (mwpC->morgx + 0.5 * dww) / mwpC->mscale; // center of window, image space - centery = (mwpC->morgy + 0.5 * dhh) / mwpC->mscale; // (before window or scale change) - - fww = mwpC->fpxb->ww; // 1x image size - fhh = mwpC->fpxb->hh; - - if (mwpC->fzoom == 0) { // scale to fit window - wscale = 1.0 * Dww / fww; - hscale = 1.0 * Dhh / fhh; - if (wscale < hscale) mwpC->mscale = wscale; // use greatest ww/hh ratio - else mwpC->mscale = hscale; - if (fww <= Dww && fhh <= Dhh && ! Fblowup) mwpC->mscale = 1.0; // small image 1x unless Fblowup - zoomx = zoomy = 0; // no zoom target - } - else mwpC->mscale = mwpC->fzoom; // scale to fzoom level - - mww = fww * mwpC->mscale; // scaled image size for window - mhh = fhh * mwpC->mscale; - - dww = Dww; // image fitting inside drawing window - if (dww > mww) dww = mww; // image < window size - dhh = Dhh; - if (dhh > mhh) dhh = mhh; - - if (mwpC->mscale != mwpC->pscale) { // scale changed - mwpC->morgx = mwpC->mscale * centerx - 0.5 * dww; // change origin to keep same center - mwpC->morgy = mwpC->mscale * centery - 0.5 * dhh; // (subject to later rules) - mwpC->pscale = mwpC->mscale; // remember scale - refresh++; // full image refresh needed - } - - if (! mwpC->mpxb) refresh++; // v.13.01 - - if (refresh) { // image refresh needed - if (mwpC->mpxb) PXB_free(mwpC->mpxb); - if (mwpC->mscale == 1) mwpC->mpxb = PXB_copy(mwpC->fpxb); // fast 1x zoom - else mwpC->mpxb = PXB_rescale(mwpC->fpxb,mww,mhh); - } - - if ((Mxdrag || Mydrag)) { // pan/scroll via mouse drag - zoomx = zoomy = 0; // no zoom target - magx = 1.0 * (mww - dww) / dww; - magy = 1.0 * (mhh - dhh) / dhh; // needed magnification of mouse movement - if (magx < 1) magx = 1; // retain a minimum speed - if (magy < 1) magy = 1; - - if (Fdragopt == 1) { - mwpC->morgx -= round(Mwdragx); // same direction v.13.05 - mwpC->morgy -= round(Mwdragy); - } - if (Fdragopt == 2) { - mwpC->morgx += round(Mwdragx); // opposite direction - mwpC->morgy += round(Mwdragy); - } - if (Fdragopt == 3) { - mwpC->morgx -= round(Mwdragx * magx); // same direction, magnified - mwpC->morgy -= round(Mwdragy * magy); - } - if (Fdragopt == 4) { - mwpC->morgx += round(Mwdragx * magx); // opposite direction, magnified - mwpC->morgy += round(Mwdragy * magy); - } - } - - if (dww < Dww) mwpC->dorgx = 0.5 * (Dww - dww); // if scaled image width < window width - else mwpC->dorgx = 0; // center image in window - if (dhh < Dhh) mwpC->dorgy = 0.5 * (Dhh - dhh); - else mwpC->dorgy = 0; - - if (zoomx || zoomy) { // requested zoom center - mwpC->morgx = mwpC->mscale * zoomx - 0.5 * dww; // corresp. window position within image - mwpC->morgy = mwpC->mscale * zoomy - 0.5 * dhh; - } - - if (mwpC->morgx < 0) mwpC->morgx = 0; // maximize image within window - if (mwpC->morgy < 0) mwpC->morgy = 0; // (no unused margins) - if (mwpC->morgx + dww > mww) mwpC->morgx = mww - dww; - if (mwpC->morgy + dhh > mhh) mwpC->morgy = mhh - dhh; - - if (zoomx || zoomy) { // zoom target - mousex = zoomx * mwpC->mscale - mwpC->morgx + mwpC->dorgx; - mousey = zoomy * mwpC->mscale - mwpC->morgy + mwpC->dorgy; // mouse pointer follows target - move_pointer(cDwin,mousex,mousey); - zoomx = zoomy = 0; // reset zoom target - } - - pixels = PXBpix(mwpC->mpxb,mwpC->morgx,mwpC->morgy); // mpxb image section within drawing window - rs = mwpC->mpxb->rs; // (morgx/y, dww/hh, rowstride rs) - Dpxb = gdk_pixbuf_new_from_data(pixels,GDKRGB,0,8,dww,dhh,rs,0,0); // make a pixbuf from section - - gdk_cairo_set_source_pixbuf(cr,Dpxb,mwpC->dorgx,mwpC->dorgy); // paint mpxb image section - cairo_paint(cr); - g_object_unref(Dpxb); - - mwcr = cr; // cairo context for draw funcs below - cairo_set_line_width(mwcr,1); - - if (mwpC == &mwpF) { // V.13.06 - if (Ntoplines) draw_toplines(1); // draw line overlays - if (gridsettings[currgrid][GON]) draw_gridlines(); // draw grid lines - if (Ntoptext) draw_toptext(); // draw text strings - if (Ntopcircles) draw_topcircles(); // draw circles - if (Fshowarea) sa_show(1); // draw select area outline - } - - mwcr = 0; // cairo context invalid - mutex_unlock(&Fpixmap_lock); // unlock pixmaps - - if (refresh) { - if (zdhistogram) m_histogram(0,0); // update image histogram v.13.02 - if (zddarkbrite) zdialog_send_event(zddarkbrite,"update"); // update dark/bright pixel display v.13.11 - } - - return 0; -} - - -/**************************************************************************/ - -// Cause (modified) output image to get repainted soon. -// Same as mwpaint1() but delayed. MAY be called from threads. -// mwpaint1() will be called by gtimefunc() next timer cycle. - -void mwpaint2() -{ - Frefresh++; - return; -} - - -// Repaint modified image synchrounously. -// May NOT be called from threads. - -void mwpaintnow() // v.13.04 -{ - if (! cDwin || ! gdkWin) return; - - Frefresh++; // v.13.06 - - while (mutex_trylock(&Fpixmap_lock) != 0) zsleep(0.02); // wait for thread to unlock - mutex_unlock(&Fpixmap_lock); // (mwpaint1 will lock) - - mwcr = gdk_cairo_create(gdkWin); - gdk_window_set_background_rgba(gdkWin,&GDKblack); // background for F and W tabs v.14.02 - mwpaint1(cDwin,mwcr); - cairo_destroy(mwcr); - mwcr = 0; - return; -} - - -// Update a section of fpxb and mpxb from an updated section of E3pxm, -// then update the corresponding section of the drawing window. -// This avoids a full image refresh, E3pxm > fpxb > mpxb > drawing window. -// px3, py3, ww3, hh3: modified section within E3pxm to be propagated. -// May NOT be called from threads. - -void mwpaint3(int px3, int py3, int ww3, int hh3) -{ - PXM_PXB_update(E3pxm,Fpxb,px3,py3,ww3,hh3); // E3pxm > Fpxb, both 1x scale - PXB_PXB_update(Fpxb,Mpxb,px3,py3,ww3,hh3); // Fpxb > Mpxb, scaled up or down - mwpaint4(px3,py3,ww3,hh3); // update drawing window from Mpxb - return; -} - - -// Repaint a section of the mpxb image in the visible window. -// px3, py3, ww3, hh3: area to be repainted (in 1x image space). -// May NOT be called from threads. - -void mwpaint4(int px3, int py3, int ww3, int hh3) -{ - GdkPixbuf *pixbuf; - uint8 *pixels; - int px2, py2, ww2, hh2, rs; - int crflag = 0; - - if (! gdkWin) return; - - px2 = Mscale * px3 - 2; // 1x image space to mpxb space - py2 = Mscale * py3 - 2; // (expanded) - ww2 = Mscale * ww3 + 2 / Mscale + 4; - hh2 = Mscale * hh3 + 2 / Mscale + 4; - - if (px2 + ww2 > Mpxb->ww) ww2 = Mpxb->ww - px2; // avoid overshoot - if (py2 + hh2 > Mpxb->hh) hh2 = Mpxb->hh - py2; - - if (px2 < Morgx) { // reduce to currently visible window - ww2 = ww2 - (Morgx - px2); - px2 = Morgx; - } - - if (py2 < Morgy) { - hh2 = hh2 - (Morgy - py2); - py2 = Morgy; - } - - if (ww2 <= 0 || hh2 <= 0) return; // completely outside visible window - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - crflag = 1; - } - - pixels = PXBpix(Mpxb,px2,py2); - rs = Mpxb->rs; // row stride - pixbuf = gdk_pixbuf_new_from_data(pixels,GDKRGB,0,8,ww2,hh2,rs,0,0); // pixbuf for image within window - - px2 = px2 - Morgx + Dorgx; // section position in window - py2 = py2 - Morgy + Dorgy; - - gdk_cairo_set_source_pixbuf(mwcr,pixbuf,px2,py2); // draw area to window - cairo_paint(mwcr); - g_object_unref(pixbuf); - - if (Fshowarea) { - px3 = (px2 - Dorgx + Morgx) / Mscale; // back to image scale, expanded - py3 = (py2 - Dorgy + Morgy) / Mscale; - ww3 = ww2 / Mscale + 2; - hh3 = hh2 / Mscale + 2; - sa_show_rect(px3,py3,ww3,hh3); // refresh select area outline - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -/**************************************************************************/ - -// mouse event function - capture buttons and drag movements - -void mouse_event(GtkWidget *widget, GdkEventButton *event, void *) -{ - void mouse_convert(int xpos1, int ypos1, int &xpos2, int &ypos2); - - int button, time, type, scroll; - static int bdtime = 0, butime = 0, mbusy = 0; - static int mdragx0, mdragy0; - - if (! mwpC || ! mwpC->fpxb) return; // v.13.06 - - type = event->type; - button = event->button; // button, 1/2/3 = left/center/right - time = event->time; - Mwxposn = event->x; // mouse position in window - Mwyposn = event->y; - mouse_convert(Mwxposn,Mwyposn,Mxposn,Myposn); // convert to image space - - scroll = ((GdkEventScroll *) event)->direction; // scroll wheel event - - KBcontrolkey = KBshiftkey = KBaltkey = 0; - if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; // v.13.08 - if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; - if (event->state & GDK_MOD1_MASK) KBaltkey = 1; - - if (type == GDK_SCROLL) { // scroll wheel = zoom - zoomx = Mxposn; // zoom center = mouse position - zoomy = Myposn; - if (scroll == GDK_SCROLL_UP) m_zoom(null,"in"); - if (scroll == GDK_SCROLL_DOWN) m_zoom(null,"out"); - return; - } - - if (type == GDK_MOTION_NOTIFY) { - if (mbusy) return; // discard excess motion events - mbusy++; - zmainloop(); - mbusy = 0; - } - - if (type == GDK_BUTTON_PRESS) { // button down - Mdrag++; // possible drag start - bdtime = time; // time of button down - Mbutton = button; - mdragx0 = Mwxposn; // window position at button down - mdragy0 = Mwyposn; - Mxdown = Mxposn; // image position at button down - Mydown = Myposn; - Mxdrag = Mydrag = 0; - } - - if (type == GDK_MOTION_NOTIFY && Mdrag) { // drag underway - Mwdragx = Mwxposn - mdragx0; // drag increment, window space - Mwdragy = Mwyposn - mdragy0; - mdragx0 = Mwxposn; // new drag origin = current position - mdragy0 = Mwyposn; - Mxdrag = Mxposn; // drag position, image space - Mydrag = Myposn; - } - - if (type == GDK_BUTTON_RELEASE) { // button up - Mxclick = Myclick = 0; // reset click status - butime = time; // time of button up - if (butime - bdtime < 400) { // less than 0.4 secs down - if (Mxposn == Mxdown && Myposn == Mydown) { // and not moving - if (Mbutton == 1) LMclick++; // left mouse click - if (Mbutton == 3) RMclick++; // right mouse click - Mxclick = Mxdown; // click = button down position - Myclick = Mydown; - if (button == 2) { // center button click - zoomx = Mxposn; // re-center at mouse (Doriano) - zoomy = Myposn; - gtk_widget_queue_draw(cDwin); - } - } - } - Mxdown = Mydown = Mxdrag = Mydrag = Mdrag = Mbutton = 0; // forget buttons and drag - } - - Fmousemain = 1; // mouse acts on main window - if (Mcapture) Fmousemain = 0; // curr. function handles mouse - if (mouseCBfunc) Fmousemain = 0; // mouse owned by callback function - if (KBcontrolkey) Fmousemain = 1; // mouse acts on main window - - if (mutex_trylock(&Fpixmap_lock) != 0) return; // block mouse if image transition - mutex_unlock(&Fpixmap_lock); // moved here - - if (mouseCBfunc && ! Fmousemain) { // pass to handler function - if (mbusy) return; - mbusy++; // stop re-entrance - (* mouseCBfunc)(); - mbusy = 0; - Fmousemain = 1; // click/drag params are processed - } // if not reset by handler func. - - if (! Fmousemain) return; // curr. function handles mouse - - if (LMclick) { // left click = zoom request - LMclick = 0; - zoomx = Mxclick; // zoom center = mouse - zoomy = Myclick; - m_zoom(null,"in"); - } - - if (RMclick) { // right click - RMclick = 0; - if (mwpC->fzoom) { // if zoomed image, reset to fit window - zoomx = zoomy = 0; - m_zoom(null,"fit"); - } - else if (curr_file && cTab == tabF) - image_Rclick_popup(curr_file_posn); // image right-click popup menu - } - - if ((Mxdrag || Mydrag)) // drag = scroll by mouse - gtk_widget_queue_draw(cDwin); - - return; -} - - -// convert mouse position from window space to image space - -void mouse_convert(int xpos1, int ypos1, int &xpos2, int &ypos2) -{ - xpos2 = (xpos1 - mwpC->dorgx + mwpC->morgx) / mwpC->mscale + 0.5; - ypos2 = (ypos1 - mwpC->dorgy + mwpC->morgy) / mwpC->mscale + 0.5; - - if (xpos2 < 0) xpos2 = 0; // if outside image put at edge - if (ypos2 < 0) ypos2 = 0; - - if (E3pxm) { - if (xpos2 >= E3pxm->ww) xpos2 = E3pxm->ww-1; - if (ypos2 >= E3pxm->hh) ypos2 = E3pxm->hh-1; - } - else { - if (xpos2 >= mwpC->fpxb->ww) xpos2 = mwpC->fpxb->ww-1; - if (ypos2 >= mwpC->fpxb->hh) ypos2 = mwpC->fpxb->hh-1; - } - - return; -} - - -/**************************************************************************/ - -// set new image zoom level or magnification -// zoom: "in" zoom in in steps -// "out" zoom out in steps -// "fit" zoom out to fit window -// "100" toggle 100% and fit window - -void m_zoom(GtkWidget *, cchar *zoom) -{ - int fww, fhh; - float scalew, scaleh, fitscale, fzoom2, zratio = 1; - float Rzoom, pixels; - - if (! mwpC || ! mwpC->fpxb) return; // v.13.06 - - Rzoom = mwpC->fzoom; // current zoom ratio - - if (E3pxm) { - fww = E3pxm->ww; // 1x image size - fhh = E3pxm->hh; - } - else { - fww = mwpC->fpxb->ww; - fhh = mwpC->fpxb->hh; - } - - if (fww > Dww || fhh > Dhh) { // get window fit scale - scalew = 1.0 * Dww / fww; - scaleh = 1.0 * Dhh / fhh; - if (scalew < scaleh) fitscale = scalew; - else fitscale = scaleh; // window/image, < 1.0 - } - else fitscale = 1.0; // if image < window use 100% - - if (strEqu(zoom,"Zoom+")) zoom = "in"; // toolbar button: + = zoom in - if (strEqu(zoom,"Zoom-")) zoom = "fit"; // - = fit window - - if (strEqu(zoom,"fit")) mwpC->fzoom = 0; // zoom to fit window - - if (strEqu(zoom,"100")) { - if (mwpC->fzoom != 0) mwpC->fzoom = 0; // toggle 100% and fit window - else mwpC->fzoom = 1; - } - - if (strstr("in out",zoom)) // caller: zoom in or out - { - if (! mwpC->fzoom) mwpC->fzoom = fitscale; // current zoom scale - for (fzoom2 = 0.125; fzoom2 < 4.0; fzoom2 *= zoomratio) // find nearest natural ratio - if (mwpC->fzoom < fzoom2 * sqrt(zoomratio)) break; - if (strEqu(zoom,"in")) zratio = zoomratio; // zoom in, make image larger - if (strEqu(zoom,"out")) zratio = 1.0 / zoomratio; // zoom out, make image smaller - mwpC->fzoom = fzoom2 * zratio; - if (mwpC->fzoom > 0.124 && mwpC->fzoom < 0.126) mwpC->fzoom = 0.125; // hit these ratios exactly - if (mwpC->fzoom > 0.24 && mwpC->fzoom < 0.26) mwpC->fzoom = 0.25; - if (mwpC->fzoom > 0.49 && mwpC->fzoom < 0.51) mwpC->fzoom = 0.50; - if (mwpC->fzoom > 0.99 && mwpC->fzoom < 1.01) mwpC->fzoom = 1.00; - if (mwpC->fzoom > 1.99 && mwpC->fzoom < 2.01) mwpC->fzoom = 2.00; - if (mwpC->fzoom > 3.99) mwpC->fzoom = 4.0; // max. allowed zoom - if (mwpC->fzoom < fitscale) mwpC->fzoom = 0; // image < window - } - - if (cTab == tabW) { // optimize for world map - if (strEqu(zoom,"in")) mwpC->fzoom = 1.0; // zoom to 100% directly - if (strEqu(zoom,"out")) mwpC->fzoom = 0.0; // zoom out = fit window directly v.13.10 - if (mwpC->fzoom == 1.0 && Rzoom == 1.0) { - gtk_widget_queue_draw(cDwin); // if already, move mouse pointer only - return; - } - } - - if (mwpC->fzoom > 1.0) { // limit image in window to 1 gigabyte - pixels = mwpC->fzoom * fww * mwpC->fzoom * fhh; // (333 megapixels x 3 bytes/pixel) - if (pixels > 333 * mega) { // if size is at maximum, - mwpC->fzoom = Rzoom; // move mouse pointer only - gtk_widget_queue_draw(cDwin); - return; - } - } - - if (! mwpC->fzoom) zoomx = zoomy = 0; // no requested zoom center - mwpaint2(); // refresh window - return; -} - - -/**************************************************************************/ - -// function for dialogs to call to send KB keys for processing by main app - -void KBstate(GdkEventKey *event, int state) -{ - if (state) KBpress(0,event,0); - else KBrelease(0,event,0); - return; -} - - -// keyboard event functions -// GDK key symbols: /usr/include/gtk-3.0/gdk/gdkkeysyms.h - -int KBpress(GtkWidget *win, GdkEventKey *event, void *) // prevent propagation of key-press -{ // events to toolbar buttons - KBkey = event->keyval; - - KBcontrolkey = KBshiftkey = KBaltkey = 0; - if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; // v.13.08 - if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; - if (event->state & GDK_MOD1_MASK) KBaltkey = 1; - - return 1; -} - - -int KBrelease(GtkWidget *win, GdkEventKey *event, void *) // some key was released -{ - int ii, jj, cc; - char matchkey[20]; - - KBkey = event->keyval; - - KBcontrolkey = KBshiftkey = KBaltkey = 0; - if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; // v.13.08 - if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; - if (event->state & GDK_MOD1_MASK) KBaltkey = 1; - - if (! KBcontrolkey && ! KBshiftkey && ! KBaltkey) { // F/G/W keys are tab shortcuts - if (KBkey == GDK_KEY_f) { settab("F"); goto KBend; } // Ctrl/Alt + F/G/W can be used - if (KBkey == GDK_KEY_g) { settab("G"); goto KBend; } // for custom shortcuts - if (KBkey == GDK_KEY_w) { settab("W"); goto KBend; } - } - - if (KBcapture) return 1; // let current function handle it - -// reserved shortcuts (not user configurable) - - if (KBkey == GDK_KEY_F1) { // F1 >> user guide - showz_userguide(F1_help_topic); // show topic if there, or page 1 - goto KBend; - } - - if (KBkey == GDK_KEY_F11) { // F11 >> toggle main window - if (! Ffullscreen) win_fullscreen(); // to full-screen mode and back - else win_unfullscreen(); - if (Fslideshow) m_slideshow(0,0); // quit slideshow if active - goto KBend; - } - - if (KBkey == GDK_KEY_Escape && Ffullscreen) { // ESC key >> exit full screen - win_unfullscreen(); - if (Fslideshow) m_slideshow(0,0); // quit slideshow if active - goto KBend; - } - - if (cTab == tabG) { // tab G is active, - navi::KBrelease(win,event,0); // pass to gallery KB function - goto KBend; // (keys below not for gallery) - } - - if (KBkey == GDK_KEY_z || KBkey == GDK_KEY_Z) { // Z key - if (! KBcontrolkey) m_zoom(null,"100"); // if no CTRL, toggle zoom 1x - goto KBend; - } - - if (cTab == tabW) goto KBend; // tab W active, no other KB events - - if (KBkey == GDK_KEY_plus) m_zoom(null,"in"); // + key >> zoom in - if (KBkey == GDK_KEY_minus) m_zoom(null,"fit"); // - key >> fit to window - if (KBkey == GDK_KEY_equal) m_zoom(null,"in"); // = key: same as + - if (KBkey == GDK_KEY_KP_Add) m_zoom(null,"in"); // keypad + - if (KBkey == GDK_KEY_KP_Subtract) m_zoom(null,"fit"); // keypad - - - if (Fslideshow) { // slide show mode - if (KBkey == GDK_KEY_Left) slideshow_next("prev"); // arrow keys = prev/next image - if (KBkey == GDK_KEY_Right) slideshow_next("next"); - if (KBkey == GDK_KEY_space) slideshow_next("pause"); // spacebar = pause/resume - if (KBkey == GDK_KEY_B || KBkey == GDK_KEY_b) - slideshow_next("blank"); // B key = blank screen + pause - goto KBend; - } - - if (CEF && CEF->menufunc == m_mashup) { // mashup active, pass KB key v.13.12 - mashup::KBfunc(KBkey); - goto KBend; - } - - if (KBkey == GDK_KEY_Left) m_prev(0,0); // arrow keys = prev/next image - if (KBkey == GDK_KEY_Right) m_next(0,0); - if (KBkey == GDK_KEY_Page_Up) m_prev(0,0); // page up/down = prev/next image - if (KBkey == GDK_KEY_Page_Down) m_next(0,0); - - if (KBkey == GDK_KEY_Delete) m_trash(0,0); // delete >> trash - -// look for configurable shortcut keys in shortcut table - - if (KBkey >= GDK_KEY_F1 && KBkey <= GDK_KEY_F9) { // input key is F1 to F9 - ii = KBkey - GDK_KEY_F1; - strcpy(matchkey,"F1"); - matchkey[1] += ii; - } - - else if (KBkey > 255) goto KBend; // not a single letter or digit - - else { - *matchkey = 0; // build input key combination - if (KBcontrolkey) strcat(matchkey,"Ctrl+"); // [Ctrl+] [Alt+] [Shift+] key - if (KBaltkey) strcat(matchkey,"Alt+"); - if (KBshiftkey) strcat(matchkey,"Shift+"); - cc = strlen(matchkey); - matchkey[cc] = KBkey; - matchkey[cc+1] = 0; - } - - for (ii = 0; ii < Nshortcuts; ii++) // convert key combination to menu name - if (strcasecmp(matchkey,shortcutkey[ii]) == 0) break; - - if (ii < Nshortcuts) { // convert menu name to menu function - for (jj = 0; jj < Nmenus; jj++) - if (strcasecmp(shortcutmenu[ii],ZTX(menutab[jj].menu)) == 0) break; - if (jj < Nmenus) menutab[jj].func(0,menutab[jj].arg); // call the menu function - } - -KBend: - KBkey = 0; - return 1; -} - - -/**************************************************************************/ - -// set the main window to fullscreen status -// (with no menu, toolbar, statusbar) - -void win_fullscreen() -{ - if (fMenu) gtk_widget_hide(fMenu); // remove menu, toolbar, status bar - if (fTbar) gtk_widget_hide(fTbar); - if (fSbar) gtk_widget_hide(fSbar); - if (fVMenu) gtk_widget_hide(fVMenu); // vertical menu/toolbar v.13.03 - - gtk_window_fullscreen(MWIN); - - for (int ii = 0; ii < 20; ii++) { // wait for window manager to act - zmainloop(); - if (Ffullscreen) break; - zsleep(0.1); - } - - return; -} - - -// restore window to former size and restore menu etc. - -void win_unfullscreen() -{ - gtk_window_unfullscreen(MWIN); // restore old window size - gtk_widget_show_all(tabWin); // show all menus and toolbars - Ffullscreen = 0; - return; -} - - -/**************************************************************************/ - -// draw a pixel using foreground color. -// px, py are image space. - -void draw_pixel(int px, int py) -{ - int qx, qy, crflag = 0; - static int pqx, pqy; - static uint8 pixel[12]; // 2x2 block of pixels - static GdkPixbuf *pixbuf1 = 0, *pixbuf4 = 0; - - if (! gdkWin) return; - - if (! pixbuf1) { - pixbuf1 = gdk_pixbuf_new_from_data(pixel,GDKRGB,0,8,1,1,3,0,0); // 1x1 pixels - pixbuf4 = gdk_pixbuf_new_from_data(pixel,GDKRGB,0,8,2,2,6,0,0); // 2x2 pixels - } - - qx = Mscale * px - Morgx; // image to window space - qy = Mscale * py - Morgy; - - if (qx == pqx && qy == pqy) return; // avoid redundant points - - pqx = qx; - pqy = qy; - - if (qx < 0 || qx > dww-2) return; // keep off image edges - if (qy < 0 || qy > dhh-2) return; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - crflag = 1; - } - - if (Mscale < 1.99) { // write 1x1 pixels - pixel[0] = fg_color[0]; - pixel[1] = fg_color[1]; - pixel[2] = fg_color[2]; - - gdk_cairo_set_source_pixbuf(mwcr,pixbuf1,qx+Dorgx,qy+Dorgy); - cairo_paint(mwcr); - } - - else { // write 2x2 fat pixels - pixel[0] = pixel[3] = pixel[6] = pixel[9] = fg_color[0]; - pixel[1] = pixel[4] = pixel[7] = pixel[10] = fg_color[1]; - pixel[2] = pixel[5] = pixel[8] = pixel[11] = fg_color[2]; - - gdk_cairo_set_source_pixbuf(mwcr,pixbuf4,qx+Dorgx,qy+Dorgy); - cairo_paint(mwcr); - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -// erase one drawn pixel - restore from window image mpxb. -// px, py are image space. - -void erase_pixel(int px, int py) -{ - static PXB *pxb2 = 0; - static uint8 *pix1, *pix2; - static int rs2, pqx, pqy; - int qx, qy, crflag = 0; - - if (! gdkWin) return; - - if (! pxb2) { - pxb2 = PXB_make(2,2); // 2x2 pixbuf - pix2 = pxb2->pixels; - rs2 = pxb2->rs; - } - - qx = Mscale * px; // image to window space - qy = Mscale * py; - - if (qx == pqx && qy == pqy) return; // avoid same target pixel - - pqx = qx; - pqy = qy; - - if (qx < 0 || qx > Mpxb->ww-2) return; // pixel outside scaled image - if (qy < 0 || qy > Mpxb->hh-2) return; - - if (qx < Morgx || qx > Morgx + dww-2) return; // pixel outside drawing window - if (qy < Morgy || qy > Morgy + dhh-2) return; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - crflag = 1; - } - - pix1 = PXBpix(Mpxb,qx,qy); // source pixels, 2x2 block - memcpy(pix2,pix1,6); // copy 2 upper pixels, 6 bytes - memcpy(pix2+rs2,pix1+Mpxb->rs,6); // copy 2 lower pixels - - qx = qx - Morgx + Dorgx; // target pixel in window - qy = qy - Morgy + Dorgy; - gdk_cairo_set_source_pixbuf(mwcr,pxb2->pixbuf,qx,qy); - cairo_paint(mwcr); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -/**************************************************************************/ - -// draw line. -// coordinates are image space. - -void draw_line(int x1, int y1, int x2, int y2) -{ - float px1, py1, px2, py2; - int crflag = 0; - - if (! gdkWin) return; - - px1 = Mscale * x1 - Morgx + Dorgx; // image to window space - py1 = Mscale * y1 - Morgy + Dorgy; - px2 = Mscale * x2 - Morgx + Dorgx; - py2 = Mscale * y2 - Morgy + Dorgy; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - cairo_set_source_rgb(mwcr,1,1,1); - cairo_move_to(mwcr,px1,py1); - cairo_line_to(mwcr,px2,py2); - cairo_stroke(mwcr); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -// draw dotted line. -// coordinates are image space. - -void draw_dotline(int x1, int y1, int x2, int y2) -{ - float px1, py1, px2, py2; - double dashes[2] = { 4, 4 }; - int crflag = 0; - - if (! gdkWin) return; - - px1 = Mscale * x1 - Morgx + Dorgx; // image to window space - py1 = Mscale * y1 - Morgy + Dorgy; - px2 = Mscale * x2 - Morgx + Dorgx; - py2 = Mscale * y2 - Morgy + Dorgy; - - if (px1 > Dww-2) px1 = Dww-2; - if (py1 > Dhh-2) py1 = Dhh-2; - if (px2 > Dww-2) px2 = Dww-2; - if (py2 > Dhh-2) py2 = Dhh-2; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - else cairo_save(mwcr); - - cairo_set_source_rgb(mwcr,1,1,1); - cairo_set_dash(mwcr,dashes,2,0); - cairo_move_to(mwcr,px1,py1); - cairo_line_to(mwcr,px2,py2); - cairo_stroke(mwcr); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - else cairo_restore(mwcr); - - return; -} - - -// erase line. refresh line path from mpxb window image. -// double line width is erased. -// coordinates are image space. - -void erase_line(int x1, int y1, int x2, int y2) -{ - float pxm, pym, slope; - int crflag = 0; - - if (! gdkWin) return; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - crflag = 1; - } - - if (abs(y2 - y1) > abs(x2 - x1)) { - slope = 1.0 * (x2 - x1) / (y2 - y1); - for (pym = y1; pym <= y2; pym++) { - pxm = x1 + slope * (pym - y1); - erase_pixel(pxm,pym); - } - } - - else { - slope = 1.0 * (y2 - y1) / (x2 - x1); - for (pxm = x1; pxm <= x2; pxm++) { - pym = y1 + slope * (pxm - x1); - erase_pixel(pxm,pym); - } - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -/**************************************************************************/ - -// draw pre-set overlay lines on top of image -// arg = 1: paint lines only (because window repainted) -// 2: erase lines and forget them -// 3: erase old lines, paint new lines, save new in old - -void draw_toplines(int arg) -{ - int ii, crflag = 0; - - if (! gdkWin) return; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - if (arg == 2 || arg == 3) // erase old lines - for (ii = 0; ii < Nptoplines; ii++) - erase_line(ptoplinex1[ii],ptopliney1[ii],ptoplinex2[ii],ptopliney2[ii]); - - if (arg == 1 || arg == 3) // draw new lines - for (ii = 0; ii < Ntoplines; ii++) - draw_dotline(toplinex1[ii],topliney1[ii],toplinex2[ii],topliney2[ii]); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - if (arg == 2) { - Nptoplines = Ntoplines = 0; // forget lines - return; - } - - for (ii = 0; ii < Ntoplines; ii++) // save for future erase - { - ptoplinex1[ii] = toplinex1[ii]; - ptopliney1[ii] = topliney1[ii]; - ptoplinex2[ii] = toplinex2[ii]; - ptopliney2[ii] = topliney2[ii]; - } - - Nptoplines = Ntoplines; - - return; -} - - -/**************************************************************************/ - -// draw a grid of horizontal and vertical lines. -// grid line spacings are in window space. - -void draw_gridlines() -{ - int crflag = 0, G = currgrid; - int px, py, gww, ghh; - int startx, starty, endx, endy, stepx, stepy; - int startx1, starty1; - - if (! gdkWin) return; - if (! Fpxb) return; // no image - if (! gridsettings[G][GON]) return; // grid lines off - - gww = dww; // grid box size - ghh = dhh; - startx = Dorgx; // starting corner (top left) - starty = Dorgy; - - if (CEF && strEqu(CEF->funcname,"trim_rotate")) { // trim/rotate function is active v.13.11 - gww = Mscale * (trimrect[2] - trimrect[0]); // fit grid box to trim rectangle - ghh = Mscale * (trimrect[3] - trimrect[1]); - startx = Mscale * trimrect[0] - Morgx + Dorgx; - starty = Mscale * trimrect[1] - Morgy + Dorgy; - } - - endx = startx + gww; - endy = starty + ghh; - - stepx = gridsettings[G][GXS]; // space between grid lines - stepy = gridsettings[G][GYS]; // (window space) - - if (gridsettings[G][GXC]) - stepx = gww / (1 + gridsettings[G][GXC]); // if line counts specified, - if (gridsettings[G][GYC]) // set spacing accordingly - stepy = ghh / ( 1 + gridsettings[G][GYC]); - - startx1 = startx + stepx * gridsettings[G][GXF] / 100; // variable starting offsets - starty1 = starty + stepy * gridsettings[G][GYF] / 100; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - cairo_set_source_rgb(mwcr,1,1,1); // white lines - - if (gridsettings[G][GX] && stepx) - for (px = startx1; px < endx; px += stepx) { - cairo_move_to(mwcr,px,starty); - cairo_line_to(mwcr,px,endy); - } - - if (gridsettings[G][GY] && stepy) - for (py = starty1; py < endy; py += stepy) { - cairo_move_to(mwcr,startx,py); - cairo_line_to(mwcr,endx,py); - } - - cairo_stroke(mwcr); - - cairo_set_source_rgb(mwcr,0,0,0); // adjacent black lines - - if (gridsettings[G][GX] && stepx) - for (px = startx1+1; px < endx+1; px += stepx) { - cairo_move_to(mwcr,px,starty); - cairo_line_to(mwcr,px,endy); - } - - if (gridsettings[G][GY] && stepy) - for (py = starty1+1; py < endy+1; py += stepy) { - cairo_move_to(mwcr,startx,py); - cairo_line_to(mwcr,endx,py); - } - - cairo_stroke(mwcr); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -/**************************************************************************/ - -// maintain a set of text strings written over the image in the window. -// add a new text string to the list. -// multiple text strings can be added with the same ID. -// px and py are image space. - -void add_toptext(int ID, int px, int py, cchar *text, cchar *font) -{ - if (Ntoptext == maxtoptext) { - printz("*** maxtoptext exceeded \n"); - return; - } - - int ii = Ntoptext++; - toptext[ii].ID = ID; - toptext[ii].px = px; - toptext[ii].py = py; - toptext[ii].text = text; - toptext[ii].font = font; - - return; -} - - -// draw current text strings over the image in window. -// called from mwpaint1(). - -void draw_toptext() -{ - int crflag = 0; - - if (! gdkWin) return; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - for (int ii = 0; ii < Ntoptext; ii++) - draw_text(toptext[ii].px,toptext[ii].py,toptext[ii].text,toptext[ii].font); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -// delete text strings having the given ID from the list - -void erase_toptext(int ID) -{ - int ii, jj; - - for (ii = jj = 0; ii < Ntoptext; ii++) - { - if (toptext[ii].ID == ID) continue; - else toptext[jj++] = toptext[ii]; - } - - Ntoptext = jj; - return; -} - - -// draw text on window, black on white background -// coordinates are image space - -void draw_text(int px, int py, cchar *text, cchar *font) -{ - static PangoFontDescription *pangofont = null; - static PangoLayout *pangolayout = null; - static char priorfont[40] = ""; - int ww, hh, crflag = 0; - - if (! gdkWin) return; - - px = Mscale * px - Morgx + Dorgx; // image to window space - py = Mscale * py - Morgy + Dorgy; - - if (strNeq(font,priorfont)) { // change font - strncpy0(priorfont,font,40); - if (pangofont) pango_font_description_free(pangofont); - if (pangolayout) g_object_unref(pangolayout); - pangofont = pango_font_description_from_string(font); // make pango layout for font - pangolayout = gtk_widget_create_pango_layout(cDwin,0); - pango_layout_set_font_description(pangolayout,pangofont); - } - - pango_layout_set_text(pangolayout,text,-1); // add text to layout - pango_layout_get_pixel_size(pangolayout,&ww,&hh); - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - cairo_set_source_rgb(mwcr,1,1,1); // draw white background - cairo_rectangle(mwcr,px,py,ww,hh); - cairo_fill(mwcr); - - cairo_move_to(mwcr,px,py); // draw layout with text - cairo_set_source_rgb(mwcr,0,0,0); - pango_cairo_show_layout(mwcr,pangolayout); - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -/**************************************************************************/ - -// maintain a set of circles drawn over the image in the window -// px, py are image space, radius is window space -// color = 1/2/3/4 = white/black/red/green - -void add_topcircle(int px, int py, int radius, int color) -{ - if (Ntopcircles == maxtopcircles) { - printz("*** maxtopcircles exceeded \n"); - return; - } - - int ii = Ntopcircles++; - topcircles[ii].px = px; - topcircles[ii].py = py; - topcircles[ii].radius = radius; - topcircles[ii].color = color; - - return; -} - - -// draw current circles over the image in the window -// called from mwpaint1() - -void draw_topcircles() -{ - int ii, px, py, rad, color; - int crflag = 0; - - if (! gdkWin) return; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - cairo_set_line_width(mwcr,1); - crflag = 1; - } - - for (ii = 0; ii < Ntopcircles; ii++) - { - px = topcircles[ii].px * Mscale - Morgx + Dorgx; // image to window space - py = topcircles[ii].py * Mscale - Morgy + Dorgy; - rad = topcircles[ii].radius; // radius is window space - color = topcircles[ii].color; // 1/2/3/4 = white/black/red/green - - if (color == 1) cairo_set_source_rgb(mwcr,1,1,1); // set foreground color - else if (color == 2) cairo_set_source_rgb(mwcr,0,0,0); - else if (color == 3) cairo_set_source_rgb(mwcr,1,0,0); - else cairo_set_source_rgb(mwcr,0,1,0); - - cairo_arc(mwcr,px,py,rad,0,2*pi); // draw 360 deg. arc - cairo_stroke(mwcr); - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - return; -} - - -// erase top circles (next window repaint) - -void erase_topcircles() -{ - Ntopcircles = 0; - return; -} - - -/**************************************************************************/ - -// Draw circle/ellipse around the mouse pointer. -// Prior circle/ellipse will be erased first. -// Used for mouse/brush radius in select and paint functions. -// cx, cy, ww, hh: center and axes of ellipse (circle: ww = hh) -// if Ferase, then erase previous circle/ellipse only. - -void draw_mousearc(int cx, int cy, int cww, int chh, int Ferase) // simplified v.14.03 -{ - int px3, py3, ww3, hh3; - static int ppx3, ppy3, pww3 = 0, phh3; - int px, py; - int crflag = 0; - float a, b, a2, b2; - float x, y, x2, y2; - - zthreadcrash(); - if (! gdkWin) return; - - gdk_window_freeze_updates(gdkWin); // visually smoother v.14.02 - - if (pww3 > 0) { // erase prior - mwpaint4(ppx3,ppy3,pww3,phh3); // refresh from Mpxb - pww3 = 0; - } - - if (Ferase) { - gdk_window_thaw_updates(gdkWin); // erase only was wanted - return; - } - - px3 = cx - (cww + 2) / 2; // convert pointer center + radius - py3 = cy - (chh + 2) / 2; // to block position, width, length - ww3 = cww + 2; - hh3 = chh + 2; - - ppx3 = px3; // remember pixel block area - ppy3 = py3; // to erase in next call - pww3 = ww3; - phh3 = hh3; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - crflag = 1; - } - - a = cww / 2; // ellipse constants from - b = chh / 2; // enclosing rectangle - a2 = a * a; - b2 = b * b; - - for (y = -b; y < b; y++) // step through y values, omitting - { // curve points covered by x values - y2 = y * y; - x2 = a2 * (1 - y2 / b2); - x = sqrtf(x2); // corresp. x values, + and - - py = y + cy; - px = cx - x + 0.5; - draw_pixel(px,py); // draw 2 points on ellipse - px = cx + x + 0.5; - draw_pixel(px,py); - } - - for (x = -a; x < a; x++) // step through x values, omitting - { // curve points covered by y values - x2 = x * x; - y2 = b2 * (1 - x2 / a2); - y = sqrtf(y2); // corresp. y values, + and - - px = x + cx; - py = cy - y + 0.5; - draw_pixel(px,py); // draw 2 points on ellipse - py = cy + y + 0.5; - draw_pixel(px,py); - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - gdk_window_thaw_updates(gdkWin); // v.14.02 - return; -} - - -// duplicate for drawing and tracking a 2nd mouse arc -// (used by paint/clone to track source pixels being cloned) - -void draw_mousearc2(int cx, int cy, int cww, int chh, int Ferase) // simplified v.14.03 -{ - int px3, py3, ww3, hh3; - static int ppx3, ppy3, pww3 = 0, phh3; - int px, py; - int crflag = 0; - float a, b, a2, b2; - float x, y, x2, y2; - - zthreadcrash(); - if (! gdkWin) return; - - gdk_window_freeze_updates(gdkWin); // visually smoother v.14.02 - - if (pww3 > 0) { // erase prior - mwpaint4(ppx3,ppy3,pww3,phh3); // refresh from Mpxb - pww3 = 0; - } - - if (Ferase) { - gdk_window_thaw_updates(gdkWin); // erase only was wanted - return; - } - - px3 = cx - (cww + 2) / 2; // convert pointer center + radius - py3 = cy - (chh + 2) / 2; // to block position, width, length - ww3 = cww + 2; - hh3 = chh + 2; - - ppx3 = px3; // remember pixel block area - ppy3 = py3; // to erase in next call - pww3 = ww3; - phh3 = hh3; - - if (! mwcr) { - mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already - crflag = 1; - } - - a = cww / 2; // ellipse constants from - b = chh / 2; // enclosing rectangle - a2 = a * a; - b2 = b * b; - - for (y = -b; y < b; y++) // step through y values, omitting - { // curve points covered by x values - y2 = y * y; - x2 = a2 * (1 - y2 / b2); - x = sqrtf(x2); // corresp. x values, + and - - py = y + cy; - px = cx - x + 0.5; - draw_pixel(px,py); // draw 2 points on ellipse - px = cx + x + 0.5; - draw_pixel(px,py); - } - - for (x = -a; x < a; x++) // step through x values, omitting - { // curve points covered by y values - x2 = x * x; - y2 = b2 * (1 - x2 / a2); - y = sqrtf(y2); // corresp. y values, + and - - px = x + cx; - py = cy - y + 0.5; - draw_pixel(px,py); // draw 2 points on ellipse - py = cy + y + 0.5; - draw_pixel(px,py); - } - - if (crflag) { - cairo_destroy(mwcr); - mwcr = 0; - } - - gdk_window_thaw_updates(gdkWin); // v.14.02 - return; -} - - -/************************************************************************** - - spline curve setup and edit functions - - Support multiple frames with curves in parallel - (edit curve(s) and image mask curve) - - Usage: - Add frame widget to dialog or zdialog. - Set up drawing in frame: - sd = splcurve_init(frame, callback_func) - Initialize no. of curves in frame (1-10): - sd->Nspc = n - Initialize vert/horz flag for curve spc: - sd->vert[spc] = hv - Initialize anchor points for curve spc: - sd->nap[spc], sd->apx[spc][xx], sd->apy[spc][yy] - Generate data for curve spc: - splcurve_generate(sd,spc) - Curves will now be shown and edited inside the frame when window is realized. - The callback_func(spc) will be called when curve spc is edited. - Change curve in program: - set anchor points, call splcurve_generate(sd,spc) - Get y-value (0-1) for curve spc and given x-value (0-1): - yval = splcurve_yval(sd,spc,xval) - If faster access to curve is needed (no interpolation): - kk = 1000 * xval; - if (kk > 999) kk = 999; - yval = sd->yval[spc][kk]; - -***/ - -// initialize for spline curve editing -// initial anchor points are pre-loaded into spldat before window is realized - -spldat * splcurve_init(GtkWidget *frame, void func(int spc)) -{ - int cc = sizeof(spldat); // allocate spc curve data area - spldat * sd = (spldat *) malloc(cc); - memset(sd,0,cc); - - sd->drawarea = gtk_drawing_area_new(); // drawing area for curves - gtk_container_add(GTK_CONTAINER(frame),sd->drawarea); - sd->spcfunc = func; // user callback function - - gtk_widget_add_events(sd->drawarea,GDK_BUTTON_PRESS_MASK); // connect mouse events to drawing area - gtk_widget_add_events(sd->drawarea,GDK_BUTTON_RELEASE_MASK); - gtk_widget_add_events(sd->drawarea,GDK_BUTTON1_MOTION_MASK); - G_SIGNAL(sd->drawarea,"motion-notify-event",splcurve_adjust,sd); - G_SIGNAL(sd->drawarea,"button-press-event",splcurve_adjust,sd); - G_SIGNAL(sd->drawarea,"draw",splcurve_draw,sd); - - return sd; -} - - -// modify anchor points in curve using mouse - -int splcurve_adjust(void *, GdkEventButton *event, spldat *sd) -{ - int ww, hh, kk; - int mx, my, button, evtype; - static int spc, ap, mbusy = 0, Fdrag = 0; // drag continuation logic - int minspc, minap; - float mxval, myval, cxval, cyval; - float dist2, mindist2 = 0; - - mx = event->x; // mouse position in drawing area - my = event->y; - evtype = event->type; - button = event->button; - - if (evtype == GDK_MOTION_NOTIFY) { - if (mbusy) return 0; // discard excess motion events - mbusy++; - zmainloop(); - mbusy = 0; - } - - if (evtype == GDK_BUTTON_RELEASE) { - Fdrag = 0; - return 0; - } - - ww = gtk_widget_get_allocated_width(sd->drawarea); // drawing area size - hh = gtk_widget_get_allocated_height(sd->drawarea); - - if (mx < 0) mx = 0; // limit edge excursions - if (mx > ww) mx = ww; - if (my < 0) my = 0; - if (my > hh) my = hh; - - if (evtype == GDK_BUTTON_PRESS) Fdrag = 0; // left or right click - - if (Fdrag) // continuation of drag - { - if (sd->vert[spc]) { - mxval = 1.0 * my / hh; // mouse position in curve space - myval = 1.0 * mx / ww; - } - else { - mxval = 1.0 * mx / ww; - myval = 1.0 * (hh - my) / hh; - } - - if (ap < sd->nap[spc]-1 && sd->apx[spc][ap+1] - mxval < 0.05) // disallow < 0.05 from next - return 0; - if (ap > 0 && mxval - sd->apx[spc][ap-1] < 0.05) return 0; // or prior anchor point - } - - else // mouse click or new drag begin - { - minspc = minap = -1; // find closest curve/anchor point - mindist2 = 999999; - - for (spc = 0; spc < sd->Nspc; spc++) // loop curves - { - if (sd->vert[spc]) { - mxval = 1.0 * my / hh; // mouse position in curve space - myval = 1.0 * mx / ww; - } - else { - mxval = 1.0 * mx / ww; - myval = 1.0 * (hh - my) / hh; - } - - for (ap = 0; ap < sd->nap[spc]; ap++) // loop anchor points - { - cxval = sd->apx[spc][ap]; - cyval = sd->apy[spc][ap]; - dist2 = (mxval-cxval)*(mxval-cxval) - + (myval-cyval)*(myval-cyval); - if (dist2 < mindist2) { - mindist2 = dist2; // remember closest anchor point - minspc = spc; - minap = ap; - } - } - } - - if (minspc < 0) return 0; // impossible - spc = minspc; - ap = minap; - } - - if (evtype == GDK_BUTTON_PRESS && button == 3) // right click, remove anchor point - { - if (sqrt(mindist2) > 0.05) return 0; // not close enough - if (sd->nap[spc] < 3) return 0; // < 2 anchor points would remain - sd->nap[spc]--; // decr. before loop - for (kk = ap; kk < sd->nap[spc]; kk++) { - if (! kk) printz("meaningless reference %d",kk); // stop gcc optimization bug ///// - sd->apx[spc][kk] = sd->apx[spc][kk+1]; - sd->apy[spc][kk] = sd->apy[spc][kk+1]; - } - splcurve_generate(sd,spc); // regenerate data for modified curve - gtk_widget_queue_draw(sd->drawarea); - sd->spcfunc(spc); // call user function - return 0; - } - - if (! Fdrag) // new drag or left click - { - if (sd->vert[spc]) { - mxval = 1.0 * my / hh; // mouse position in curve space - myval = 1.0 * mx / ww; - } - else { - mxval = 1.0 * mx / ww; - myval = 1.0 * (hh - my) / hh; - } - - if (sqrt(mindist2) < 0.05) // existing point close enough, - { // move this anchor point to mouse - if (ap < sd->nap[spc]-1 && sd->apx[spc][ap+1] - mxval < 0.05) - return 0; // disallow < 0.05 from next - if (ap > 0 && mxval - sd->apx[spc][ap-1] < 0.05) return 0; // or prior anchor point - } - - else // none close, add new anchor point - { - minspc = -1; // find closest curve to mouse - mindist2 = 999999; - - for (spc = 0; spc < sd->Nspc; spc++) // loop curves - { - if (sd->vert[spc]) { - mxval = 1.0 * my / hh; // mouse position in curve space - myval = 1.0 * mx / ww; - } - else { - mxval = 1.0 * mx / ww; - myval = 1.0 * (hh - my) / hh; - } - - cyval = splcurve_yval(sd,spc,mxval); - dist2 = fabsf(myval - cyval); - if (dist2 < mindist2) { - mindist2 = dist2; // remember closest curve - minspc = spc; - } - } - - if (minspc < 0) return 0; // impossible - if (mindist2 > 0.05) return 0; // not close enough to any curve - spc = minspc; - - if (sd->nap[spc] > 49) { - zmessageACK(mWin,0,ZTX("Exceed 50 anchor points")); - return 0; - } - - if (sd->vert[spc]) { - mxval = 1.0 * my / hh; // mouse position in curve space - myval = 1.0 * mx / ww; - } - else { - mxval = 1.0 * mx / ww; - myval = 1.0 * (hh - my) / hh; - } - - for (ap = 0; ap < sd->nap[spc]; ap++) // find anchor point with next higher x - if (mxval <= sd->apx[spc][ap]) break; // (ap may come out 0 or nap) - - if (ap < sd->nap[spc] && sd->apx[spc][ap] - mxval < 0.05) // disallow < 0.05 from next - return 0; // or prior anchor point - if (ap > 0 && mxval - sd->apx[spc][ap-1] < 0.05) return 0; - - for (kk = sd->nap[spc]; kk > ap; kk--) { // make hole for new point - sd->apx[spc][kk] = sd->apx[spc][kk-1]; - sd->apy[spc][kk] = sd->apy[spc][kk-1]; - } - - sd->nap[spc]++; // up point count - } - } - - if (evtype == GDK_MOTION_NOTIFY) Fdrag = 1; // remember drag is underway - - sd->apx[spc][ap] = mxval; // new or moved anchor point - sd->apy[spc][ap] = myval; // at mouse position - - splcurve_generate(sd,spc); // regenerate data for modified curve - if (sd->drawarea) gtk_widget_queue_draw(sd->drawarea); // redraw graph - if (sd->spcfunc) sd->spcfunc(spc); // call user function - - return 0; -} - - -// for expose event or when a curve is changed -// draw all curves based on current anchor points - -int splcurve_draw(GtkWidget *drawarea, cairo_t *cr, spldat *sd) -{ - int ww, hh, spc, ap; - float xval, yval, px, py, qx, qy; - - ww = gtk_widget_get_allocated_width(sd->drawarea); // drawing area size - hh = gtk_widget_get_allocated_height(sd->drawarea); - if (ww < 50 || hh < 50) return 0; - - cairo_set_line_width(cr,1); - cairo_set_source_rgb(cr,0.7,0.7,0.7); - - for (int ii = 0; ii < sd->Nscale; ii++) // draw y-scale lines if any - { - px = ww * sd->xscale[0][ii]; - py = hh - hh * sd->yscale[0][ii]; - qx = ww * sd->xscale[1][ii]; - qy = hh - hh * sd->yscale[1][ii]; - cairo_move_to(cr,px,py); - cairo_line_to(cr,qx,qy); - } - cairo_stroke(cr); - - cairo_set_source_rgb(cr,0,0,0); - - for (spc = 0; spc < sd->Nspc; spc++) // loop all curves - { - if (sd->vert[spc]) // vert. curve - { - for (py = 0; py < hh; py++) // generate all points for curve - { - xval = 1.0 * py / hh; - yval = splcurve_yval(sd,spc,xval); - px = ww * yval; - if (py == 0) cairo_move_to(cr,px,py); - cairo_line_to(cr,px,py); - } - cairo_stroke(cr); - - for (ap = 0; ap < sd->nap[spc]; ap++) // draw boxes at anchor points - { - xval = sd->apx[spc][ap]; - yval = sd->apy[spc][ap]; - px = ww * yval; - py = hh * xval; - cairo_rectangle(cr,px-2,py-2,4,4); - } - cairo_fill(cr); - } - else // horz. curve - { - for (px = 0; px < ww; px++) // generate all points for curve - { - xval = 1.0 * px / ww; - yval = splcurve_yval(sd,spc,xval); - py = hh - hh * yval; - if (px == 0) cairo_move_to(cr,px,py); - cairo_line_to(cr,px,py); - } - cairo_stroke(cr); - - for (ap = 0; ap < sd->nap[spc]; ap++) // draw boxes at anchor points - { - xval = sd->apx[spc][ap]; - yval = sd->apy[spc][ap]; - px = ww * xval; - py = hh - hh * yval; - cairo_rectangle(cr,px-2,py-2,4,4); - } - cairo_fill(cr); - } - } - - return 0; -} - - -// generate all curve data points when anchor points are modified - -int splcurve_generate(spldat *sd, int spc) -{ - int kk, kklo, kkhi; - float xval, yvalx; - - spline1(sd->nap[spc],sd->apx[spc],sd->apy[spc]); // compute curve fitting anchor points - - kklo = 1000 * sd->apx[spc][0] - 30; // xval range = anchor point range - if (kklo < 0) kklo = 0; // + 0.03 extra below/above - kkhi = 1000 * sd->apx[spc][sd->nap[spc]-1] + 30; - if (kkhi > 1000) kkhi = 1000; - - for (kk = 0; kk < 1000; kk++) // generate all points for curve - { - xval = 0.001 * kk; // remove anchor point limits - yvalx = spline2(xval); - if (yvalx < 0) yvalx = 0; // yval < 0 not allowed, > 1 OK - sd->yval[spc][kk] = yvalx; - } - - return 0; -} - - -// Retrieve curve data using interpolation of saved table of values - -float splcurve_yval(spldat *sd, int spc, float xval) -{ - int ii; - float x1, x2, y1, y2, y3; - - if (xval <= 0) return sd->yval[spc][0]; - if (xval >= 0.999) return sd->yval[spc][999]; - - x2 = 1000.0 * xval; - ii = x2; - x1 = ii; - y1 = sd->yval[spc][ii]; - y2 = sd->yval[spc][ii+1]; - y3 = y1 + (y2 - y1) * (x2 - x1); - return y3; -} - - -// load curve data from a file -// returns 0 if fail (invalid file data), sd not modified -// returns 1 if succcess, sd is initialized from file data - -int splcurve_load(spldat *sd, cchar *file) -{ - char *pfile; - int nn, ii, jj; - FILE *fid = 0; - int Nspc, vert[10], nap[10]; - float apx[10][50], apy[10][50]; - - F1_help_topic = "curve_edit"; - - if (file) pfile = strdup(file); - else pfile = zgetfile(ZTX("load curve from a file"),"file",saved_curves_dirk); - if (! pfile) return 0; - - fid = fopen(pfile,"r"); - free(pfile); - if (! fid) goto fail; - - nn = fscanf(fid,"%d ",&Nspc); // no. of curves - if (nn != 1) goto fail; - if (Nspc < 1 || Nspc > 10) goto fail; - if (Nspc != sd->Nspc) goto fail2; - - for (ii = 0; ii < Nspc; ii++) // loop each curve - { - nn = fscanf(fid,"%d %d ",&vert[ii],&nap[ii]); // vertical flag, no. anchor points - if (nn != 2) goto fail; - if (vert[ii] < 0 || vert[ii] > 1) goto fail; - if (nap[ii] < 2 || nap[ii] > 50) goto fail; - - for (jj = 0; jj < nap[ii]; jj++) // anchor point values - { - nn = fscanf(fid,"%f/%f ",&apx[ii][jj],&apy[ii][jj]); - if (nn != 2) goto fail; - if (apx[ii][jj] < 0 || apx[ii][jj] > 1) goto fail; - if (apy[ii][jj] < 0 || apy[ii][jj] > 1) goto fail; - } - } - - fclose(fid); - - sd->Nspc = Nspc; // copy curve data to caller's arg - - for (ii = 0; ii < Nspc; ii++) - { - sd->vert[ii] = vert[ii]; - sd->nap[ii] = nap[ii]; - - for (jj = 0; jj < nap[ii]; jj++) - { - sd->apx[ii][jj] = apx[ii][jj]; - sd->apy[ii][jj] = apy[ii][jj]; - } - } - - for (ii = 0; ii < Nspc; ii++) // generate curve data from anchor points - splcurve_generate(sd,ii); - - if (sd->drawarea) // redraw all curves - gtk_widget_queue_draw(sd->drawarea); - - return 1; - -fail: - if (fid) fclose(fid); - printz("curve file is invalid \n"); - return 0; - -fail2: - if (fid) fclose(fid); - printz("curve file has different no. of curves \n"); - return 0; -} - - -// save curve data to a file - -int splcurve_save(spldat *sd, cchar *file) -{ - char *pfile, *pp; - int ii, jj; - FILE *fid; - - F1_help_topic = "curve_edit"; - - if (file) pp = strdup(file); - else pp = zgetfile(ZTX("save curve to a file"),"save",saved_curves_dirk); - if (! pp) return 0; - - pfile = strdupz(pp,8); - free(pp); - - pp = strrchr(pfile,'/'); // force .curve extension - if (pp) pp = strrchr(pp,'.'); - if (pp) strcpy(pp,".curve"); - else strcat(pfile,".curve"); - - fid = fopen(pfile,"w"); - free(pfile); - if (! fid) return 0; - - fprintf(fid,"%d \n",sd->Nspc); // no. of curves - - for (ii = 0; ii < sd->Nspc; ii++) // loop each curve - { - fprintf(fid,"%d %d \n",sd->vert[ii],sd->nap[ii]); // vertical flag, no. anchor points - for (jj = 0; jj < sd->nap[ii]; jj++) // anchor point values - fprintf(fid,"%.4f/%.4f ",sd->apx[ii][jj],sd->apy[ii][jj]); - fprintf(fid,"\n"); - } - - fclose(fid); - return 0; -} - - -/************************************************************************** - - edit transaction and thread support functions - - edit transaction management - edit_setup() get E0 if none, E0 > E1 > E3 - edit_cancel() free (E1 E3 ER) - edit_done() E3 > E0, free (E1 ER) add to undo stack - edit_undo() E3 > ER, E1 > E3 - edit_redo() ER > E3 - edit_reset() free ER, E1 > E3 - edit_fullsize() free (E1 E3) E0 > E1 > E3, signal thread - -***************************************************************************/ - -/************************************************************************** - - Setup for a new edit transaction - Create E1 (edit input) and E3 (edit output) pixmaps from - previous edit (E0) or image file (new E0). - - FprevReq 0 edit full-size image - 1 edit preview image unless select area exists - - Farea 0 select_area is invalid and will be deleted (e.g. rotate) - 1 select_area not used but remains valid (e.g. red-eye) - 2 select_area can be used and remains valid (e.g. gamma) - -***************************************************************************/ - -int edit_setup(editfunc &EF) -{ - int yn, rww, rhh; - int Fpreview; - - if (! curr_file) return 0; // no image file - if (cTab != tabF) return 0; // should not happen - - if (checkpend("lock")) return 0; // menu lock v.13.12 - - if (CEF && CEF->zd) // if pending edit, complete it v.13.12 - zdialog_send_event(CEF->zd,"done"); - if (checkpend("edit")) return 0; // failed (HDR etc.) v.13.12 - - if (URS_pos > maxedits-2) { // undo/redo stack capacity reached - zmessageACK(mWin,0,ZTX("Too many edits, please save image")); - return 0; - } - - sa_validate(); // delete area if not valid - - if (EF.Farea == 0 && sa_stat) { // select area will be lost, warn user - yn = zmessageYN(mWin,ZTX("Select area cannot be kept.\n" - "Continue?")); - if (! yn) return 0; - sa_unselect(); // unselect area - zdialog_free(zdsela); - } - - if (EF.Farea == 2 && sa_stat && sa_stat != 3) { // select area exists and can be used, - yn = zmessageYN(mWin,ZTX("Select area not active.\n" // but not active, ask user - "Continue?")); - if (! yn) return 0; - } - - if (! E0pxm) { // first edit for this file - E0pxm = PXM_load(curr_file,1); // get E0 image (poss. 16-bit color) - if (! E0pxm) return 0; - PXM_fixblue(E0pxm); // blue=0 >> blue=1 for vpixel() - curr_file_bpc = f_load_bpc; - } - - if (URS_pos == 0) save_undo(); // initial image >> undo/redo stack - - mutex_lock(&Fpixmap_lock); // lock pixmaps - - Fpreview = 0; // assume no preview - - if (EF.FprevReq && ! Fzoom) // preview requested by edit func. - Fpreview = 1; - - if (EF.Farea == 2 && sa_stat == 3) // not if select area active - Fpreview = 0; - - if (E0pxm->ww * E0pxm->hh < 2000000) // if image is small, don't use preview - Fpreview = 0; // v.13.04 - - if (E0pxm->ww < 1.4 * Dww && E0pxm->hh < 1.4 * Dhh) // if image slightly larger than window, - Fpreview = 0; // don't use preview - - if (Fpreview) { - if (Fpxb->ww * Dhh > Fpxb->hh * Dww) { // use preview image 1.4 * window size - rww = 1.4 * Dww; - if (rww < 1200) rww = 1200; // at least 1200 on one side - rhh = 1.0 * rww * Fpxb->hh / Fpxb->ww + 0.5; - } - else { - rhh = 1.4 * Dhh; - if (rhh < 1200) rhh = 1200; - rww = 1.0 * rhh * Fpxb->ww / Fpxb->hh + 0.5; - } - if (rww > Fpxb->ww) Fpreview = 0; - } - - if (Fpreview) { - E1pxm = PXM_rescale(E0pxm,rww,rhh); // scale image to preview size - sa_show(0); // hide select area if present - } - else E1pxm = PXM_copy(E0pxm); // else use full size image - - E3pxm = PXM_copy(E1pxm); // E1 >> E3 - - CEF = &EF; // set current edit function - CEF->Fmods = 0; // image not modified yet v.13.04 - CEF->Fpreview = Fpreview; - - CEF->thread_command = CEF->thread_status = 0; // no thread running - CEF->thread_pend = CEF->thread_done = CEF->thread_hiwater = 0; // no work pending or done - if (CEF->threadfunc) start_thread(CEF->threadfunc,0); // start edit thread - - mutex_unlock(&Fpixmap_lock); // moved down v.14.02 - mwpaintnow(); // update image data synchronous v.13.04 - return 1; -} - - -/**************************************************************************/ - -// process edit cancel -// keep: retain zdialog, mousefunc, curves - -void edit_cancel(int keep) -{ - if (! CEF) return; - - wrapup_thread(9); // tell thread to quit now, wait - - mutex_lock(&Fpixmap_lock); - - PXM_free(E1pxm); // free E1, E3, ER - PXM_free(E3pxm); - PXM_free(ERpxm); - PXM_free(E9pxm); // v.13.10 - - if (! keep) // v.13.12 - { - if (CEF->zd) zdialog_free(CEF->zd); // kill dialog - if (CEF->mousefunc == mouseCBfunc) freeMouse(); // if my mouse, free mouse - if (CEF->curves) free(CEF->curves); // free curves data - } - - CEF = 0; // no current edit func - mutex_unlock(&Fpixmap_lock); // moved down v.14.02 - mwpaintnow(); // update image data synchronous v.13.04 - return; -} - - -/**************************************************************************/ - -// process edit done -// keep: retain zdialog, mousefunc, curves - -void edit_done(int keep) -{ - if (! CEF) return; - - wait_thread_idle(); // wait for thread to finish - - if (CEF->Fpreview && CEF->Fmods) { // preview image was edited - Fzoom = 0; - edit_fullsize(); // update full image - } - - wrapup_thread(8); // tell thread to finish and exit - - mutex_lock(&Fpixmap_lock); - - if (CEF->Fmods) { // image was modified - PXM_free(E0pxm); - E0pxm = E3pxm; // E3 updated image >> E0 - E3pxm = 0; - PXM_free(E1pxm); // free E1, ER - PXM_free(ERpxm); - PXM_free(E9pxm); // v.13.10 - URS_pos++; // next undo/redo stack position - URS_max = URS_pos; // image modified - higher mods now obsolete - save_undo(); // save undo state (for following undo) - } - - else { // not modified - PXM_free(E1pxm); // free E1, E3, ER - PXM_free(E3pxm); - PXM_free(ERpxm); - PXM_free(E9pxm); // v.13.10 - } - - if (! keep) // v.13.12 - { - if (CEF->zd) zdialog_free(CEF->zd); // kill dialog - if (CEF->mousefunc == mouseCBfunc) freeMouse(); // if my mouse, free mouse - if (CEF->curves) free(CEF->curves); // free curves data - } - - CEF = 0; // no current edit func - - mutex_unlock(&Fpixmap_lock); // moved down v.14.02 - mwpaintnow(); // update image data synchronous v.13.04 - return; -} - - -/**************************************************************************/ - -// edit undo, redo, reset functions -// these apply within an active edit function - -void edit_undo() -{ - if (! CEF) return; - - if (CEF->thread_status == 2) return; // thread busy - if (! CEF->Fmods) return; // not modified - - mutex_lock(&Fpixmap_lock); - PXM_free(ERpxm); // E3 >> redo copy - ERpxm = E3pxm; - E3pxm = PXM_copy(E1pxm); // E1 >> E3 - CEF->Fmods = 0; // reset image modified status - mutex_unlock(&Fpixmap_lock); - mwpaintnow(); // update image data synchronous v.13.04 - return; -} - - -void edit_redo() -{ - if (! CEF) return; - - if (CEF->thread_status == 2) return; // thread busy - if (! ERpxm) return; // no prior undo - - mutex_lock(&Fpixmap_lock); - PXM_free(E3pxm); // redo copy >> E3 - E3pxm = ERpxm; - ERpxm = 0; - CEF->Fmods = 1; // image modified - mutex_unlock(&Fpixmap_lock); - mwpaintnow(); // update image data synchronous v.13.04 - return; -} - - -void edit_reset() // reset E3 to E1 status -{ - if (! CEF) return; - - wait_thread_idle(); // v.13.04 - if (! CEF->Fmods) return; // not modified - - mutex_lock(&Fpixmap_lock); - PXM_free(ERpxm); // delete redo copy - PXM_free(E3pxm); - E3pxm = PXM_copy(E1pxm); // E1 >> E3 - CEF->Fmods = 0; // reset image modified status v.13.04 - mutex_unlock(&Fpixmap_lock); - mwpaintnow(); // update image data synchronous v.13.04 - return; -} - - -/**************************************************************************/ - -// Convert from preview mode (window-size pixmaps) to full-size pixmaps. -// If edit function has standard thread, it is signaled to go to work. -// Called by edit_done() if preview mode active. -// Can be called by edit function prior to edit_done(). - -void edit_fullsize() -{ - if (! CEF) return; - if (! CEF->Fpreview) return; - - wait_thread_idle(); // v.13.04 - - mutex_lock(&Fpixmap_lock); - PXM_free(E1pxm); // free preview pixmaps - PXM_free(E3pxm); - E1pxm = PXM_copy(E0pxm); // E0 >> E1, full size image - E3pxm = PXM_copy(E1pxm); // E1 >> E3 - PXB_free(mwpC->fpxb); - mwpC->fpxb = PXM_PXB_copy(E3pxm); // update Fpxb from image E3 - Fzoom = 0; - CEF->Fpreview = 0; // this prevents re-entry - mutex_unlock(&Fpixmap_lock); - - if (! CEF->Fmods) return; // no change - - if (CEF->thread_status) { - signal_thread(); // signal thread, repeat edit - wait_thread_idle(); - } - - return; -} - - -/************************************************************************** - undo / redo toolbar buttons -***************************************************************************/ - -// [undo] menu function - reinstate previous edit in undo/redo stack - -void m_undo(GtkWidget *, cchar *) -{ - if (CEF) { // undo active edit - edit_undo(); - return; - } - - if (URS_pos == 0) return; // undo past edit - URS_pos--; - load_undo(); - return; -} - - -// [redo] menu function - reinstate next edit in undo/redo stack - -void m_redo(GtkWidget *, cchar *) -{ - if (CEF) { // redo active edit - edit_redo(); - return; - } - - if (URS_pos == URS_max) return; // redo past edit - URS_pos++; - load_undo(); - return; -} - - -// undo all edits of the current image -// (discard modifications) - -void undo_all() -{ - if (CEF) return; // not if edit active v.13.04 - if (URS_pos == 0) return; - URS_pos = 0; - load_undo(); - return; -} - - -// Save E0 to undo/redo file stack -// stack position = URS_pos - -void save_undo() -{ - char *pp, buff[24]; - int fid, cc, cc2; - - pp = strstr(URS_filename,"undo_"); // get undo/redo stack filename to use - if (! pp) zappcrash("undo/redo stack corrupted 1"); // v.13.12 - snprintf(pp+5,3,"%02d",URS_pos); - - fid = open(URS_filename,O_WRONLY|O_CREAT|O_TRUNC,0640); // create or overwrite - if (! fid) zappcrash("undo/redo stack corrupted 2"); - - snprintf(buff,24," %05d %05d fotoxx ",E0pxm->ww,E0pxm->hh); // write header - cc = write(fid,buff,20); - if (cc != 20) zappcrash("undo/redo stack corrupted 3"); - - cc = E0pxm->ww * E0pxm->hh * 3 * sizeof(float); // write image, ww * hh RGB pixels - cc2 = write(fid,E0pxm->pixels,cc); - if (cc2 != cc) zappcrash("undo/redo stack corrupted 4"); - - close(fid); - - if (URS_pos == 0) { // stack position 0 = original image file - strcpy(URS_funcs[0],"original"); // edit function name for original image - URS_saved[0] = 1; // original image file already on disk - } - else { // stack position - if (! CEF) zappcrash("save_undo() no CEF"); // must have an edit function - strcpy(URS_funcs[URS_pos],CEF->funcname); // edit function name - URS_saved[URS_pos] = 0; // not yet saved to disk - } - - return; -} - - -// Load E0 from undo/redo file stack -// stack position = URS_pos - -void load_undo() -{ - char *pp, buff[24], fotoxx[8]; - int fid, ww, hh, cc, cc2; - - pp = strstr(URS_filename,"undo_"); // v.13.12 - if (! pp) zappcrash("undo/redo stack corrupted 1"); - snprintf(pp+5,3,"%02d",URS_pos); - - fid = open(URS_filename,O_RDONLY); - if (! fid) zappcrash("undo/redo stack corrupted 2"); - - *fotoxx = 0; - cc = read(fid,buff,20); - sscanf(buff," %d %d %8s ",&ww, &hh, fotoxx); - if (! strEqu(fotoxx,"fotoxx")) zappcrash("undo/redo stack corrupted 4"); - - mutex_lock(&Fpixmap_lock); - - PXM_free(E0pxm); - E0pxm = PXM_make(ww,hh); - cc = ww * hh * 12; - cc2 = read(fid,E0pxm->pixels,cc); - if (cc2 != cc) zappcrash("undo/redo stack corrupted 5"); - close(fid); - - sa_validate(); // delete area if invalid - - mutex_unlock(&Fpixmap_lock); // moved down v.14.02 - mwpaintnow(); // update image data synchronous v.13.04 - return; -} - - -/**************************************************************************/ - -// check for various pending or busy conditions and message the user -// returns 1 if something is pending or busy -// 0 if nothing is pending or user decides to discard mods -// conditions: -// edit edit function is active (CEF not null) -// mods current file has unsaved modifications -// lock a menu lock is active -// all check all of the above -// quiet suppress user message - -int checkpend(cchar *list) // v.13.12 -{ - int edit, mods, lock, all, quiet, pend, choice; - cchar *modmess = ZTX("This action will discard changes\n"); - cchar *keep = ZTX("Keep"); - cchar *discard = ZTX("Discard"); - - edit = mods = lock = all = quiet = pend = 0; - - if (strstr(list,"edit")) edit = 1; - if (strstr(list,"mods")) mods = 1; - if (strstr(list,"lock")) lock = 1; - if (strstr(list,"all")) all = 1; - if (strstr(list,"quiet")) quiet = 1; - - if (all) edit = mods = lock = 1; - - if (edit && CEF) { - pend = 1; - if (! quiet) zmessageACK(mWin,0,ZTX("prior function active")); - } - - if (! pend && mods) { - if (CEF && CEF->Fmods && ! CEF->Fsaved) pend = 1; // active edits unsaved - if (URS_pos > 0 && URS_saved[URS_pos] == 0) pend = 1; // completed edits unsaved - if (Fmetachanged) pend = 1; // metadata edit unsaved - if (pend && ! quiet) { - choice = zdialog_choose(0,mWin,modmess,keep,discard,null); // ask user - if (choice == 2) { // choice is discard - if (CEF) edit_cancel(0); // discard current edit - if (URS_pos > 0) undo_all(); // undo prior edits - Fmetachanged = 0; // discard metadata edits - pend = 0; - } - } - } - - if (! pend && lock && Fmenulock) { - pend = 1; - if (! quiet) zmessageACK(mWin,0,ZTX("prior function active")); - } - - return pend; // 1 if something pending -} - - -/**************************************************************************/ - -// zdialog mouse capture and release - -void takeMouse(CBfunc func, GdkCursor *cursor) // capture mouse for dialog -{ - if (! gdkWin) return; - freeMouse(); - mouseCBfunc = func; - Mcapture = 1; - gdk_window_set_cursor(gdkWin,cursor); - return; -} - -void freeMouse() // free mouse for main window -{ - if (! gdkWin) return; - if (! Mcapture) return; - mouseCBfunc = 0; - Mcapture = 0; - draw_mousearc(0,0,0,0,1); // remove mouse circle - gdk_window_set_cursor(gdkWin,0); // set normal cursor - return; -} - - -/************************************************************************** - - functions to manage working threads - - main level thread management - start_thread(func,arg) start thread running - signal_thread() signal thread that work is pending - wait_thread_idle() wait for pending work complete - wrapup_thread(command) wait for exit or command thread exit - - thread function - thread_idle_loop() wait for pending work, exit if commanded - thread_exit() exit thread unconditionally - - thread_status (thread ownership - 0 no thread is running - 1 thread is running and idle (no work) - 2 thread is working - 0 thread has exited - - thread_command (main program ownership) - 0 idle, initial status - 8 exit when pending work is done - 9 exit now, unconditionally - - thread_pend work requested counter - thread_done work done counter - thread_hiwater high water mark - -***************************************************************************/ - -// start thread that does the edit work - -void start_thread(threadfunc func, void *arg) -{ - CEF->thread_status = 1; // thread is running - CEF->thread_command = CEF->thread_pend = CEF->thread_done - = CEF->thread_hiwater = 0; // nothing pending - start_detached_thread(func,arg); - return; -} - - -// signal thread that new work is pending - -void signal_thread() -{ - if (CEF->thread_status > 0) CEF->thread_pend++; - return; -} - - -// wait for edit thread to complete pending work and become idle - -void wait_thread_idle() -{ - if (! CEF->thread_status) return; // v.13.10 - if (CEF->thread_pend == CEF->thread_done) return; // v.13.10 - paint_busy(); // show busy indicator v.13.09 - zmainloop(); - while (CEF->thread_status && CEF->thread_pend > CEF->thread_done) // no zmainloop() v.13.09 - zsleep(0.01); - return; -} - - -// wait for thread exit or command thread exit -// command = 0 wait for normal completion -// 8 finish pending work and exit -// 9 quit, exit now - -void wrapup_thread(int command) -{ - CEF->thread_command = command; // tell thread to quit or finish - - while (CEF->thread_status > 0) // wait for thread to finish - zsleep(0.01); // no zmainloop() v.13.09 - - return; -} - - -// non-blocking version // v.13.09.4 *** kludge *** - -void wrapup_thread_noblock(int command) -{ - CEF->thread_command = command; // tell thread to quit or finish - - while (CEF->thread_status > 0) { // wait for thread to finish - zsleep(0.01); - zmainloop(); - } - - return; -} - - -// called only from edit threads -// idle loop - wait for work request or exit command - -void thread_idle_loop() -{ - if (CEF->thread_status == 2) zadd_locked(Fthreadbusy,-1); - CEF->thread_status = 1; // status = idle - CEF->thread_done = CEF->thread_hiwater; // work done = high-water mark - - while (true) - { - if (CEF->thread_command == 9) thread_exit(); // quit now command - if (CEF->thread_command == 8) // finish work and exit - if (CEF->thread_pend <= CEF->thread_done) thread_exit(); - if (CEF->thread_pend > CEF->thread_done) break; // wait for work request - zsleep(0.01); - } - - CEF->thread_hiwater = CEF->thread_pend; // set high-water mark - CEF->thread_status = 2; // thread is working - zadd_locked(Fthreadbusy,+1); - return; // perform edit -} - - -// exit thread unconditionally, called only from edit threads - -void thread_exit() -{ - wait_wthreads(); // wait for worker threads if any v.13.04 - if (CEF->thread_status == 2) zadd_locked(Fthreadbusy,-1); - CEF->thread_pend = CEF->thread_done = CEF->thread_hiwater = 0; - CEF->thread_status = 0; - pthread_exit(0); // "return" cannot be used here -} - - -/**************************************************************************/ - -// edit support functions for working threads (per processor core) - -void start_wthread(threadfunc func, void *arg) // start thread and increment busy count -{ // may be called from a thread - zadd_locked(Fthreadbusy,+1); - zadd_locked(wthreads_busy,+1); - start_detached_thread(func,arg); - return; -} - - -void exit_wthread() // decrement busy count and exit thread -{ - zadd_locked(Fthreadbusy,-1); - zadd_locked(wthreads_busy,-1); - pthread_exit(0); // "return" cannot be used here -} - - -void wait_wthreads() // wait for all worker threads done -{ // may be called from thread or non-thread - while (wthreads_busy) { - zsleep(0.01); - zmainloop(); // zmainloop() inert if called from a thread - } - return; -} - - -/************************************************************************** - other support functions -***************************************************************************/ - - -// favorites menu - popup graphic menu with user's favorites - -void m_favorites(GtkWidget *, cchar *) -{ - void favorites_callback(cchar *menu); - char menuconfigfile[200]; - - F1_help_topic = "favorites"; - snprintf(menuconfigfile,200,"%s/menu-config",favorites_dirk); - gmenuz(mWin,ZTX("Favorite Functions"),menuconfigfile,favorites_callback); - return; -} - - -// response function for clicked menu -// a menu function is called as from the text menus - -void favorites_callback(cchar *menu) -{ - int ii; - - settab("F"); // v.13.04 - - for (ii = 0; ii < Nmenus; ii++) - if (strcasecmp(ZTX(menu),ZTX(menutab[ii].menu)) == 0) break; - - if (ii < Nmenus) menutab[ii].func(0,menu); - return; -} - - -// help menu function - -void m_help(GtkWidget *, cchar *menu) -{ - if (strEqu(menu,ZTX("Quick Start"))) - showz_html(quickstart_file); // v.13.06 - - if (strEqu(menu,ZTX("User Guide"))) - showz_userguide(); - - if (strEqu(menu,ZTX("User Guide Changes"))) - showz_userguide("changes"); - - if (strEqu(menu,ZTX("Program Updates"))) - showz_userguide("updates"); - - if (strEqu(menu,ZTX("README"))) - showz_textfile("doc","README"); - - if (strEqu(menu,ZTX("Edit Functions Summary"))) - showz_textfile("data","edit-menus"); - - if (strEqu(menu,ZTX("Change Log"))) - showz_textfile("doc","changelog"); - - if (strEqu(menu,ZTX("Log File"))) - showz_logfile(); - - if (strEqu(menu,ZTX("Translations"))) - showz_textfile("doc","translations"); - - if (strEqu(menu,ZTX("Home Page"))) - showz_html(Fhomepage); - - if (strEqu(menu,ZTX("About"))) // v.13.02 - zmessageACK(mWin,"Fotoxx"," %s\n %s\n %s\n %s\n %s\n %s\n", - Frelease,Flicense,Fhomepage,Fsoftware,Fcontact,Ftranslators); - - if (strEqu(menu,ZTX("Help"))) // toolbar button - showz_userguide(F1_help_topic); // show topic if there, or page 1 - - return; -} - - -/**************************************************************************/ - -// table for loading and saving adjustable parameters between sessions - -typedef struct { - char name[20]; - char type[12]; - int count; - void *location; -} param; - -#define Nparms 34 -param paramTab[Nparms] = { -// name type count location -{ "fotoxx release", "char", 1, &Prelease }, -{ "notified release", "char", 1, &Nrelease }, -{ "first time", "int", 1, &Ffirsttime }, -{ "window geometry", "int", 4, &mwgeom }, -{ "thumbnail size", "int", 1, &navi::thumbsize }, -{ "menu style", "char", 1, &menu_style }, -{ "toolbar style", "char", 1, &tbar_style }, -{ "drag option", "int", 1, &Fdragopt }, -{ "zoom count", "int", 1, &zoomcount }, -{ "interpolation", "char", 1, &interpolation }, -{ "startup display", "char", 1, &startdisplay }, -{ "start image file", "char", 1, &startfile }, -{ "start directory", "char", 1, &startdirk }, -{ "grid base", "int", 10, &gridsettings[0] }, -{ "grid trim/rotate", "int", 10, &gridsettings[1] }, -{ "grid unbend", "int", 10, &gridsettings[2] }, -{ "grid warp curved", "int", 10, &gridsettings[3] }, -{ "grid warp linear", "int", 10, &gridsettings[4] }, -{ "grid warp affine", "int", 10, &gridsettings[5] }, -{ "RAW command", "char", 1, &RAWcommand }, -{ "RAW file types", "char", 1, &RAWfiletypes }, -{ "trim rectangle", "int", 4, &trimrect }, -{ "trim size", "int", 2, &trimsize }, -{ "trim buttons", "char", 6, &trimbuttons }, -{ "trim ratios", "char", 6, &trimratios }, -{ "edit resize", "int", 2, &editresize }, -{ "jpeg def quality", "int", 1, &jpeg_def_quality }, -{ "lens mm", "float", 1, &lens_mm }, -{ "lens bow", "float", 1, &lens_bow }, -{ "SS collection", "char", 1, &ss_collname }, -{ "SS latest ver.", "int", 1, &ss_latest }, -{ "SS pause coll.", "char", 1, &ss_plcollname }, -{ "SS interval", "int", 1, &ss_interval }, -{ "SS music file", "char", 1, &ss_musicfile } }; - -// save parameters to file /.../.fotoxx/parameters - -void save_params() -{ - FILE *fid; - char buff[1050], text[1000]; // limit for character data cc - char *name, *type; - int count; - void *location; - char **charloc; - int *intloc; - float *floatloc; - - snprintf(buff,199,"%s/parameters",get_zuserdir()); // open output file - fid = fopen(buff,"w"); - if (! fid) return; - - for (int ii = 0; ii < Nparms; ii++) // write table of state data - { - name = paramTab[ii].name; - type = paramTab[ii].type; - count = paramTab[ii].count; - location = paramTab[ii].location; - charloc = (char **) location; - intloc = (int *) location; - floatloc = (float *) location; - - fprintf(fid,"%-20s %-8s %02d ",name,type,count); // write parm name, type, count - - for (int kk = 0; kk < count; kk++) // write "value" "value" ... - { - if (strEqu(type,"char")) { - if (! *charloc) break; // missing, discontinue this parameter - repl_1str(*charloc++,text,"\n","\\n"); // replace newlines with "\n" - fprintf(fid," \"%s\"",text); - } - if (strEqu(type,"int")) - fprintf(fid," \"%d\"",*intloc++); - - if (strEqu(type,"float")) - fprintf(fid," \"%.2f\"",*floatloc++); - } - - fprintf(fid,"\n"); // write EOR - } - - fprintf(fid,"\n"); - fclose(fid); // close file - - return; -} - - -// load parameters from file /.../.fotoxx/parameters - -void load_params() -{ - FILE *fid; - int ii, err, pcount; - int Idata; - float Fdata; - char buff[1000], text[1000], *pp; - char name[20], type[12], count[8], data[1000]; - void *location; - char **charloc; - int *intloc; - float *floatloc; - - snprintf(buff,199,"%s/parameters",get_zuserdir()); // open parameters file - fid = fopen(buff,"r"); - if (! fid) return; // none, defaults are used - - while (true) // read parameters - { - pp = fgets_trim(buff,999,fid,1); - if (! pp) break; - if (*pp == '#') continue; // comment - if (strlen(pp) < 40) continue; // rubbish - - err = 0; - - strncpy0(name,pp,20); // parm name - strTrim2(name); - - strncpy0(type,pp+22,8); // parm type - strTrim2(type); - - strncpy0(count,pp+32,4); // parm count - strTrim2(count); - err = convSI(count,pcount); - - strncpy0(data,pp+38,1000); // parm value(s) - strTrim2(data); - - for (ii = 0; ii < Nparms; ii++) // match file record to param table - { - if (strNeq(name,paramTab[ii].name)) continue; // parm name - if (strNeq(type,paramTab[ii].type)) continue; // parm type - if (paramTab[ii].count != pcount) continue; // parm count - break; - } - - if (ii == Nparms) continue; // not found, ignore file param - - location = paramTab[ii].location; // get parameter memory location - charloc = (char **) location; - intloc = (int *) location; - floatloc = (float *) location; - - for (ii = 1; ii <= pcount; ii++) // get parameter value(s) - { - pp = (char *) strField(data,' ',ii); - if (! pp) break; - - if (strEqu(type,"char")) { - repl_1str(pp,text,"\\n","\n"); // replace "\n" with real newlines - *charloc++ = strdup(text); - } - - if (strEqu(type,"int")) { - err = convSI(pp,Idata); - if (err) continue; - *intloc++ = Idata; - } - - if (strEqu(type,"float")) { - err = convSF(pp,Fdata); - if (err) continue; - *floatloc++ = Fdata; - } - } - } - - fclose(fid); - - for (ii = 0; ii < Nparms; ii++) // set any null strings to "" - { - if (strNeq(paramTab[ii].type,"char")) continue; - charloc = (char **) paramTab[ii].location; - pcount = paramTab[ii].count; - for (int jj = 0; jj < pcount; jj++) - if (! charloc[jj]) - charloc[jj] = strdupz("",20); - } - - zoomratio = pow( 2.0, 1.0 / zoomcount); // set zoom ratio from zoom count - - return; -} - - -/**************************************************************************/ - -// free all resources associated with the current image file - -void free_resources(int fkeepundo) -{ - mutex_lock(&Fpixmap_lock); // lock pixmaps - - if (! fkeepundo) - shell_quiet("rm -f %s/undo_*",tempdir); // remove undo/redo files v.13.12 - - if (Fshutdown) { // stop here if shutdown mode - mutex_unlock(&Fpixmap_lock); - return; - } - - URS_pos = URS_max = 0; // reset undo/redo stack v.13.04 - Fmetachanged = 0; // no unsaved metadata changes v.13.08 - sa_unselect(); // unselect select area - - draw_toplines(2); // no toplines - erase_topcircles(); // no topcircles - Ntoptext = 0; // no toptext v.13.08 - Fbusy_goal = 0; - - if (curr_file) { - if (zdsela) zdialog_free(zdsela); // kill select area dialog if active - freeMouse(); // free mouse v.13.09 - free(curr_file); // free image file - curr_file = 0; - *SB_text = 0; - ///curr_file_posn = 0; // v.13.12 - } - - PXB_free(Fpxb); - PXM_free(E0pxm); - PXM_free(E1pxm); - PXM_free(E3pxm); - PXM_free(ERpxm); - PXM_free(E8pxm); - PXM_free(E9pxm); - - mutex_unlock(&Fpixmap_lock); - return; -} - - -/**************************************************************************/ - -// Get a virtual pixel at location (px,py) (real) in a PXM pixmap. -// Get the overlapping real pixels and build a composite. -// Output vpix is float[3] supplied by caller. -// Returns 1 if OK, 0 if px/py out of limits for pxm. - -int vpixel(PXM *pxm, float px, float py, float *vpix) -{ - int ww, hh, px0, py0; - float *pix0, *pix1, *pix2, *pix3; - float f0, f1, f2, f3; - float red, green, blue; - - ww = pxm->ww; - hh = pxm->hh; - - px0 = px; // integer pixel containing (px,py) - py0 = py; - - if (px0 < 1 || py0 < 1) return 0; // void edge pixels - if (px0 > ww-2 || py0 > hh-2) return 0; - - pix0 = PXMpix(pxm,px0,py0); // 4 pixels based at (px0,py0) - pix1 = pix0 + ww * 3; - pix2 = pix0 + 3; - pix3 = pix0 + ww * 3 + 3; - - f0 = (px0+1 - px) * (py0+1 - py); // overlap of (px,py) - f1 = (px0+1 - px) * (py - py0); // in each of the 4 pixels - f2 = (px - px0) * (py0+1 - py); - f3 = (px - px0) * (py - py0); - - red = f0 * pix0[0] + f1 * pix1[0] + f2 * pix2[0] + f3 * pix3[0]; // sum the weighted inputs - green = f0 * pix0[1] + f1 * pix1[1] + f2 * pix2[1] + f3 * pix3[1]; - blue = f0 * pix0[2] + f1 * pix1[2] + f2 * pix2[2] + f3 * pix3[2]; - if (blue < 0.5) blue = 0; // edge or voided pixel - - vpix[0] = red; - vpix[1] = green; - vpix[2] = blue; - - if (! blue) return 0; - return 1; -} - - -/**************************************************************************/ - -// compare two floats for significant difference -// return: 0 difference not significant -// +1 d1 > d2 -// -1 d1 < d2 - -int sigdiff(float d1, float d2, float signf) -{ - float diff = fabsf(d1-d2); - if (diff == 0.0) return 0; - diff = diff / (fabsf(d1) + fabsf(d2)); - if (diff < signf) return 0; - if (d1 > d2) return 1; - else return -1; -} - - -/************************************************************************** - PXM pixmap functions - RGB float pixel map - pixel RGB values may range from 0.0 to 255.99 -***************************************************************************/ - - -// audit the contents of a PXM pixmap // v.13.10 - -void PXM_audit(PXM *pxm) -{ - int px, py; - float bright, *pix; - - for (py = 0; py < pxm->hh; py++) - for (px = 0; px < pxm->ww; px++) - { - pix = PXMpix(pxm,px,py); - bright = pixbright(pix); - if (int(bright) < 0 || int(bright) > 255) - zappcrash("PXM_audit: px/py %d/%d RGB %.2f %.2f %.2f bright %.2f %d \n", - px,py,pix[0],pix[1],pix[2],bright,int(bright)); - } - return; -} - - -// initialize PXM pixmap - allocate memory - -PXM * PXM_make(int ww, int hh) -{ - if (ww < 5 || hh < 5) { // impose reasonableness limits - zmessageACK(mWin,0,"image too small: %d %d",ww,hh); - return 0; - } - - if (ww > wwhh_limit || hh > wwhh_limit) { - zmessageACK(mWin,0,"image too big: %d %d",ww,hh); - return 0; - } - - PXM *pxm = (PXM *) malloc(sizeof(PXM)); // 0.45 sec for 116 megapix image (1.4 GB) - pxm->ww = ww; - pxm->hh = hh; - pxm->pixels = (float *) malloc(ww*hh*12); // float[3] per pixel - if (! pxm->pixels) { - zmessageACK(mWin,0,"memory allocation failure"); // v.14.03 - exit(12); - } - memset(pxm->pixels,0,ww*hh*12); // clear pixels to zero v.14.02 - strcpy(pxm->wmi,"pxmpix"); - return pxm; -} - - -// free PXM pixmap - -void PXM_free(PXM *&pxm) -{ - if (! pxm) return; - if (! strEqu(pxm->wmi,"pxmpix")) - zappcrash("PXM_free(), bad PXM"); - strcpy(pxm->wmi,"xxxxxx"); - free(pxm->pixels); - free(pxm); - pxm = 0; - return; -} - - -// create a copy of a PXM pixmap - -PXM * PXM_copy(PXM *pxm1) -{ - int cc; - PXM *pxm2; - - pxm2 = PXM_make(pxm1->ww, pxm1->hh); - cc = pxm1->ww * pxm1->hh * 3 * sizeof(float); - memcpy(pxm2->pixels,pxm1->pixels,cc); - return pxm2; -} - - -// create a copy of a PXM rectangular area - -PXM * PXM_copy_area(PXM *pxm1, int orgx, int orgy, int ww2, int hh2) -{ - float *pix1, *pix2; - PXM *pxm2 = 0; - int px1, py1, px2, py2; - - pxm2 = PXM_make(ww2,hh2); - - for (py1 = orgy, py2 = 0; py2 < hh2; py1++, py2++) - { - pix1 = PXMpix(pxm1,orgx,orgy); - pix2 = PXMpix(pxm2,0,py2); - - for (px1 = orgx, px2 = 0; px2 < ww2; px1++, px2++) - { - pix2[0] = pix1[0]; - pix2[1] = pix1[1]; - pix2[2] = pix1[2]; - pix1 += 3; - pix2 += 3; - } - } - - return pxm2; -} - - -// replace blue = 0 pixels with blue = 1 -// (blue = 0 reserved for pixels voided by warp or overlay offsets) -// needs about 0.013 seconds for 10 megapixel image and 3.3 GHz CPU - -void PXM_fixblue(PXM *pxm) -{ - int size; - float *pixel, *pixel0, *pixelN; - - size = pxm->ww * pxm->hh * 3; - pixel0 = pxm->pixels + 2; - pixelN = pixel0 + size; - - for (pixel = pixel0; pixel < pixelN; pixel += 3) // +3 is +12 bytes - if (! *pixel) *pixel = 1.0; - - return; -} - - -/************************************************************************** - - Rescale PXM image to new width and height. - The scale ratios may be different for width and height. - - Method: - The input and output images are overlayed, stretching or shrinking the - output pixels as needed. The contribution of each input pixel overlapping - an output pixel is proportional to the area of the output pixel covered by - the input pixel. The contributions of all overlaping input pixels are added. - The work is spread among Nwt threads to reduce time on SMP processors. - - Example: if the output image is 40% of the input image, then: - outpix[0,0] = 0.16 * inpix[0,0] + 0.16 * inpix[1,0] + 0.08 * inpix[2,0] - + 0.16 * inpix[0,1] + 0.16 * inpix[1,1] + 0.08 * inpix[2,1] - + 0.08 * inpix[0,2] + 0.08 * inpix[1,2] + 0.04 * inpix[2,2] - -***************************************************************************/ - -namespace pxmrescale { - float *bmp1; - float *bmp2; - int ww1; - int hh1; - int ww2; - int hh2; - int *px1L; - int *py1L; - float *pxmap; - float *pymap; - int maxmapx; - int maxmapy; - int busy[max_threads]; -} - -PXM * PXM_rescale(PXM *pxm1, int ww, int hh) -{ - using namespace pxmrescale; - - void * pxm_rescale_thread(void *arg); - - PXM *pxm2; - int px1, py1, px2, py2; - int pxl, pyl, pxm, pym, ii; - float scalex, scaley; - float px1a, py1a, px1b, py1b; - float fx, fy; - - ww1 = pxm1->ww; // input PXM - hh1 = pxm1->hh; - bmp1 = pxm1->pixels; - - pxm2 = PXM_make(ww,hh); // output PXM - if (! pxm2) return 0; - ww2 = ww; - hh2 = hh; - bmp2 = pxm2->pixels; - - memset(bmp2, 0, ww2 * hh2 * 3 * sizeof(float)); // clear output pixmap - - scalex = 1.0 * ww1 / ww2; // compute x and y scales - scaley = 1.0 * hh1 / hh2; - - if (scalex <= 1) maxmapx = 2; // compute max input pixels - else maxmapx = scalex + 2; // mapping into output pixels - maxmapx += 1; // for both dimensions - if (scaley <= 1) maxmapy = 2; // (pixels may not be square) - else maxmapy = scaley + 2; - maxmapy += 1; // (extra entry for -1 flag) - - pymap = (float *) malloc(hh2 * maxmapy * sizeof(float)); // maps overlap of < maxmap input - pxmap = (float *) malloc(ww2 * maxmapx * sizeof(float)); // pixels per output pixel - - py1L = (int *) malloc(hh2 * sizeof(int)); // maps first (lowest) input pixel - px1L = (int *) malloc(ww2 * sizeof(int)); // per output pixel - - for (py2 = 0; py2 < hh2; py2++) // loop output y-pixels - { - py1a = py2 * scaley; // corresponding input y-pixels - py1b = py1a + scaley; - if (py1b >= hh1) py1b = hh1 - 0.001; // fix precision limitation - pyl = py1a; - py1L[py2] = pyl; // 1st overlapping input pixel - - for (py1 = pyl, pym = 0; py1 < py1b; py1++, pym++) // loop overlapping input pixels - { - if (py1 < py1a) { // compute amount of overlap - if (py1+1 < py1b) fy = py1+1 - py1a; // 0.0 to 1.0 - else fy = scaley; - } - else if (py1+1 > py1b) fy = py1b - py1; - else fy = 1; - - ii = py2 * maxmapy + pym; // save it - pymap[ii] = 0.9999 * fy / scaley; - } - ii = py2 * maxmapy + pym; // set an end marker after - pymap[ii] = -1; // last overlapping pixel - } - - for (px2 = 0; px2 < ww2; px2++) // do same for x-pixels - { - px1a = px2 * scalex; - px1b = px1a + scalex; - if (px1b >= ww1) px1b = ww1 - 0.001; - pxl = px1a; - px1L[px2] = pxl; - - for (px1 = pxl, pxm = 0; px1 < px1b; px1++, pxm++) - { - if (px1 < px1a) { - if (px1+1 < px1b) fx = px1+1 - px1a; - else fx = scalex; - } - else if (px1+1 > px1b) fx = px1b - px1; - else fx = 1; - - ii = px2 * maxmapx + pxm; - pxmap[ii] = 0.9999 * fx / scalex; - } - ii = px2 * maxmapx + pxm; - pxmap[ii] = -1; - } - - for (ii = 0; ii < Nwt; ii++) { // start working threads - busy[ii] = 1; - start_detached_thread(pxm_rescale_thread,&Nval[ii]); - } - - for (ii = 0; ii < Nwt; ii++) // wait for all done - while (busy[ii]) zsleep(0.004); - - free(px1L); - free(py1L); - free(pxmap); - free(pymap); - - return pxm2; -} - -void * pxm_rescale_thread(void *arg) // worker thread function -{ - using namespace pxmrescale; - - int index = *((int *) arg); - int px1, py1, px2, py2; - int pxl, pyl, pxm, pym, ii; - float *pixel1, *pixel2; - float fx, fy, ftot; - float red, green, blue; - - for (py2 = index; py2 < hh2; py2 += Nwt) // loop output y-pixels - { - pyl = py1L[py2]; // corresp. 1st input y-pixel - - for (px2 = 0; px2 < ww2; px2++) // loop output x-pixels - { - pxl = px1L[px2]; // corresp. 1st input x-pixel - - red = green = blue = 0; // initz. output pixel - - for (py1 = pyl, pym = 0; ; py1++, pym++) // loop overlapping input y-pixels - { - ii = py2 * maxmapy + pym; // get y-overlap - fy = pymap[ii]; - if (fy < 0) break; // no more pixels - - for (px1 = pxl, pxm = 0; ; px1++, pxm++) // loop overlapping input x-pixels - { - ii = px2 * maxmapx + pxm; // get x-overlap - fx = pxmap[ii]; - if (fx < 0) break; // no more pixels - - ftot = fx * fy; // area overlap = x * y overlap - pixel1 = bmp1 + (py1 * ww1 + px1) * 3; - red += pixel1[0] * ftot; // add input pixel * overlap - green += pixel1[1] * ftot; - blue += pixel1[2] * ftot; - } - - pixel2 = bmp2 + (py2 * ww2 + px2) * 3; // save output pixel - pixel2[0] = red; - pixel2[1] = green; - pixel2[2] = blue; - } - } - } - - busy[index] = 0; - return 0; -} - - -/************************************************************************** - - PXM *pxm2 = PXM_rotate(PXM *pxm1, float angle) - - Rotate PXM pixmap through an arbitrary angle (degrees). - - The returned image has the same size as the original, but the - pixmap size is increased to accomodate the rotated image. - (e.g. a 100x100 image rotated 45 deg. needs a 142x142 pixmap). - - The space added around the rotated image is black (RGB 0,0,0). - Angle is in degrees. Positive direction is clockwise. - Speed is about 28 million pixels/sec/thread for a 3.3 GHz CPU. - Loss of resolution is less than 1 pixel. - - Work is divided among Nwt threads to gain speed. - -***************************************************************************/ - -namespace pxmrotate { - int busy = 0; - float *bmp1; - float *bmp2; - int ww1; - int hh1; - int ww2; - int hh2; - float angle; -} - -PXM * PXM_rotate(PXM *pxm1, float anglex) -{ - using namespace pxmrotate; - - void *PXM_rotate_thread(void *); - - int ii; - PXM *pxm2; - - ww1 = pxm1->ww; // input PXM - hh1 = pxm1->hh; - bmp1 = pxm1->pixels; - angle = anglex; - - while (angle < -180) angle += 360; // normalize, -180 to +180 - while (angle > 180) angle -= 360; - angle = angle * pi / 180; // radians, -pi to +pi - - if (fabsf(angle) < 0.001) { // angle = 0 within my precision - pxm2 = PXM_copy(pxm1); // return a copy of the input PXM - return pxm2; - } - - ww2 = ww1*fabsf(cosf(angle)) + hh1*fabsf(sinf(angle)); // rectangle containing rotated image - hh2 = ww1*fabsf(sinf(angle)) + hh1*fabsf(cosf(angle)); - - pxm2 = PXM_make(ww2,hh2); // output PXM - bmp2 = pxm2->pixels; - - for (ii = 0; ii < Nwt; ii++) // start worker threads - start_detached_thread(PXM_rotate_thread,&Nval[ii]); - zadd_locked(busy,+Nwt); - - while (busy) zsleep(0.004); // wait for completion - return pxm2; -} - -void * PXM_rotate_thread(void *arg) -{ - using namespace pxmrotate; - - int index = *((int *) (arg)); - int px2, py2, px0, py0; - float *pix0, *pix1, *pix2, *pix3; - float px1, py1; - float f0, f1, f2, f3, red, green, blue; - float a, b, d, e, ww15, hh15, ww25, hh25; - - ww15 = 0.5 * ww1; - hh15 = 0.5 * hh1; - ww25 = 0.5 * ww2; - hh25 = 0.5 * hh2; - - a = cosf(angle); - b = sinf(angle); - d = - sinf(angle); - e = cosf(angle); - - for (py2 = index; py2 < hh2; py2 += Nwt) // loop through output pixels - for (px2 = 0; px2 < ww2; px2++) - { - px1 = a * (px2 - ww25) + b * (py2 - hh25) + ww15; // (px1,py1) = corresponding - py1 = d * (px2 - ww25) + e * (py2 - hh25) + hh15; // point within input pixels - - px0 = px1; // pixel containing (px1,py1) - py0 = py1; - - if (px0 < 0 || px0 > ww1-2 || py0 < 0 || py0 > hh1-2) { // if outside input pixel array v.13.09 - pix2 = bmp2 + (py2 * ww2 + px2) * 3; // output is black - pix2[0] = pix2[1] = pix2[2] = 0; - continue; - } - - pix0 = bmp1 + (py0 * ww1 + px0) * 3; // 4 input pixels based at (px0,py0) - pix1 = pix0 + ww1 * 3; - pix2 = pix0 + 3; - pix3 = pix1 + 3; - - f0 = (px0+1 - px1) * (py0+1 - py1); // overlap of (px1,py1) - f1 = (px0+1 - px1) * (py1 - py0); // in each of the 4 pixels - f2 = (px1 - px0) * (py0+1 - py1); - f3 = (px1 - px0) * (py1 - py0); - - red = f0 * pix0[0] + f1 * pix1[0] + f2 * pix2[0] + f3 * pix3[0]; // sum the weighted inputs - green = f0 * pix0[1] + f1 * pix1[1] + f2 * pix2[1] + f3 * pix3[1]; - blue = f0 * pix0[2] + f1 * pix1[2] + f2 * pix2[2] + f3 * pix3[2]; - - pix2 = bmp2 + (py2 * ww2 + px2) * 3; // output pixel - pix2[0] = red; - pix2[1] = green; - pix2[2] = blue; - } - - zadd_locked(busy,-1); - return 0; -} - - -/************************************************************************** - PXB pixmap functions - RGB uint8 pixel map and GdkPixbuf wrapper -***************************************************************************/ - -// Create PXB pixmap with pixels cleared to zero - -PXB * PXB_make(int ww, int hh) -{ - PXB *pxb = (PXB *) malloc(sizeof(PXB)); - strcpy(pxb->wmi,"pxbpix"); - pxb->pixbuf = gdk_pixbuf_new(GDKRGB,0,8,ww,hh); - if (! pxb->pixbuf) { - zmessageACK(mWin,0,"memory allocation failure"); // v.14.03 - exit(12); - } - pxb->pixels = gdk_pixbuf_get_pixels(pxb->pixbuf); - pxb->ww = ww; - pxb->hh = hh; - pxb->rs = gdk_pixbuf_get_rowstride(pxb->pixbuf); - int cc = hh * pxb->rs; - memset(pxb->pixels,0,cc); - return pxb; -} - - -// Create a PXB pixmap from a GdkPixbuf -// The pixbuf is used directly and is not duplicated - -PXB * PXB_make(GdkPixbuf *pixbuf1) -{ - PXB *pxb2 = (PXB *) malloc(sizeof(PXB)); - strcpy(pxb2->wmi,"pxbpix"); - pxb2->pixbuf = pixbuf1; - pxb2->ww = gdk_pixbuf_get_width(pixbuf1); - pxb2->hh = gdk_pixbuf_get_height(pixbuf1); - pxb2->rs = gdk_pixbuf_get_rowstride(pixbuf1); - pxb2->pixels = gdk_pixbuf_get_pixels(pixbuf1); - return pxb2; -} - - -// Free PXB pixmap - release memory - -void PXB_free(PXB *&pxb) -{ - if (! pxb) return; - if (! strEqu(pxb->wmi,"pxbpix")) - zappcrash("PXB_free(), bad PXB"); - strcpy(pxb->wmi,"xxxxxx"); - g_object_unref(pxb->pixbuf); - free(pxb); - pxb = 0; - return; -} - - -// Copy a PXB pixmap to a new PXB pixmap - -PXB * PXB_copy(PXB *pxb1) -{ - PXB *pxb2 = (PXB *) malloc(sizeof(PXB)); - strcpy(pxb2->wmi,"pxbpix"); - pxb2->pixbuf = gdk_pixbuf_copy(pxb1->pixbuf); - if (! pxb2->pixbuf) { - zmessageACK(mWin,0,"memory allocation failure"); // v.14.03 - exit(12); - } - pxb2->ww = pxb1->ww; - pxb2->hh = pxb1->hh; - pxb2->rs = pxb1->rs; - pxb2->pixels = gdk_pixbuf_get_pixels(pxb2->pixbuf); - return pxb2; -} - - -// Rescale PXB pixmap to given width and height. - -PXB * PXB_rescale(PXB *pxb1, int ww2, int hh2) -{ - GdkPixbuf *pixbuf2 = 0; - - if (strEqu(interpolation,"tiles")) // v.13.05 - pixbuf2 = gdk_pixbuf_scale_simple(pxb1->pixbuf,ww2,hh2,GDK_INTERP_TILES); - else if (strEqu(interpolation,"hyperbolic")) - pixbuf2 = gdk_pixbuf_scale_simple(pxb1->pixbuf,ww2,hh2,GDK_INTERP_HYPER); - else pixbuf2 = gdk_pixbuf_scale_simple(pxb1->pixbuf,ww2,hh2,GDK_INTERP_BILINEAR); - - if (! pixbuf2) { - zmessageACK(mWin,0,"memory allocation failure"); // v.14.03 - exit(12); - } - - PXB *pxb2 = PXB_make(pixbuf2); - return pxb2; -} - - -// Copy a PXM image (RGB float) to a PXB image (RGB uint8). - -PXB * PXM_PXB_copy(PXM *pxm1) -{ - float *pix1; - uint8 *pix2; - PXB *pxb2; - int ww, hh, px, py; - - ww = pxm1->ww; - hh = pxm1->hh; - - pxb2 = PXB_make(ww,hh); - - for (py = 0; py < hh; py++) - { - pix1 = PXMpix(pxm1,0,py); - pix2 = PXBpix(pxb2,0,py); - - for (px = 0; px < ww; px++) - { - pix2[0] = pix1[0]; - pix2[1] = pix1[1]; - pix2[2] = pix1[2]; - pix1 += 3; - pix2 += 3; - } - } - - return pxb2; -} - - -// Update a PXB section from an updated PXM section. -// The PXM and PXB must have the same dimensions. -// px3, py3, ww3, hh3: modified section within pxm1 to propagate to pxb2; - -void PXM_PXB_update(PXM *pxm1, PXB *pxb2, int px3, int py3, int ww3, int hh3) -{ - float *pix1; - uint8 *pix2; - int px, py; - int lox, hix, loy, hiy; - - lox = px3; - hix = px3 + ww3; - if (lox < 0) lox = 0; - if (hix > pxb2->ww) hix = pxb2->ww; - - loy = py3; - hiy = py3 + hh3; - if (loy < 0) loy = 0; - if (hiy > pxb2->hh) hiy = pxb2->hh; - - for (py = loy; py < hiy; py++) - { - pix1 = PXMpix(pxm1,lox,py); - pix2 = PXBpix(pxb2,lox,py); - - for (px = lox; px < hix; px++) - { - pix2[0] = pix1[0]; // 0.0 - 255.99 >> 0 - 255 - pix2[1] = pix1[1]; - pix2[2] = pix1[2]; - pix1 += 3; - pix2 += 3; - } - } - - return; -} - - -// Update an output PXB section from a corresponding input PXB section. -// The two PXBs represent the same image at different scales (width/height). -// px3, py3, ww3, hh3: modified section within pxb1 to propagate to pxb2; - -namespace pxbpxbupdate { - uint8 *bmp1, *bmp2; - int ww1, hh1, ww2, hh2, rs1, rs2; - int pww1, phh1, pww2, phh2; - int *px1L, *py1L; - float scalex, scaley; - float *pxmap, *pymap; - int maxmapx, maxmapy; -} - -void PXB_PXB_update(PXB *pxb1, PXB *pxb2, int px3, int py3, int ww3, int hh3) -{ - using namespace pxbpxbupdate; - - int px1, py1, px2, py2; - int pxl, pyl, pxm, pym, ii; - float px1a, py1a, px1b, py1b; - float fx, fy, ftot; - uint8 *pixel1, *pixel2; - float red, green, blue; - int lox, hix, loy, hiy; - - - ww1 = pxb1->ww; - hh1 = pxb1->hh; - rs1 = pxb1->rs; - bmp1 = pxb1->pixels; - - ww2 = pxb2->ww; - hh2 = pxb2->hh; - rs2 = pxb2->rs; - bmp2 = pxb2->pixels; - - if (ww1 == pww1 && hh1 == phh1 && ww2 == pww2 && hh2 == phh2) // if the sizes are the same as before, - goto copy_pixels; // the pixel mapping math can be avoided. - - pww1 = ww1; - phh1 = hh1; - pww2 = ww2; - phh2 = hh2; - - if (px1L) { // unless this is the first call, - free(px1L); // free prior map memory - free(py1L); - free(pxmap); - free(pymap); - } - - scalex = 1.0 * ww1 / ww2; // compute x and y scales - scaley = 1.0 * hh1 / hh2; - - if (scalex <= 1) maxmapx = 2; // compute max input pixels - else maxmapx = scalex + 2; // mapping into output pixels - maxmapx += 1; // for both dimensions - if (scaley <= 1) maxmapy = 2; // (pixels may not be square) - else maxmapy = scaley + 2; - maxmapy += 1; // (extra entry for -1 flag) - - pymap = (float *) malloc(hh2 * maxmapy * sizeof(float)); // maps overlap of < maxmap input - pxmap = (float *) malloc(ww2 * maxmapx * sizeof(float)); // pixels per output pixel - - py1L = (int *) malloc(hh2 * sizeof(int)); // maps first (lowest) input pixel - px1L = (int *) malloc(ww2 * sizeof(int)); // per output pixel - - for (py2 = 0; py2 < hh2; py2++) // loop output y-pixels - { - py1a = py2 * scaley; // corresponding input y-pixels - py1b = py1a + scaley; - if (py1b >= hh1) py1b = hh1 - 0.001; // fix precision limitation - pyl = py1a; - py1L[py2] = pyl; // 1st overlapping input pixel - - for (py1 = pyl, pym = 0; py1 < py1b; py1++, pym++) // loop overlapping input pixels - { - if (py1 < py1a) { // compute amount of overlap - if (py1+1 < py1b) fy = py1+1 - py1a; // 0.0 to 1.0 - else fy = scaley; - } - else if (py1+1 > py1b) fy = py1b - py1; - else fy = 1; - - ii = py2 * maxmapy + pym; // save it - pymap[ii] = 0.9999 * fy / scaley; - } - ii = py2 * maxmapy + pym; // set an end marker after - pymap[ii] = -1; // last overlapping pixel - } - - for (px2 = 0; px2 < ww2; px2++) // do same for x-pixels - { - px1a = px2 * scalex; - px1b = px1a + scalex; - if (px1b >= ww1) px1b = ww1 - 0.001; - pxl = px1a; - px1L[px2] = pxl; - - for (px1 = pxl, pxm = 0; px1 < px1b; px1++, pxm++) - { - if (px1 < px1a) { - if (px1+1 < px1b) fx = px1+1 - px1a; - else fx = scalex; - } - else if (px1+1 > px1b) fx = px1b - px1; - else fx = 1; - - ii = px2 * maxmapx + pxm; - pxmap[ii] = 0.9999 * fx / scalex; - } - ii = px2 * maxmapx + pxm; - pxmap[ii] = -1; - } - -copy_pixels: - - px3 = px3 / scalex; // convert input area to output area - py3 = py3 / scaley; - ww3 = ww3 / scalex + 2; - hh3 = hh3 / scaley + 2; - - lox = px3; - hix = px3 + ww3; - if (lox < 0) lox = 0; - if (hix > ww2) hix = ww2; - - loy = py3; - hiy = py3 + hh3; - if (loy < 0) loy = 0; - if (hiy > hh2) hiy = hh2; - - for (py2 = loy; py2 < hiy; py2++) // loop output y-pixels - { - pyl = py1L[py2]; // corresp. 1st input y-pixel - - for (px2 = lox; px2 < hix; px2++) // loop output x-pixels - { - pxl = px1L[px2]; // corresp. 1st input x-pixel - - red = green = blue = 0; // initz. output pixel - - for (py1 = pyl, pym = 0; ; py1++, pym++) // loop overlapping input y-pixels - { - ii = py2 * maxmapy + pym; // get y-overlap - fy = pymap[ii]; - if (fy < 0) break; // no more pixels - - for (px1 = pxl, pxm = 0; ; px1++, pxm++) // loop overlapping input x-pixels - { - ii = px2 * maxmapx + pxm; // get x-overlap - fx = pxmap[ii]; - if (fx < 0) break; // no more pixels - - ftot = fx * fy; // area overlap = x * y overlap - pixel1 = bmp1 + py1 * rs1 + px1 * 3; - red += pixel1[0] * ftot; // add input pixel * overlap - green += pixel1[1] * ftot; - blue += pixel1[2] * ftot; - } - - pixel2 = bmp2 + py2 * rs2 + px2 * 3; // save output pixel - pixel2[0] = red; // 0.0 - 255.996 >> 0 - 255 - pixel2[1] = green; - pixel2[2] = blue; - } - } - } - - return; -} - - - diff -Nru fotoxx-14.03/fotoxx-14.03.spec fotoxx-14.04/fotoxx-14.03.spec --- fotoxx-14.03/fotoxx-14.03.spec 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/fotoxx-14.03.spec 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -# RPM spec file for fotoxx -# dcraw, exiftool, xdg-open: needed for execution but not for build. - -Name: fotoxx -Version: 14.03 -Release: 1 -Summary: Edit photos and manage a large collection -Vendor: kornelix -Packager: kornelix@posteo.de -License: GPL3 -Group: graphics -Source: %{name}-%{version}.tar.gz -URL: http://kornelix.com - -%description -Edit photos and manage a large collection. -Includes thumbnail browser/navigator, RAW file import, -a comprehensive set of edit functions working in deep color, -rapid visual feedback, edit/copy/paste selected image areas, -file versioning, batch operations, named collections (views), -HDR, stack and panorama composites, metadata edit and report, -search and display using metadata and directory/file names. - -%prep -%setup -q - -%build -make - -%install -make install PREFIX=$RPM_BUILD_ROOT/usr - -%clean -rm -rf $RPM_BUILD_ROOT - -%files -%defattr(-,root,root) -/usr/bin/%{name} -/usr/share/%{name} -/usr/share/doc/%{name} -/usr/share/applications/%{name}.desktop -/usr/share/man/man1/%{name}.1.gz - - diff -Nru fotoxx-14.03/fotoxx-14.04.cc fotoxx-14.04/fotoxx-14.04.cc --- fotoxx-14.03/fotoxx-14.04.cc 1970-01-01 00:00:00.000000000 +0000 +++ fotoxx-14.04/fotoxx-14.04.cc 2014-04-01 06:09:32.000000000 +0000 @@ -0,0 +1,4946 @@ +/************************************************************************** + + Fotoxx edit photos and manage collections + + Copyright 2007-2014 Michael Cornelison + Source URL: http://kornelix.com/fotoxx + Contact: kornelix@posteo.de + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see http://www.gnu.org/licenses/. + +*************************************************************************** + + main main program, set up defaults + initzfunc initializations, carry out command line options + gtimefunc periodic function + paint_busy show busy indicator on window when something is running + update_statusbar update status parameters on status bar + + topmenufunc track which top-level menu is active + delete_event response function for main window delete event + destroy_event response function for main window delete event + state_event response function for main window fullscreen state change + settab set the current main window tab + tabchanged response function for main window tab change event + tabrecover set back to prior tab if change is not allowed + + mwpaint1 main / drawing window refresh (draw signal response function) + mwpaint2 trigger mwpaint1, callable from theads + mwpaintnow create cairo context and call mwpaint1 + mwpaint3 update drawing window section from updated E3 section + mwpaint4 update drawing window visible portion + + mouse_event mouse event response function + mouse_convert convert mouse/window space to image space + m_zoom main window zoom in/out function + KBstate send KB key from dialog to main window + KBpress KB key press event function + KBrelease KB key release event function + win_fullscreen set main window full screen status + win_unfullscreen restore main window to former size + + draw_pixel draw one overlay pixel using image space + erase_pixel erase one pixel + draw_line draw overlay line in image space + draw_dotline draw overlay dotted-line in image space + erase_line erase line + draw_toplines draw or redraw a set of overlay lines + draw_gridlines draw grid lines over image + add_toptext add to set of overlay text strings + draw_toptext draw set of overlay text strings + erase_toptext remove text from set of overlay text strings + draw_text draw text on window in image space + add_topcircle add a circle to set of overlay circles + draw_topcircles draw the set of overlay circles in window space + erase_topcircles erase the set of overlay circles + draw_mousearc draw a circle or ellipse centered on mouse, image space + + splcurve_init set up a spline curve drawing area + splcurve_adjust mouse event function to manipulate curve nodes + splcurve_draw draw curve through nodes + splcurve_generate generate x/y table of values from curve + splcurve_yval get curve y-value for given x-value + splcurve_load load curve data from a saved file + splcurve_save save curve data to a file + + edit_setup() start an image edit function + edit_cancel() cancle image edit + edit_done() finish image edit + edit_undo() undo current edit (reset) + edit_redo() redo current edit + edit_reset() reset all edit changes + edit_fullsize() convert preview to full size edit + + m_undo undo one edit in a series + m_redo redo one edit in a series + undo_all undo all edits for image + save_undo save image in the undo stack + load_undo load image from the undo stack + checkpend() check list: edit mods lock any quiet + takemouse set mouse event function and special cursor + freemouse remove mouse event function, set normal cursor + + start_thread start thread running + signal_thread signal thread that work is pending + wait_thread_idle wait for pending work complete + wrapup_thread wait for thread exit or command thread exit + wrapup_thread_noblock same with periodic zmainloop() + thread_idle_loop wait for pending work, exit if commanded + thread_exit exit thread unconditionally + start_wthread start a working thread per SMP processor + exit_wthread exit a working thread + wait_wthreads wait for all working threads to exit + + m_favorites function to generate favorites menu + favorites_callback response function for clicked menu + m_help response function for help menu + save_params save parameters when fotoxx exits + load_params load parameters at fotoxx startup + free_resources free resources for the current image file + vpixel get virtual pixel at any image location (float) + sigdiff compare 2 floats with margin of significance + PXM_audit check PXM image for pixel values > 255.99... + PXM_make create new PXM pixmap image + PXM_free destroy PXM and free memory + PXM_copy create a copy of a PXM image + PXM_copy_area create a copy of a rectangular area within a PXM + PXM_fixblue replace blue = 0 pixels with blue = 1 + PXM_rescale create a rescaled copy of a PXM image + PXM_rotate create a rotated copy of a PXM image + + PXB_make create a new PXB image, empty for from GdkPixbuf + PXB_free destroy PXB and free memory + PXB_copy create a copy of a PXB image + PXB_rescale create a rescaled copy of a PXB image + PXM_PXB_copy create a PXB copy of a PXM image + PXM_PXB_update update a rectangular area in a PXB from a corresp. PXM + PXB_PXB_update update a rectangular area in a PXB from another PXB + +***************************************************************************/ + + +#define EX // disable extern declarations +#include "fotoxx.h" + + +// fotoxx main program + +int main(int argc, char *argv[]) +{ + GError *gerror = 0; + char lang[8] = "", iconfile[200]; + int Fclone=0, cloxx=0, cloyy=0, cloww=0, clohh=0; + int err; + struct stat statb; + + if (argc > 1 && strEqu(argv[1],"-v")) { + printz(Frelease "\n"); // print version and exit + return 0; + } + + gtk_init(&argc,&argv); // initz. GTK & strip GTK params + zinitapp("fotoxx",null); // initz. app directories + err = chdir(get_zuserdir()); // set to /home//.fotoxx v.14.02 + + // initialize externals to default values + // (saved parameters will override some of these) + + strcpy(zfuncs::zappname,Frelease); // app name and version + Ffirsttime = 1; // first time startup (params override) + Prelease = strdup("unknown"); // prev. fotoxx release (params override) + Nrelease = strdup("unknown"); // last notified new release + for (int ii = 0; ii < 10; ii++) Nval[ii] = ii; // integer values 0-9 + mwgeom[0] = mwgeom[1] = 100; // default main window geometry + mwgeom[2] = 1200; mwgeom[3] = 800; // v.13.05 + *SB_text = 0; // no status bar text v.14.03 + trimsize[0] = 1600; // default initial image trim size + trimsize[1] = 1000; + trimbuttons[0] = strdup("1:1"); trimratios[0] = strdup("1:1"); // default trim ratio buttons v.13.10 + trimbuttons[1] = strdup("2:1"); trimratios[1] = strdup("2:1"); + trimbuttons[2] = strdup("3:2"); trimratios[2] = strdup("3:2"); + trimbuttons[3] = strdup("4:3"); trimratios[3] = strdup("4:3"); + trimbuttons[4] = strdup("16:9"); trimratios[4] = strdup("16:9"); + trimbuttons[5] = strdup("gold"); trimratios[5] = strdup("1.62:1"); + editresize[0] = 1600; // default initial resize size + editresize[1] = 1200; + currgrid = 0; // default initial grid settings v.13.02 + gridsettings[0][GON] = 0; // grid off + gridsettings[0][GX] = gridsettings[0][GY] = 1; // x/y grid lines enabled + gridsettings[0][GXS] = gridsettings[0][GYS] = 200; // x/y spacing + gridsettings[0][GXC] = gridsettings[0][GYC] = 5; // x/y count + tbar_style = strdup("both"); // default toolbar style + interpolation = strdup("bilinear"); // default image interpolation v.13.05 + startdisplay = strdup("blank"); // start with blank window + Fdragopt = 2; // image drag is magnified scroll + zoomcount = 2; // zooms to reach 2x image size + zoomratio = sqrtf(2); // corresp. zoom ratio + thumbdirk = strdup(""); // default, no thumbnail directory + jpeg_def_quality = 90; // default .jpeg save quality v.13.08 + jpeg_1x_quality = 90; + lens_mm = 35; // pano lens parameters + lens_bow = 0; + RAWcommand = strdup("dcraw -T -6 -w -q 0 -o 1"); // default RAW to tiff command + RAWfiletypes = strdup(".arw .crw .cr2 .dng .erf .iiq .mef .mos " // some of the known RAW file types + ".mpo .nef .nrw .orf .pef .ptx .raw " // (case is not significant here) + ".rw2 .rwl .srf .srw .sr2 "); + imagefiletypes = strdup(".jpg .jpeg .png .tif .tiff .bmp .ico " // supported image file types v.14.01 + ".gif .svg .xpm .tga "); + + black[0] = black[1] = black[2] = 0; // define RGB colors + white[0] = white[1] = white[2] = 255; + red[0] = 255; red[1] = red[2] = 0; + green[1] = 255; green[0] = green[2] = 0; + fg_color = green; // initial foreground drawing color + + GDKblack.red = GDKblack.green = GDKblack.blue = 0; // GDK color for black + GDKblack.alpha = 1; + + arrowcursor = gdk_cursor_new(GDK_TOP_LEFT_ARROW); // cursor for selection + dragcursor = gdk_cursor_new(GDK_CROSSHAIR); // cursor for dragging + drawcursor = gdk_cursor_new(GDK_PENCIL); // cursor for drawing lines + + // process command line parameters + + for (int ii = 1; ii < argc; ii++) // command line parameters + { + char *pp = argv[ii]; + + if (strcmpv(pp,"-debug","-d",null)) // -d -debug + Fdebug = 1; + else if (strcmpv(pp,"-lang","-l",null) && argc > ii+1) // -l -lang lc_RC language/region code + strncpy0(lang,argv[++ii],7); + else if (strcmpv(pp,"-clone","-c",null) && argc > ii+4) { // -c -clone clone new instance + Fclone = 1; + cloxx = atoi(argv[ii+1]); // window position and size + cloyy = atoi(argv[ii+2]); // passed from parent instance + cloww = atoi(argv[ii+3]); + clohh = atoi(argv[ii+4]); + ii += 4; + } + else if (strcmpv(pp,"-recent","-r",null)) // -r -recent recent files gallery + Frecent = 1; + else if (strcmpv(pp,"-new","-n",null)) // -n -new new added files gallery + Fnew = 1; + else if (strcmpv(pp,"-previous","-prev","-p",null)) // -p -prev open previous file + Fprev = 1; + else if (strcmpv(pp,"-blank","-b",null)) // -b -blank start with blank window + Fblank = 1; + else if (strEqu(pp,"-menu") && argc > ii+1) // -menu menuname starting menu + startmenu = strdup(argv[++ii]); + else initial_file = strdup(pp); // must be initial file or directory + } + + ZTXinit(lang); // setup locale and translations + setlocale(LC_NUMERIC,"en_US.UTF-8"); // stop comma decimal points + + // get files in user directory /home//.fotoxx/* + + snprintf(index_dirk,199,"%s/image_index",get_zuserdir()); // image index directory v.14.02 + snprintf(tags_defined_file,199,"%s/tags_defined",get_zuserdir()); // defined tags file + snprintf(recentfiles_file,199,"%s/recent_files",get_zuserdir()); // recent files file (index func) + snprintf(newfiles_file,199,"%s/newest_files",get_zuserdir()); // newest files file (index func) + snprintf(saved_areas_dirk,199,"%s/saved_areas",get_zuserdir()); // saved areas directory + snprintf(collections_dirk,199,"%s/collections",get_zuserdir()); // collections directory + snprintf(collections_copy,199,"%s/collections_copy",get_zuserdir()); // collections copy file + snprintf(saved_curves_dirk,199,"%s/saved_curves",get_zuserdir()); // saved curves directory + snprintf(writetext_dirk,199,"%s/write_text",get_zuserdir()); // write_text directory + snprintf(geotags_dirk,199,"%s/geotags",get_zuserdir()); // geotags directory + snprintf(worldmap_file,200,"%s/world-map-mercator.jpg",geotags_dirk); // world map file v.14.04 + snprintf(favorites_dirk,199,"%s/favorites",get_zuserdir()); // favorites directory + snprintf(locales_dirk,199,"%s/locales",get_zuserdir()); // locales directory + snprintf(mashup_dirk,199,"%s/mashup",get_zuserdir()); // mashup projects directory + locale_filespec("data","quickstart.html",quickstart_file); // quickstart html file + snprintf(latest_release_file,199,"%s/latest_release",get_zuserdir()); // latest fotoxx release file + snprintf(slideshow_dirk,199,"%s/slideshows",get_zuserdir()); // slide show directory + snprintf(pattern_dirk,199,"%s/patterns",get_zuserdir()); // pattern files directory v.14.04 + fotoxx_installs = "http://www.kornelix.com/fotoxx_installs"; // fotoxx install counter v.14.04 + fotoxx_upgrades = "http://www.kornelix.com/fotoxx_upgrades"; // fotoxx upgrade counter v.14.04 + + err = stat(index_dirk,&statb); // create any missing directories + if (err) mkdir(index_dirk,0750); + err = stat(saved_areas_dirk,&statb); + if (err) mkdir(saved_areas_dirk,0750); + err = stat(collections_dirk,&statb); + if (err) mkdir(collections_dirk,0750); + err = stat(saved_curves_dirk,&statb); + if (err) mkdir(saved_curves_dirk,0750); + err = stat(writetext_dirk,&statb); + if (err) mkdir(writetext_dirk,0750); + err = stat(geotags_dirk,&statb); + if (err) mkdir(geotags_dirk,0750); + err = stat(favorites_dirk,&statb); + if (err) mkdir(favorites_dirk,0750); + err = stat(locales_dirk,&statb); // v.13.02 + if (err) mkdir(locales_dirk,0750); + err = stat(mashup_dirk,&statb); // v.13.09 + if (err) mkdir(mashup_dirk,0750); + err = stat(slideshow_dirk,&statb); // v.14.04 + if (err) mkdir(slideshow_dirk,0750); + + // restore parameters from last session + + load_params(); + + // create main window with image file tab and gallery tab + + mWin = gtk_window_new(GTK_WINDOW_TOPLEVEL); // create main window + gtk_window_set_title(MWIN,Frelease); + + tabWin = gtk_notebook_new(); // add tab window to main window + gtk_notebook_set_tab_pos(GTK_NOTEBOOK(tabWin),GTK_POS_LEFT); + gtk_container_add(GTK_CONTAINER(mWin),tabWin); + + snprintf(iconfile,200,"%s/F-tab.png",get_zicondir()); // add vbox as tab F (image file window) + GdkPixbuf * pxbF = gdk_pixbuf_new_from_file_at_size(iconfile,32,32,&gerror); + GtkWidget * iconF = gtk_image_new_from_pixbuf(pxbF); // tabs have icons and tool tips v.13.09 + GtkWidget * buttF = gtk_button_new(); + gtk_button_set_image(GTK_BUTTON(buttF),iconF); + gtk_widget_set_tooltip_text(buttF,ZTX("Tab F: image file view/edit")); + fVbox = gtk_box_new(VERTICAL,0); + gtk_notebook_append_page(GTK_NOTEBOOK(tabWin),fVbox,buttF); + + snprintf(iconfile,200,"%s/G-tab.png",get_zicondir()); // add vbox as tab G (gallery window) + GdkPixbuf * pxbG = gdk_pixbuf_new_from_file_at_size(iconfile,32,32,&gerror); + GtkWidget * iconG = gtk_image_new_from_pixbuf(pxbG); + GtkWidget * buttG = gtk_button_new(); + gtk_button_set_image(GTK_BUTTON(buttG),iconG); + gtk_widget_set_tooltip_text(buttG,ZTX("Tab G: image gallery")); + gVbox = gtk_box_new(VERTICAL,0); + gtk_notebook_append_page(GTK_NOTEBOOK(tabWin),gVbox,buttG); + + snprintf(iconfile,200,"%s/W-tab.png",get_zicondir()); // create tab W (world map window) + GdkPixbuf * pxbW = gdk_pixbuf_new_from_file_at_size(iconfile,32,32,&gerror); + GtkWidget * iconW = gtk_image_new_from_pixbuf(pxbW); + GtkWidget * buttW = gtk_button_new(); + gtk_button_set_image(GTK_BUTTON(buttW),iconW); + gtk_widget_set_tooltip_text(buttW,ZTX("Tab W: world map")); + wVbox = gtk_box_new(VERTICAL,0); + gtk_notebook_append_page(GTK_NOTEBOOK(tabWin),wVbox,buttW); + + build_menus(); // build menus in F and G windows + + wDwin = gtk_drawing_area_new(); // add tabW drawing window + gtk_box_pack_start(GTK_BOX(wVbox),wDwin,1,1,0); // (F/G drawing windows in build_menus()) + + G_SIGNAL(mWin,"delete_event",delete_event,0); // connect signals to main window + G_SIGNAL(mWin,"destroy",destroy_event,0); + G_SIGNAL(mWin,"window-state-event",state_event,0); + + G_SIGNAL(mWin,"key-press-event",KBpress,0); // connect KB events to main window + G_SIGNAL(mWin,"key-release-event",KBrelease,0); + + gtk_widget_add_events(buttF,GDK_BUTTON_PRESS_MASK); // connect tab button events + gtk_widget_add_events(buttG,GDK_BUTTON_PRESS_MASK); + gtk_widget_add_events(buttW,GDK_BUTTON_PRESS_MASK); + G_SIGNAL(buttF,"button-press-event",tabbutton,&Nval[0]); + G_SIGNAL(buttG,"button-press-event",tabbutton,&Nval[1]); + G_SIGNAL(buttW,"button-press-event",tabbutton,&Nval[2]); + + G_SIGNAL(tabWin,"switch-page",tabchanged,-1); // connect tab switched event + + gtk_widget_add_events(fDwin,GDK_BUTTON_PRESS_MASK); // connect mouse events to image window + gtk_widget_add_events(fDwin,GDK_BUTTON_RELEASE_MASK); + gtk_widget_add_events(fDwin,GDK_BUTTON_MOTION_MASK); // motion with button pressed + gtk_widget_add_events(fDwin,GDK_POINTER_MOTION_MASK); // pointer motion + gtk_widget_add_events(fDwin,GDK_SCROLL_MASK); // scroll wheel + G_SIGNAL(fDwin,"button-press-event",mouse_event,0); + G_SIGNAL(fDwin,"button-release-event",mouse_event,0); + G_SIGNAL(fDwin,"motion-notify-event",mouse_event,0); + G_SIGNAL(fDwin,"scroll-event",mouse_event,0); + G_SIGNAL(fDwin,"draw",mwpaint1,0); // connect draw signal + + gtk_widget_add_events(gDwin,GDK_BUTTON_PRESS_MASK); // connect mouse events to gallery window + gtk_widget_add_events(gDwin,GDK_BUTTON_RELEASE_MASK); + G_SIGNAL(gDwin,"button-release-event",navi::mouse_event,0); // v.14.01 + + G_SIGNAL(gDwin,"draw",navi::gallery_paint,0); // connect draw signal to gallery window + + gtk_widget_add_events(gPath,GDK_BUTTON_PRESS_MASK); // connect mouse to gallery + G_SIGNAL(gPath,"button-press-event",navi::changedirk,0); // navigation widgets + G_SIGNAL(gTop,"clicked",navi::newtop,0); + + gtk_widget_add_events(wDwin,GDK_BUTTON_PRESS_MASK); // connect mouse events to world map window + gtk_widget_add_events(wDwin,GDK_BUTTON_RELEASE_MASK); + gtk_widget_add_events(wDwin,GDK_BUTTON_MOTION_MASK); // motion with button pressed + gtk_widget_add_events(wDwin,GDK_POINTER_MOTION_MASK); // pointer motion + gtk_widget_add_events(wDwin,GDK_SCROLL_MASK); // scroll wheel + G_SIGNAL(wDwin,"button-press-event",mouse_event,0); + G_SIGNAL(wDwin,"button-release-event",mouse_event,0); + G_SIGNAL(wDwin,"motion-notify-event",mouse_event,0); + G_SIGNAL(wDwin,"scroll-event",mouse_event,0); + G_SIGNAL(wDwin,"draw",mwpaint1,0); + + drag_drop_connect(mWin,m_open_drag); // connect drag-drop to main window + + mwpC = &mwpF; // tab F is current + + // open main window and start GTK main loop + + if (Fclone) { // clone: open new window + gtk_window_move(MWIN,cloxx+20,cloyy+30); // slightly offset from old window + gtk_window_resize(MWIN,cloww-20,clohh-30); + } + else { + gtk_window_move(MWIN,mwgeom[0],mwgeom[1]); // main window geometry + gtk_window_resize(MWIN,mwgeom[2],mwgeom[3]); // defaults or last session params + } + + gtk_widget_show_all(mWin); // show all widgets + gtk_widget_realize(fDwin); // compensate GTK bug + gtk_widget_realize(wDwin); // compensate GTK bug + + #define SF0 (GtkStateFlags) 0 + gtk_widget_override_background_color(fDwin,SF0,&GDKblack); // black backgrounds for F and W tabs + gtk_widget_override_background_color(wDwin,SF0,&GDKblack); + + cTab = tabF; // set current tab = F + cDwin = fDwin; // curr. drawing window + cSbar = fSbar; // status bar active + gdkWin = gtk_widget_get_window(cDwin); // GDK drawing window + + // start GTK main loop + + g_timeout_add(100,initzfunc,0); // initz. call from gtk_main() v.13.01 + gtk_main(); // start processing window events + return 0; +} + + +/**************************************************************************/ + +// Initial function called from gtk_main() at startup. +// This function MUST return 0. + +int initzfunc(void *) +{ + int Fnewrelease; + int Fexiftool = 0, Fxdgopen = 0, Fdcraw = 0, Fufraw = 0; + int ii, err, err1, err2, npid, contx; + int ftype, Fdirk = 0; + char Lrelease[20], *pp, *pp2; + char procfile[20], buff[200]; + char KBshortsU[200], KBshortsI[200]; + char tonefile[200]; + char favorites_config[200], badnews[200]; + double freememory, cachememory; // available memory at startup + float exifver = 0; + FILE *fid; + struct stat statb; + + cchar *ftmess = ZTX("First time Fotoxx startup. \n" + "Latest version: http://www.kornelix.com/fotoxx \n" + "File Index process will begin (may need some time) \n"); + + cchar *kornelix_fotoxx_release = + "http://www.kornelix.com/uploads/1/3/0/3/13035936/fotoxx-release"; + + cchar *release_notify = "new release %s available at \n" + "http://www.kornelix.com/packages"; + + err = chdir(get_zuserdir()); // working directory .../.fotoxx v.14.04 + + printz(Frelease "\n"); // print Fotoxx release version + + // find and save the main window and pointer device // v.13.08 + + Fwindow = gtk_widget_get_window(mWin); // gdk window for main window + if (Fwindow) Fdisplay = gdk_window_get_display(Fwindow); + if (Fwindow) Fscreen = gdk_window_get_screen(Fwindow); + if (Fdisplay) Fmanager = gdk_display_get_device_manager(Fdisplay); + if (Fmanager) Fpointer = gdk_device_manager_get_client_pointer(Fmanager); + if (! Fscreen || ! Fpointer) { + printz("GTK/GDK failure to find hardware %p %p %p %p %p \n", + Fwindow,Fdisplay,Fscreen,Fmanager,Fpointer); + m_quit(0,0); + exit(1); + } + + // check that necessary programs are installed + + fid = popen("exiftool -ver","r"); // check exiftool version + if (fid) { + ii = fscanf(fid,"%s",buff); + pclose(fid); // bugfix: accept period or comma + convSF(buff,exifver); + printz("exiftool version: %.2f \n",exifver); + if (exifver >= 8.60) Fexiftool = 1; + } + + err = shell_quiet("which xdg-open"); // check for xdg-open + if (! err) Fxdgopen = 1; + err = shell_quiet("which dcraw"); // check for dcraw + if (! err) Fdcraw = 1; + err = shell_quiet("which ufraw"); // check for ufraw + if (! err) Fufraw = 1; + + if (Fexiftool + Fxdgopen + Fdcraw + Fufraw < 4) { // check mandatory dependencies + strcpy(badnews,ZTX("Please install missing programs:")); + if (! Fexiftool) strcat(badnews,"\n exiftool 8.6 or later"); // refuse to start if any are missing + if (! Fxdgopen) strcat(badnews,"\n xdg-utils"); + if (! Fdcraw) strcat(badnews,"\n dcraw"); + if (! Fufraw) strcat(badnews,"\n ufraw"); + zmessageACK(mWin,0,badnews); + m_quit(0,0); + } + + // check for first time Fotoxx install or new release install + // wget is used to PHONE HOME to increment web page counters + + if (Ffirsttime) { // new fotoxx install v.14.04 + showz_html(quickstart_file); + Prelease = strdup(Frelease); + } + + if (! Ffirsttime && strNeq(Prelease,Frelease)) { // Fotoxx release change + zmessLogACK(mWin,"fotoxx new release %s",Frelease); + Prelease = strdup(Frelease); + Fnewrelease = 1; + showz_textfile("doc","changelog"); + snprintf(command,ccc,"wget -b -T 20 -o /dev/null -O /dev/null %s",fotoxx_upgrades); + err = system(command); + } + else Fnewrelease = 0; + + usagecounter += 1; // when usage counter reaches 10 + if (usagecounter == 10) { // call this a real user + snprintf(command,ccc,"wget -b -T 20 -o /dev/null -O /dev/null %s",fotoxx_installs); + err = system(command); + } + + // check for available fotoxx release > installed release + + fid = fopen(latest_release_file,"r"); + if (fid) { + fgets_trim(Lrelease,20,fid,1); // latest release on web site + fclose(fid); + if (strnEqu(Lrelease,"Fotoxx",6)) { // legitimate + printz("latest release: %s \n",Lrelease); + if (strcmp(Frelease,Lrelease) < 0 // notify if release < latest release + && strNeq(Nrelease,Lrelease)) { + zmessageACK(mWin,0,release_notify,Lrelease); + Nrelease = strdup(Lrelease); // only once - save notified release + } + } + } + snprintf(command,ccc,"wget -b -T 20 -o /dev/null -O %s %s", // start retrieval of latest release + latest_release_file, kornelix_fotoxx_release); // (no wait, times out in 20 secs.) + err = system(command); // may return junk if failure + + // delete fotoxx tempdir files if parent process is no longer running + + contx = 0; // v.13.12 + while ((pp = command_output(contx,"find /tmp/fotoxx-*",0))) { + pp2 = strchr(pp,'-'); + if (! pp2) continue; + npid = atoi(pp2+1); // pid of fotoxx owner process + snprintf(procfile,20,"/proc/%d",npid); + err = stat(procfile,&statb); + if (! err) continue; // pid is active, keep + shell_quiet("rm -R -f -v %s",pp); // delete + } + + contx = 0; + while ((pp = command_output(contx,"find /run/shm/fotoxx-*",0))) { + pp2 = strchr(pp,'-'); + if (! pp2) continue; + npid = atoi(pp2+1); // pid of fotoxx owner process + snprintf(procfile,20,"/proc/%d",npid); + err = stat(procfile,&statb); + if (! err) continue; // pid is active, keep + shell_quiet("rm -R -f -v %s",pp); // delete + } + + // set up temp directory using ramdisk if possible + // /run/shm/fotoxx-nnnnnn or /tmp/fotoxx-nnnnnn // v.13.12 + + snprintf(PIDstring,11,"%06d",getpid()); // get process PID 6-digits + sprintf(tempdir,"/run/shm/fotoxx-%s",PIDstring); // ramdisk directory + err = mkdir(tempdir,0750); + if (err) { + sprintf(tempdir,"/tmp/fotoxx-%s",PIDstring); // conventional directory + err = mkdir(tempdir,0750); + } + if (err) { + zmessageACK(mWin,0,"cannot create %s: %s",tempdir,strerror(errno)); + exit(1); + } + printz("tempdir: %s \n",tempdir); + + // file name template for undo/redo files + + snprintf(URS_filename,200,"%s/undo_nn",tempdir); // /run/shm/fotoxx-nnnnnn/undo_nn + + // check free memory and suggest image size limits + + parseprocfile("/proc/meminfo","MemFree:",&freememory,null); // get amount of free memory + parseprocfile("/proc/meminfo","Cached:",&cachememory,null); + freememory = (freememory + cachememory) / 1024; // megabytes + printz("free memory: %.0f MB \n",freememory); + printz("image size limits for good performance: \n"); // v.13.04 + printz(" view: %.0f megapixels \n",(freememory-100)/6); // F + preview, 3 bytes/pixel each + printz(" edit: %.0f megapixels \n",(freememory-100)/54); // + E0/E1/E3/ER, 12 bytes/pixel each + + // update KB shortcuts if needed + + locale_filespec("data","KB-shortcuts",KBshortsI); // installed KB shortcuts + err1 = locale_filespec("user","KB-shortcuts",KBshortsU); // user KB shortcuts + err2 = shell_quiet("cmp -s %s %s",KBshortsU,KBshortsI); // compare + + if (Ffirsttime || err1 || (Fnewrelease && err2)) { // replace KB-shortcuts file v.13.03 + shell_quiet("mv -f %s %s-old",KBshortsU,KBshortsU); + shell_quiet("cp %s %s",KBshortsI,KBshortsU); + printz("new keyboard shortcuts installed \n"); + } + KBshortcuts_load(); // load KB shortcuts from file v.13.03 + + // copy default pattern files if not already done + + err = stat(pattern_dirk,&statb); // v.14.04 + if (err) { + printz("copy default pattern files \n"); + mkdir(pattern_dirk,0750); + shell_quiet("cp -n %s/patterns/* %s",get_zdatadir(),pattern_dirk); + } + + // create tags_defined file if not already + + err = stat(tags_defined_file,&statb); // v.13.08 + if (err) { + printz("create default tags_defined file \n"); + shell_quiet("cp %s/tags_defined %s",get_zdatadir(),tags_defined_file); + } + + // if no favorites menu, copy installation default + + snprintf(favorites_config,200,"%s/menu-config",favorites_dirk); // v.13.09 + err = stat(favorites_config,&statb); + if (err) { + printz("create default favorites menu \n"); + shell_quiet("cp -R -n %s/favorites/* %s",get_zdatadir(),favorites_dirk); + } + + // if no slide show pause tone file, copy installation default + + snprintf(tonefile,200,"%s/slideshow-tone.oga",slideshow_dirk); // v.14.04 + err = stat(tonefile,&statb); + if (err) { + printz("create default slideshow pause tone file \n"); + shell_quiet("cp %s/slideshow-tone.oga %s",get_zdatadir(),tonefile); + } + + // miscellaneous + + Nwt = get_nprocs(); // get SMP CPU count + if (Nwt <= 0) Nwt = 2; + if (Nwt > max_threads) Nwt = max_threads; // compile time limit + printz("using %d threads \n",Nwt); + + mutex_init(&Fpixmap_lock,0); // setup lock for edit pixmaps + mutex_init(&preload_lock,0); // setup lock for file preload function + + zdialog_inputs("load"); // load saved dialog inputs + zdialog_positions("load"); // load saved dialog positions + + exiftool_server(null); // kill orphan exiftool process + + g_timeout_add(100,gtimefunc,0); // start periodic function (100 ms) v.13.11 + + // create or update image index file // v.14.02 + // cannot continue until completed OK + + if (Ffirsttime) // if first startup, explain + zmessageACK(mWin,0,ftmess); // image file index process + + Findexdone = 0; // insist on index rebuild v.14.02 + while (! Findexdone) index_rebuild(0); // until successfully completed + + Ffirsttime = 0; // reset first time flag + save_params(); // save parameters now + + // set current directory/file from command line if present + + curr_dirk = strdup(topdirks[0]); // default 1st top image directory + + if (initial_file) { // from command line + pp = realpath(initial_file,0); // prepend directory if needed + if (pp) { + free(initial_file); + initial_file = strdup(pp); + free(pp); + } + else { + printz("invalid file: %s \n",initial_file); // invalid file path + free(initial_file); + initial_file = 0; + } + } + + if (initial_file) { + ftype = image_file_type(initial_file); + if (ftype == 0) { // non-existent file + printz("invalid file: %s \n",initial_file); + free(initial_file); + initial_file = 0; + } + else if (ftype == 1) { // is a directory + if (curr_dirk) free(curr_dirk); + curr_dirk = initial_file; + initial_file = 0; + Fdirk = 1; + } + else { + if (curr_dirk) free(curr_dirk); + curr_dirk = strdup(initial_file); // set current directory from file + pp = strrchr(curr_dirk,'/'); + if (pp) *pp = 0; + } + } + + if (initial_file) // open initial file + f_open(initial_file); + + else if (Fdirk) { // open initial directory - gallery + gallery(curr_dirk,"init"); // v.13.01 + gallery(0,"paint"); + settab("G"); + } + + else if (Fprev) // start with previous file + m_previous(0,0); + + else if (Frecent) // start with recent files + m_recentfiles(0,0); + + else if (Fnew) // start with newly added files + m_newfiles(0,0); // v.13.07 + + else if (Fblank) { /* do nothing */ } // start with blank window + + // if no command line option, get startup option from user settings + + else if (strEqu(startdisplay,"recent")) // recent files gallery + m_recentfiles(0,0); + + else if (strEqu(startdisplay,"newest")) // newest files gallery + m_newfiles(0,0); + + else if (strEqu(startdisplay,"prevG")) { // previous gallery + m_previous(0,0); + printf("prev gallery \n"); + gallery(curr_dirk,"init",0); + gallery(0,"paint"); + settab("G"); + } + + else if (strEqu(startdisplay,"prevI")) // previous image file v.14.03 + m_previous(0,"first"); + + else if (strEqu(startdisplay,"dirk")) { // given directory + if (startdirk && *startdirk == '/') { + if (curr_dirk) free(curr_dirk); + curr_dirk = strdup(startdirk); + navi::thumbsize = 128; + gallery(curr_dirk,"init",0); // v.13.01 + gallery(0,"paint"); + settab("G"); // v.13.04 + } + } + + else if (strEqu(startdisplay,"file")) // given image file + f_open(startfile); + + if (startmenu) { // startup menu on command line + printz("startmenu: %s \n",startmenu); + for (ii = 0; ii < Nmenus; ii++) // convert menu name to menu function + if (strcasecmp(ZTX(startmenu),ZTX(menutab[ii].menu)) == 0) break; + if (ii < Nmenus) menutab[ii].func(0,menutab[ii].arg); // call the menu function + } + + zmainloop(); // mysterious, avoid blank window + return 0; // don't come back +} + + +/**************************************************************************/ + +// Periodic function (100 milliseconds) +// Avoid any thread usage of gtk/gdk functions. + +int gtimefunc(void *arg) +{ + static int domore = 0; + + if (Frefresh && cDwin) { // window update needed v.13.04 + if (mutex_trylock(&Fpixmap_lock) != 0) return 1; // pixmaps locked, come back later + mutex_unlock(&Fpixmap_lock); // (mwpaint1 will lock) + gtk_widget_queue_draw(cDwin); + } + + if (zd_thread && zd_thread_event) { // send dialog event from thread v.13.09 + zdialog_send_event(zd_thread,zd_thread_event); + zd_thread_event = 0; + } + + if (--domore > 0) return 1; // do rest 1/5 as frequently + domore = 5; + + update_statusbar(); // update status bar information + paint_busy(); // paint "BUSY" on window if something busy + + return 1; +} + + +/**************************************************************************/ + +// Watch globals Fthreadbusy, Ffuncbusy, Findexbusy. +// Display spinner if any busy flag > 0. +// Add caller message if present. +// Add percent complete if Fbusy_goal > 0. +// window title bar: [x] - [_] window title ... ✻ caller message 99 % + +void paint_busy(cchar *message) +{ + #define GSFNORMAL GTK_STATE_FLAG_NORMAL + #define HORIZONTAL GTK_ORIENTATION_HORIZONTAL + + static GtkWidget *window = 0, *mlabel = 0, *plabel = 0; + GtkWidget *hbox, *spinner; + static char mmess[100] = "", pmess[12]; + static int pmx, pmy, ww, hh; + int busy, qmx, qmy, percent; + GdkRGBA red = { 1, 0, 0, 1 }; + + busy = Fthreadbusy + Ffuncbusy + Findexbusy; // v.13.12 + + if (! busy) { // nothing busy + if (! window) return; + gtk_widget_destroy(window); // kill popup window + window = 0; + *mmess = 0; + return; + } + + if (window) + { + gtk_window_get_position(MWIN,&qmx,&qmy); // position top of main window + if (qmx != pmx || qmy != pmy) { // window moved + gtk_widget_destroy(window); // kill popup window + window = 0; + } + } + + if (! window) // busy state initiated + { + window = gtk_window_new(GTK_WINDOW_POPUP); // create popup window + hbox = gtk_box_new(HORIZONTAL,0); + gtk_container_add(GTK_CONTAINER(window),hbox); + + spinner = gtk_spinner_new(); // add spinning icon to window + gtk_widget_set_size_request(spinner,20,20); + gtk_widget_override_color(spinner,GSFNORMAL,&red); + gtk_spinner_start(GTK_SPINNER(spinner)); + gtk_box_pack_start(GTK_BOX(hbox),spinner,0,0,2); + + if (message) strncpy0(mmess,message,99); // new message + + if (*mmess) { // keep message + mlabel = gtk_label_new(mmess); + gtk_box_pack_start(GTK_BOX(hbox),mlabel,0,0,10); + } + + if (Fbusy_goal) { + percent = 100 * (Fbusy_done / Fbusy_goal); // add NN % + sprintf(pmess," %02d %c",percent,'%'); + plabel = gtk_label_new(pmess); + gtk_box_pack_start(GTK_BOX(hbox),plabel,0,0,10); + } + + gtk_window_get_position(MWIN,&pmx,&pmy); // position top of main window + gtk_window_get_size(MWIN,&ww,&hh); + gtk_window_move(GTK_WINDOW(window),pmx+ww-200,pmy+5); + gtk_widget_show_all(window); + } + + if (Fbusy_goal) { + percent = 100 * (Fbusy_done / Fbusy_goal); // update NN % + sprintf(pmess," %02d %c",percent,'%'); + gtk_label_set_label(GTK_LABEL(plabel),pmess); + } + + return; +} + + +/**************************************************************************/ + +// update status bar with image data and status +// called from timer function + +void update_statusbar() +{ + static double time1 = 0, time2, cpu1 = 0, cpu2, cpuload; + char text1[300], text2[100]; + static char ptext1[300] = ""; + int faultrate, ww, hh, scale, bpc; + static int ftf = 1; + double file_MB = 1.0 / mega * curr_file_size; + static cchar *reduced, *areaactive, *dialogopen; + static cchar *funcbusy, *indexbusy, *menulock; + + if (ftf) { + ftf = 0; + reduced = ZTX("(reduced)"); + areaactive = ZTX("area active"); + dialogopen = ZTX("dialog open"); + funcbusy = ZTX("function busy"); + indexbusy = ZTX("file index busy"); + menulock = ZTX("menu locked"); + } + + if (! cSbar) return; + + *text1 = *text2 = 0; + + if (! time1) { + time1 = get_seconds(); + cpu1 = jobtime(); + } + + time2 = get_seconds(); // compute process cpu load % + if (time2 - time1 > 1.0) { // at 1 second intervals + cpu2 = jobtime(); + cpuload = 100.0 * (cpu2 - cpu1) / (time2 - time1); + time1 = time2; + cpu1 = cpu2; + } + + faultrate = pagefaultrate(); // recent hard page fault rate v.14.03 + + sprintf(text1,"CPU %03.0f%c PF %d",cpuload,'%',faultrate); // CPU 023% PF 0 + + if (curr_file && Fpxb) // bugfix v.13.02.1 + { + if (E3pxm) { + ww = E3pxm->ww; + hh = E3pxm->hh; + } + else { + ww = Fpxb->ww; + hh = Fpxb->hh; + } + + bpc = curr_file_bpc; + + snprintf(text2,99," %dx%dx%d",ww,hh,bpc); // 2345x1234x16 (preview) 1.56MB 45% + strcat(text1,text2); + if (CEF && CEF->Fpreview) strncatv(text1,300," ",reduced,0); // v.13.04 + sprintf(text2," %.2fMB",file_MB); + strcat(text1,text2); + scale = Mscale * 100 + 0.5; + sprintf(text2," %d%c",scale,'%'); + strcat(text1,text2); + + if (URS_pos) { // edit undo/redo stack depth + snprintf(text2,99," %s: %d",ZTX("edits"),URS_pos); + strcat(text1,text2); + } + } + + if (sa_stat == 3) strncatv(text1,300," ",areaactive,0); + if (zfuncs::zdialog_busy) strncatv(text1,300," ",dialogopen,0); + + if (Ffuncbusy) strncatv(text1,300," ",funcbusy,0); // v.13.12 + if (Findexbusy) strncatv(text1,300," ",indexbusy,0); + if (Fmenulock) strncatv(text1,300," ",menulock,0); + + if (*SB_text) { // application text + strcat(text1," "); + strcat(text1,SB_text); + } + + if (strEqu(text1,ptext1)) return; // if no change, don't output v.13.10 + + stbar_message(cSbar,text1); // write to status bar + strcpy(ptext1,text1); + + return; +} + + +/**************************************************************************/ + +// process top-level menu entry + +void topmenufunc(GtkWidget *, cchar *menu) +{ + topmenu = (char *) menu; // remember top-level menu name + return; +} + + +// functions for main window event signals + +int delete_event() // main window closed +{ + int yn; + + printz("main window delete event \n"); + if (checkpend("mods")) return 1; // allow user bailout v.13.12 + if (zfuncs::zdialog_busy) { + yn = zmessageYN(mWin,ZTX("Kill active dialog?")); // allow user bailout v.14.01 + if (! yn) return 1; + } + quitxx(); + return 0; +} + +int destroy_event() // main window destroyed +{ + printz("main window destroy event \n"); + quitxx(); + return 0; +} + +int state_event(GtkWidget *, GdkEvent *event) // main window state changed +{ + int state = ((GdkEventWindowState *) event)->new_window_state; // track window fullscreen status + if (state & GDK_WINDOW_STATE_FULLSCREEN) Ffullscreen = 1; + else Ffullscreen = 0; + return 0; +} + + +/**************************************************************************/ + +// set window visible tab, F/G/W, under program control + +int forcetab = 0; + +int settab(cchar *tabname) +{ + int tab; + + if (strEqu(tabname,"F")) tab = tabF; + if (strEqu(tabname,"G")) tab = tabG; + if (strEqu(tabname,"W")) tab = tabW; + if (tab == cTab) return 1; // no change + + forcetab = 1; // programmed tab changes OK v.13.12 + gtk_notebook_set_current_page(GTK_NOTEBOOK(tabWin),tab); + return 1; +} + + +// tab button pressed, set new current tab from button + +int tabbutton(GtkWidget *, GdkEvent *, void *arg) +{ + int tab = *((int *) arg); + gtk_notebook_set_current_page(GTK_NOTEBOOK(tabWin),tab); + return 0; +} + + +// current tab has changed, by user or by function settab() above + +int tabchanged(GtkNotebook *, GtkWidget *, int tab, void *arg) // overhauled v.13.03 +{ + int tabrecover(void *); + + if (tab == cTab) return 0; // no tab change + + if (! forcetab) { // user tab change v.13.12 + if (checkpend("edit lock quiet")) { // not allowed + g_timeout_add(0,tabrecover,0); // schedule tab recover function + return 0; // (GTK does not work from here) + } + } + else forcetab = 0; + + if (tab == tabW) { // entering tab W + if (! init_geotags()) { // get geotags and world map image + g_timeout_add(0,tabrecover,0); // failed, schedule tab recover + return 0; // (does not work from here) + } + cTab = tab; + mwpC = &mwpW; // use tab W image/window parameters v.13.03 + cDwin = wDwin; // set drawing window, no status bar + cSbar = 0; + gdkWin = gtk_widget_get_window(cDwin); // GDK drawing window + gtk_window_set_title(MWIN,ZTX("Location from World Map")); // window title + m_geotag_worldmap(0,0); // activate clickable world map + mwpaint2(); + } + + if (tab == tabF) { // entering tab F + cTab = tab; + mwpC = &mwpF; // use tab F image/window parameters v.13.03 + cDwin = fDwin; // set drawing window and status bar + cSbar = fSbar; + gdkWin = gtk_widget_get_window(cDwin); // GDK drawing window + set_mwin_title(); // window title from image file + } + + if (tab == tabG) { // entering tab G + cTab = tab; + mwpC = 0; // no image/window parameters + cDwin = 0; // v.13.04 + gdkWin = 0; + cSbar = 0; + F1_help_topic = "navigation"; + if (curr_file) // v.13.03 + gallery(curr_file,"paint",curr_file_posn); + else gallery(0,"paint",-1); + } + + return 0; +} + + +// reset to prior tab after disallowed user change +// use: g_timeout_add(0,tabrecover,0) + +int tabrecover(void *) +{ + printz("tab change blocked %d \n",cTab); + gtk_notebook_set_current_page(GTK_NOTEBOOK(tabWin),cTab); + return 0; // don't come back +} + + +/**************************************************************************/ + +// GTK3 "draw" function for the main/drawing window, tab F and tab W. +// Paint window when created, exposed, resized, or image modified (edited). +// Update window image if scale change or window size change. +// Otherwise do only the draw function (was triggered from GTK). +// Draw the image section currently within the visible window. +// May NOT be called from threads. See mwpaint2() for threads. + +int mwpaint1(GtkWidget *cDwin, cairo_t *cr) +{ + GdkPixbuf *Dpxb; + uint8 *pixels; + static int pdww = 0, pdhh = 0; // prior window size + float wscale, hscale; + int fww, fhh; // current image size at 1x + int mww, mhh; // scaled image size + int centerx, centery; + int quitnow = 0; + int refresh = 0; // flag, full image refesh needed + int mousex, mousey; // mouse position after zoom + int rs; + float magx, magy; // mouse drag, magnification ratios + + if (Fshutdown) quitnow++; // shutdown underway + if (Fblankwindow) quitnow++; // blank window v.13.06 + if (! mwpC || ! mwpC->fpxb) quitnow++; // no image v.13.06 + if (! cDwin) quitnow++; // v.13.04 + if (! gdkWin) quitnow++; + + if (quitnow) { + Frefresh = 0; // reset paint request v.13.06 + return 0; + } + + if (mutex_trylock(&Fpixmap_lock) != 0) return 0; // cannot lock pixmaps (causes window blink) + + Dww = gdk_window_get_width(gdkWin); // (new) drawing window size + Dhh = gdk_window_get_height(gdkWin); + if (Dww < 20 || Dhh < 20) return 0; // too small + + if (Dww != pdww || Dhh != pdhh) { // window size changed + refresh++; // image refresh needed + pdww = Dww; + pdhh = Dhh; + } + + if (Frefresh) { // image refresh needed v.13.06 + if (cTab == tabF && (E0pxm || E3pxm)) { // insure tab F v.13.06 + PXB *pxb1; // update Fpxb from E0/E3 + if (E3pxm) pxb1 = PXM_PXB_copy(E3pxm); // use image now being edited + else pxb1 = PXM_PXB_copy(E0pxm); // or use already edited image + PXB_free(mwpC->fpxb); + mwpC->fpxb = pxb1; + } + refresh++; // full image refresh needed + } + + Frefresh = 0; // reset image paint request v.13.04 + + centerx = (mwpC->morgx + 0.5 * dww) / mwpC->mscale; // center of window, image space + centery = (mwpC->morgy + 0.5 * dhh) / mwpC->mscale; // (before window or scale change) + + fww = mwpC->fpxb->ww; // 1x image size + fhh = mwpC->fpxb->hh; + + if (mwpC->fzoom == 0) { // scale to fit window + wscale = 1.0 * Dww / fww; + hscale = 1.0 * Dhh / fhh; + if (wscale < hscale) mwpC->mscale = wscale; // use greatest ww/hh ratio + else mwpC->mscale = hscale; + if (fww <= Dww && fhh <= Dhh && ! Fblowup) mwpC->mscale = 1.0; // small image 1x unless Fblowup + zoomx = zoomy = 0; // no zoom target + } + else mwpC->mscale = mwpC->fzoom; // scale to fzoom level + + mww = fww * mwpC->mscale; // scaled image size for window + mhh = fhh * mwpC->mscale; + + dww = Dww; // image fitting inside drawing window + if (dww > mww) dww = mww; // image < window size + dhh = Dhh; + if (dhh > mhh) dhh = mhh; + + if (mwpC->mscale != mwpC->pscale) { // scale changed + mwpC->morgx = mwpC->mscale * centerx - 0.5 * dww; // change origin to keep same center + mwpC->morgy = mwpC->mscale * centery - 0.5 * dhh; // (subject to later rules) + mwpC->pscale = mwpC->mscale; // remember scale + refresh++; // full image refresh needed + } + + if (! mwpC->mpxb) refresh++; // v.13.01 + + if (refresh) { // image refresh needed + if (mwpC->mpxb) PXB_free(mwpC->mpxb); + if (mwpC->mscale == 1) mwpC->mpxb = PXB_copy(mwpC->fpxb); // fast 1x zoom + else mwpC->mpxb = PXB_rescale(mwpC->fpxb,mww,mhh); + } + + if ((Mxdrag || Mydrag)) { // pan/scroll via mouse drag + zoomx = zoomy = 0; // no zoom target + magx = 1.0 * (mww - dww) / dww; + magy = 1.0 * (mhh - dhh) / dhh; // needed magnification of mouse movement + if (magx < 1) magx = 1; // retain a minimum speed + if (magy < 1) magy = 1; + + if (Fdragopt == 1) { + mwpC->morgx -= round(Mwdragx); // same direction v.13.05 + mwpC->morgy -= round(Mwdragy); + } + if (Fdragopt == 2) { + mwpC->morgx += round(Mwdragx); // opposite direction + mwpC->morgy += round(Mwdragy); + } + if (Fdragopt == 3) { + mwpC->morgx -= round(Mwdragx * magx); // same direction, magnified + mwpC->morgy -= round(Mwdragy * magy); + } + if (Fdragopt == 4) { + mwpC->morgx += round(Mwdragx * magx); // opposite direction, magnified + mwpC->morgy += round(Mwdragy * magy); + } + } + + if (dww < Dww) mwpC->dorgx = 0.5 * (Dww - dww); // if scaled image width < window width + else mwpC->dorgx = 0; // center image in window + if (dhh < Dhh) mwpC->dorgy = 0.5 * (Dhh - dhh); + else mwpC->dorgy = 0; + + if (zoomx || zoomy) { // requested zoom center + mwpC->morgx = mwpC->mscale * zoomx - 0.5 * dww; // corresp. window position within image + mwpC->morgy = mwpC->mscale * zoomy - 0.5 * dhh; + } + + if (mwpC->morgx < 0) mwpC->morgx = 0; // maximize image within window + if (mwpC->morgy < 0) mwpC->morgy = 0; // (no unused margins) + if (mwpC->morgx + dww > mww) mwpC->morgx = mww - dww; + if (mwpC->morgy + dhh > mhh) mwpC->morgy = mhh - dhh; + + if (zoomx || zoomy) { // zoom target + mousex = zoomx * mwpC->mscale - mwpC->morgx + mwpC->dorgx; + mousey = zoomy * mwpC->mscale - mwpC->morgy + mwpC->dorgy; // mouse pointer follows target + move_pointer(cDwin,mousex,mousey); + zoomx = zoomy = 0; // reset zoom target + } + + pixels = PXBpix(mwpC->mpxb,mwpC->morgx,mwpC->morgy); // mpxb image section within drawing window + rs = mwpC->mpxb->rs; // (morgx/y, dww/hh, rowstride rs) + Dpxb = gdk_pixbuf_new_from_data(pixels,GDKRGB,0,8,dww,dhh,rs,0,0); // make a pixbuf from section + + gdk_cairo_set_source_pixbuf(cr,Dpxb,mwpC->dorgx,mwpC->dorgy); // paint mpxb image section + cairo_paint(cr); + g_object_unref(Dpxb); + + mwcr = cr; // cairo context for draw funcs below + cairo_set_line_width(mwcr,1); + + if (mwpC == &mwpF) { // V.13.06 + if (Ntoplines) draw_toplines(1); // draw line overlays + if (gridsettings[currgrid][GON]) draw_gridlines(); // draw grid lines + if (Ntoptext) draw_toptext(); // draw text strings + if (Ntopcircles) draw_topcircles(); // draw circles + if (Fshowarea) sa_show(1); // draw select area outline + } + + mwcr = 0; // cairo context invalid + mutex_unlock(&Fpixmap_lock); // unlock pixmaps + + if (refresh) { + if (zdbrdist) m_brdist(0,0); // update image histogram v.13.02 + if (zddarkbrite) zdialog_send_event(zddarkbrite,"update"); // update dark/bright pixel display v.13.11 + } + + return 0; +} + + +/**************************************************************************/ + +// Cause (modified) output image to get repainted soon. +// Same as mwpaint1() but delayed. MAY be called from threads. +// mwpaint1() will be called by gtimefunc() next timer cycle. + +void mwpaint2() +{ + Frefresh++; + return; +} + + +// Repaint modified image synchrounously. +// May NOT be called from threads. + +void mwpaintnow() // v.13.04 +{ + cairo_t *ct; // do not use mwcr v.14.04 + + if (! cDwin || ! gdkWin) return; + + while (mutex_trylock(&Fpixmap_lock) != 0) zsleep(0.02); // wait for thread to unlock + mutex_unlock(&Fpixmap_lock); // (mwpaint1 will lock) + + Frefresh++; // v.13.06 + gdk_window_set_background_rgba(gdkWin,&GDKblack); // background for F and W tabs v.14.02 + ct = gdk_cairo_create(gdkWin); + mwpaint1(cDwin,ct); + cairo_destroy(ct); + + return; +} + + +// Update a section of fpxb and mpxb from an updated section of E3pxm, +// then update the corresponding section of the drawing window. +// This avoids a full image refresh, E3pxm > fpxb > mpxb > drawing window. +// px3, py3, ww3, hh3: modified section within E3pxm to be propagated. +// May NOT be called from threads. + +void mwpaint3(int px3, int py3, int ww3, int hh3) +{ + PXM_PXB_update(E3pxm,Fpxb,px3,py3,ww3,hh3); // E3pxm > Fpxb, both 1x scale + PXB_PXB_update(Fpxb,Mpxb,px3,py3,ww3,hh3); // Fpxb > Mpxb, scaled up or down + mwpaint4(px3,py3,ww3,hh3); // update drawing window from Mpxb + return; +} + + +// Repaint a section of the mpxb image in the visible window. +// px3, py3, ww3, hh3: area to be repainted (in 1x image space). +// May NOT be called from threads. + +void mwpaint4(int px3, int py3, int ww3, int hh3) +{ + GdkPixbuf *pixbuf; + uint8 *pixels; + int px2, py2, ww2, hh2, rs; + int crflag = 0; + + if (! gdkWin) return; + + px2 = Mscale * px3 - 2; // 1x image space to mpxb space + py2 = Mscale * py3 - 2; // (expanded) + ww2 = Mscale * ww3 + 2 / Mscale + 4; + hh2 = Mscale * hh3 + 2 / Mscale + 4; + + if (px2 + ww2 > Mpxb->ww) ww2 = Mpxb->ww - px2; // avoid overshoot + if (py2 + hh2 > Mpxb->hh) hh2 = Mpxb->hh - py2; + + if (px2 < Morgx) { // reduce to currently visible window + ww2 = ww2 - (Morgx - px2); + px2 = Morgx; + } + + if (py2 < Morgy) { + hh2 = hh2 - (Morgy - py2); + py2 = Morgy; + } + + if (ww2 <= 0 || hh2 <= 0) return; // completely outside visible window + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + crflag = 1; + } + + pixels = PXBpix(Mpxb,px2,py2); + rs = Mpxb->rs; // row stride + pixbuf = gdk_pixbuf_new_from_data(pixels,GDKRGB,0,8,ww2,hh2,rs,0,0); // pixbuf for image within window + + px2 = px2 - Morgx + Dorgx; // section position in window + py2 = py2 - Morgy + Dorgy; + + gdk_cairo_set_source_pixbuf(mwcr,pixbuf,px2,py2); // draw area to window + cairo_paint(mwcr); + g_object_unref(pixbuf); + + if (Fshowarea) { + px3 = (px2 - Dorgx + Morgx) / Mscale; // back to image scale, expanded + py3 = (py2 - Dorgy + Morgy) / Mscale; + ww3 = ww2 / Mscale + 2; + hh3 = hh2 / Mscale + 2; + sa_show_rect(px3,py3,ww3,hh3); // refresh select area outline + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +/**************************************************************************/ + +// mouse event function - capture buttons and drag movements + +void mouse_event(GtkWidget *widget, GdkEventButton *event, void *) +{ + void mouse_convert(int xpos1, int ypos1, int &xpos2, int &ypos2); + + int button, time, type, scroll; + static int bdtime = 0, butime = 0, mbusy = 0; + static int mdragx0, mdragy0; + + if (! mwpC || ! mwpC->fpxb) return; // v.13.06 + + type = event->type; + button = event->button; // button, 1/2/3 = left/center/right + time = event->time; + Mwxposn = event->x; // mouse position in window + Mwyposn = event->y; + mouse_convert(Mwxposn,Mwyposn,Mxposn,Myposn); // convert to image space + + scroll = ((GdkEventScroll *) event)->direction; // scroll wheel event + + KBcontrolkey = KBshiftkey = KBaltkey = 0; + if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; // v.13.08 + if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; + if (event->state & GDK_MOD1_MASK) KBaltkey = 1; + + if (type == GDK_SCROLL) { // scroll wheel = zoom + zoomx = Mxposn; // zoom center = mouse position + zoomy = Myposn; + if (scroll == GDK_SCROLL_UP) m_zoom(null,"in"); + if (scroll == GDK_SCROLL_DOWN) m_zoom(null,"out"); + return; + } + + if (type == GDK_MOTION_NOTIFY) { + if (mbusy) return; // discard excess motion events + mbusy++; + zmainloop(); + mbusy = 0; + } + + if (type == GDK_BUTTON_PRESS) { // button down + Mdrag++; // possible drag start + bdtime = time; // time of button down + Mbutton = button; + mdragx0 = Mwxposn; // window position at button down + mdragy0 = Mwyposn; + Mxdown = Mxposn; // image position at button down + Mydown = Myposn; + Mxdrag = Mydrag = 0; + } + + if (type == GDK_MOTION_NOTIFY && Mdrag) { // drag underway + Mwdragx = Mwxposn - mdragx0; // drag increment, window space + Mwdragy = Mwyposn - mdragy0; + mdragx0 = Mwxposn; // new drag origin = current position + mdragy0 = Mwyposn; + Mxdrag = Mxposn; // drag position, image space + Mydrag = Myposn; + } + + if (type == GDK_BUTTON_RELEASE) { // button up + Mxclick = Myclick = 0; // reset click status + butime = time; // time of button up + if (butime - bdtime < 400) { // less than 0.4 secs down + if (Mxposn == Mxdown && Myposn == Mydown) { // and not moving + if (Mbutton == 1) LMclick++; // left mouse click + if (Mbutton == 3) RMclick++; // right mouse click + Mxclick = Mxdown; // click = button down position + Myclick = Mydown; + if (button == 2) { // center button click + zoomx = Mxposn; // re-center at mouse (Doriano) + zoomy = Myposn; + gtk_widget_queue_draw(cDwin); + } + } + } + Mxdown = Mydown = Mxdrag = Mydrag = Mdrag = Mbutton = 0; // forget buttons and drag + } + + Fmousemain = 1; // mouse acts on main window + if (Mcapture) Fmousemain = 0; // curr. function handles mouse + if (mouseCBfunc) Fmousemain = 0; // mouse owned by callback function + if (KBcontrolkey) Fmousemain = 1; // mouse acts on main window + + if (mutex_trylock(&Fpixmap_lock) != 0) return; // block mouse if image transition + mutex_unlock(&Fpixmap_lock); // moved here + + if (mouseCBfunc && ! Fmousemain) { // pass to handler function + if (mbusy) return; + mbusy++; // stop re-entrance + (* mouseCBfunc)(); + mbusy = 0; + Fmousemain = 1; // click/drag params are processed + } // if not reset by handler func. + + if (! Fmousemain) return; // curr. function handles mouse + + if (LMclick) { // left click = zoom request + LMclick = 0; + zoomx = Mxclick; // zoom center = mouse + zoomy = Myclick; + m_zoom(null,"in"); + } + + if (RMclick) { // right click + RMclick = 0; + if (mwpC->fzoom) { // if zoomed image, reset to fit window + zoomx = zoomy = 0; + m_zoom(null,"fit"); + } + else if (curr_file && cTab == tabF) + image_Rclick_popup(curr_file_posn); // image right-click popup menu + } + + if ((Mxdrag || Mydrag)) // drag = scroll by mouse + gtk_widget_queue_draw(cDwin); + + return; +} + + +// convert mouse position from window space to image space + +void mouse_convert(int xpos1, int ypos1, int &xpos2, int &ypos2) +{ + xpos2 = (xpos1 - mwpC->dorgx + mwpC->morgx) / mwpC->mscale + 0.5; + ypos2 = (ypos1 - mwpC->dorgy + mwpC->morgy) / mwpC->mscale + 0.5; + + if (xpos2 < 0) xpos2 = 0; // if outside image put at edge + if (ypos2 < 0) ypos2 = 0; + + if (E3pxm) { + if (xpos2 >= E3pxm->ww) xpos2 = E3pxm->ww-1; + if (ypos2 >= E3pxm->hh) ypos2 = E3pxm->hh-1; + } + else { + if (xpos2 >= mwpC->fpxb->ww) xpos2 = mwpC->fpxb->ww-1; + if (ypos2 >= mwpC->fpxb->hh) ypos2 = mwpC->fpxb->hh-1; + } + + return; +} + + +/**************************************************************************/ + +// set new image zoom level or magnification +// zoom: "in" zoom in in steps +// "out" zoom out in steps +// "fit" zoom out to fit window +// "100" toggle 100% and fit window + +void m_zoom(GtkWidget *, cchar *zoom) +{ + int fww, fhh; + float scalew, scaleh, fitscale, fzoom2, zratio = 1; + float Rzoom, pixels; + + if (! mwpC || ! mwpC->fpxb) return; // v.13.06 + + Rzoom = mwpC->fzoom; // current zoom ratio + + if (E3pxm) { + fww = E3pxm->ww; // 1x image size + fhh = E3pxm->hh; + } + else { + fww = mwpC->fpxb->ww; + fhh = mwpC->fpxb->hh; + } + + if (fww > Dww || fhh > Dhh) { // get window fit scale + scalew = 1.0 * Dww / fww; + scaleh = 1.0 * Dhh / fhh; + if (scalew < scaleh) fitscale = scalew; + else fitscale = scaleh; // window/image, < 1.0 + } + else fitscale = 1.0; // if image < window use 100% + + if (strEqu(zoom,"Zoom+")) zoom = "in"; // toolbar button: + = zoom in + if (strEqu(zoom,"Zoom-")) zoom = "fit"; // - = fit window + + if (strEqu(zoom,"fit")) mwpC->fzoom = 0; // zoom to fit window + + if (strEqu(zoom,"100")) { + if (mwpC->fzoom != 0) mwpC->fzoom = 0; // toggle 100% and fit window + else mwpC->fzoom = 1; + } + + if (strstr("in out",zoom)) // caller: zoom in or out + { + if (! mwpC->fzoom) mwpC->fzoom = fitscale; // current zoom scale + for (fzoom2 = 0.125; fzoom2 < 4.0; fzoom2 *= zoomratio) // find nearest natural ratio + if (mwpC->fzoom < fzoom2 * sqrt(zoomratio)) break; + if (strEqu(zoom,"in")) zratio = zoomratio; // zoom in, make image larger + if (strEqu(zoom,"out")) zratio = 1.0 / zoomratio; // zoom out, make image smaller + mwpC->fzoom = fzoom2 * zratio; + if (mwpC->fzoom > 0.124 && mwpC->fzoom < 0.126) mwpC->fzoom = 0.125; // hit these ratios exactly + if (mwpC->fzoom > 0.24 && mwpC->fzoom < 0.26) mwpC->fzoom = 0.25; + if (mwpC->fzoom > 0.49 && mwpC->fzoom < 0.51) mwpC->fzoom = 0.50; + if (mwpC->fzoom > 0.99 && mwpC->fzoom < 1.01) mwpC->fzoom = 1.00; + if (mwpC->fzoom > 1.99 && mwpC->fzoom < 2.01) mwpC->fzoom = 2.00; + if (mwpC->fzoom > 3.99) mwpC->fzoom = 4.0; // max. allowed zoom + if (mwpC->fzoom < fitscale) mwpC->fzoom = 0; // image < window + } + + if (cTab == tabW) { // optimize for world map + if (strEqu(zoom,"in")) mwpC->fzoom = 1.0; // zoom to 100% directly + if (strEqu(zoom,"out")) mwpC->fzoom = 0.0; // zoom out = fit window directly v.13.10 + if (mwpC->fzoom == 1.0 && Rzoom == 1.0) { + gtk_widget_queue_draw(cDwin); // if already, move mouse pointer only + return; + } + } + + if (mwpC->fzoom > 1.0) { // limit image in window to 1 gigabyte + pixels = mwpC->fzoom * fww * mwpC->fzoom * fhh; // (333 megapixels x 3 bytes/pixel) + if (pixels > 333 * mega) { // if size is at maximum, + mwpC->fzoom = Rzoom; // move mouse pointer only + gtk_widget_queue_draw(cDwin); + return; + } + } + + if (! mwpC->fzoom) zoomx = zoomy = 0; // no requested zoom center + mwpaint2(); // refresh window + return; +} + + +/**************************************************************************/ + +// function for dialogs to call to send KB keys for processing by main app + +void KBstate(GdkEventKey *event, int state) +{ + if (state) KBpress(0,event,0); + else KBrelease(0,event,0); + return; +} + + +// keyboard event functions +// GDK key symbols: /usr/include/gtk-3.0/gdk/gdkkeysyms.h + +int KBpress(GtkWidget *win, GdkEventKey *event, void *) // prevent propagation of key-press +{ // events to toolbar buttons + KBkey = event->keyval; + + KBcontrolkey = KBshiftkey = KBaltkey = 0; + if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; // v.13.08 + if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; + if (event->state & GDK_MOD1_MASK) KBaltkey = 1; + + return 1; +} + + +int KBrelease(GtkWidget *win, GdkEventKey *event, void *) // some key was released +{ + int ii, jj, cc; + char matchkey[20]; + + KBkey = event->keyval; + + KBcontrolkey = KBshiftkey = KBaltkey = 0; + if (event->state & GDK_CONTROL_MASK) KBcontrolkey = 1; // v.13.08 + if (event->state & GDK_SHIFT_MASK) KBshiftkey = 1; + if (event->state & GDK_MOD1_MASK) KBaltkey = 1; + + if (! KBcontrolkey && ! KBshiftkey && ! KBaltkey) { // F/G/W keys are tab shortcuts + if (KBkey == GDK_KEY_f) { settab("F"); goto KBend; } // Ctrl/Alt + F/G/W can be used + if (KBkey == GDK_KEY_g) { settab("G"); goto KBend; } // for custom shortcuts + if (KBkey == GDK_KEY_w) { settab("W"); goto KBend; } + } + + if (KBcapture) return 1; // let current function handle it + +// reserved shortcuts (not user configurable) + + if (KBkey == GDK_KEY_F1) { // F1 >> user guide + showz_userguide(F1_help_topic); // show topic if there, or page 1 + goto KBend; + } + + if (KBkey == GDK_KEY_F11) { // F11 >> toggle main window + if (! Ffullscreen) win_fullscreen(); // to full-screen mode and back + else win_unfullscreen(); + if (Fslideshow) ss_escape = 1; // quit slideshow if active + goto KBend; + } + + if (KBkey == GDK_KEY_Escape && Ffullscreen) { // ESC key >> exit full screen + win_unfullscreen(); + if (Fslideshow) ss_escape = 1; // quit slideshow if active + goto KBend; + } + + if (cTab == tabG) { // tab G is active, + navi::KBrelease(win,event,0); // pass to gallery KB function + goto KBend; // (keys below not for gallery) + } + + if (KBkey == GDK_KEY_z || KBkey == GDK_KEY_Z) { // Z key + if (! KBcontrolkey) m_zoom(null,"100"); // if no CTRL, toggle zoom 1x + goto KBend; + } + + if (cTab == tabW) goto KBend; // tab W active, no other KB events + + if (KBkey == GDK_KEY_plus) m_zoom(null,"in"); // + key >> zoom in + if (KBkey == GDK_KEY_minus) m_zoom(null,"fit"); // - key >> fit to window + if (KBkey == GDK_KEY_equal) m_zoom(null,"in"); // = key: same as + + if (KBkey == GDK_KEY_KP_Add) m_zoom(null,"in"); // keypad + + if (KBkey == GDK_KEY_KP_Subtract) m_zoom(null,"fit"); // keypad - + + if (Fslideshow) { // slide show mode + if (KBkey == GDK_KEY_Left) ss_Larrow = 1; // arrow keys = prev/next image + if (KBkey == GDK_KEY_Right) ss_Rarrow = 1; + if (KBkey == GDK_KEY_space) ss_spacebar = 1; // spacebar = pause/resume + if (KBkey == GDK_KEY_B || KBkey == GDK_KEY_b) ss_Bkey = 1; // B-key = blank screen + pause + goto KBend; + } + + if (CEF && CEF->menufunc == m_mashup) { // mashup active, pass KB key v.13.12 + mashup::KBfunc(KBkey); + goto KBend; + } + + if (KBkey == GDK_KEY_Left) m_prev(0,0); // arrow keys = prev/next image + if (KBkey == GDK_KEY_Right) m_next(0,0); + if (KBkey == GDK_KEY_Page_Up) m_prev(0,0); // page up/down = prev/next image + if (KBkey == GDK_KEY_Page_Down) m_next(0,0); + + if (KBkey == GDK_KEY_Delete) m_trash(0,0); // delete >> trash + +// look for configurable shortcut keys in shortcut table + + if (KBkey >= GDK_KEY_F1 && KBkey <= GDK_KEY_F9) { // input key is F1 to F9 + ii = KBkey - GDK_KEY_F1; + strcpy(matchkey,"F1"); + matchkey[1] += ii; + } + + else if (KBkey > 255) goto KBend; // not a single letter or digit + + else { + *matchkey = 0; // build input key combination + if (KBcontrolkey) strcat(matchkey,"Ctrl+"); // [Ctrl+] [Alt+] [Shift+] key + if (KBaltkey) strcat(matchkey,"Alt+"); + if (KBshiftkey) strcat(matchkey,"Shift+"); + cc = strlen(matchkey); + matchkey[cc] = KBkey; + matchkey[cc+1] = 0; + } + + for (ii = 0; ii < Nshortcuts; ii++) // convert key combination to menu name + if (strcasecmp(matchkey,shortcutkey[ii]) == 0) break; + + if (ii < Nshortcuts) { // convert menu name to menu function + for (jj = 0; jj < Nmenus; jj++) + if (strcasecmp(shortcutmenu[ii],ZTX(menutab[jj].menu)) == 0) break; + if (jj < Nmenus) menutab[jj].func(0,menutab[jj].arg); // call the menu function + } + +KBend: + KBkey = 0; + return 1; +} + + +/**************************************************************************/ + +// set the main window to fullscreen status +// (with no menu, toolbar, statusbar) + +void win_fullscreen() +{ + gtk_widget_hide(fVMenu); // vertical menu/toolbar v.13.03 + gtk_widget_hide(fSbar); + + gtk_window_fullscreen(MWIN); + + for (int ii = 0; ii < 20; ii++) { // wait for window manager to act + zmainloop(); + if (Ffullscreen) break; + zsleep(0.1); + } + + return; +} + + +// restore window to former size and restore menu etc. + +void win_unfullscreen() +{ + gtk_window_unfullscreen(MWIN); // restore old window size + gtk_widget_show_all(tabWin); // show all menus and toolbars + Ffullscreen = 0; + return; +} + + +/**************************************************************************/ + +// draw a pixel using foreground color. +// px, py are image space. + +void draw_pixel(int px, int py) +{ + int qx, qy, crflag = 0; + static int pqx, pqy; + static uint8 pixel[12]; // 2x2 block of pixels + static GdkPixbuf *pixbuf1 = 0, *pixbuf4 = 0; + + if (! gdkWin) return; + + if (! pixbuf1) { + pixbuf1 = gdk_pixbuf_new_from_data(pixel,GDKRGB,0,8,1,1,3,0,0); // 1x1 pixels + pixbuf4 = gdk_pixbuf_new_from_data(pixel,GDKRGB,0,8,2,2,6,0,0); // 2x2 pixels + } + + qx = Mscale * px - Morgx; // image to window space + qy = Mscale * py - Morgy; + + if (qx == pqx && qy == pqy) return; // avoid redundant points + + pqx = qx; + pqy = qy; + + if (qx < 0 || qx > dww-2) return; // keep off image edges + if (qy < 0 || qy > dhh-2) return; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + crflag = 1; + } + + if (Mscale < 1.99) { // write 1x1 pixels + pixel[0] = fg_color[0]; + pixel[1] = fg_color[1]; + pixel[2] = fg_color[2]; + + gdk_cairo_set_source_pixbuf(mwcr,pixbuf1,qx+Dorgx,qy+Dorgy); + cairo_paint(mwcr); + } + + else { // write 2x2 fat pixels + pixel[0] = pixel[3] = pixel[6] = pixel[9] = fg_color[0]; + pixel[1] = pixel[4] = pixel[7] = pixel[10] = fg_color[1]; + pixel[2] = pixel[5] = pixel[8] = pixel[11] = fg_color[2]; + + gdk_cairo_set_source_pixbuf(mwcr,pixbuf4,qx+Dorgx,qy+Dorgy); + cairo_paint(mwcr); + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +// erase one drawn pixel - restore from window image mpxb. +// px, py are image space. + +void erase_pixel(int px, int py) +{ + static PXB *pxb2 = 0; + static uint8 *pix1, *pix2; + static int rs2, pqx, pqy; + int qx, qy, crflag = 0; + + if (! gdkWin) return; + + if (! pxb2) { + pxb2 = PXB_make(2,2); // 2x2 pixbuf + pix2 = pxb2->pixels; + rs2 = pxb2->rs; + } + + qx = Mscale * px; // image to window space + qy = Mscale * py; + + if (qx == pqx && qy == pqy) return; // avoid same target pixel + + pqx = qx; + pqy = qy; + + if (qx < 0 || qx > Mpxb->ww-2) return; // pixel outside scaled image + if (qy < 0 || qy > Mpxb->hh-2) return; + + if (qx < Morgx || qx > Morgx + dww-2) return; // pixel outside drawing window + if (qy < Morgy || qy > Morgy + dhh-2) return; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + crflag = 1; + } + + pix1 = PXBpix(Mpxb,qx,qy); // source pixels, 2x2 block + memcpy(pix2,pix1,6); // copy 2 upper pixels, 6 bytes + memcpy(pix2+rs2,pix1+Mpxb->rs,6); // copy 2 lower pixels + + qx = qx - Morgx + Dorgx; // target pixel in window + qy = qy - Morgy + Dorgy; + gdk_cairo_set_source_pixbuf(mwcr,pxb2->pixbuf,qx,qy); + cairo_paint(mwcr); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +/**************************************************************************/ + +// draw line. +// coordinates are image space. + +void draw_line(int x1, int y1, int x2, int y2) +{ + float px1, py1, px2, py2; + int crflag = 0; + + if (! gdkWin) return; + + px1 = Mscale * x1 - Morgx + Dorgx; // image to window space + py1 = Mscale * y1 - Morgy + Dorgy; + px2 = Mscale * x2 - Morgx + Dorgx; + py2 = Mscale * y2 - Morgy + Dorgy; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + cairo_set_source_rgb(mwcr,1,1,1); + cairo_move_to(mwcr,px1,py1); + cairo_line_to(mwcr,px2,py2); + cairo_stroke(mwcr); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +// draw dotted line. +// coordinates are image space. + +void draw_dotline(int x1, int y1, int x2, int y2) +{ + float px1, py1, px2, py2; + double dashes[2] = { 4, 4 }; + int crflag = 0; + + if (! gdkWin) return; + + px1 = Mscale * x1 - Morgx + Dorgx; // image to window space + py1 = Mscale * y1 - Morgy + Dorgy; + px2 = Mscale * x2 - Morgx + Dorgx; + py2 = Mscale * y2 - Morgy + Dorgy; + + if (px1 > Dww-2) px1 = Dww-2; + if (py1 > Dhh-2) py1 = Dhh-2; + if (px2 > Dww-2) px2 = Dww-2; + if (py2 > Dhh-2) py2 = Dhh-2; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + else cairo_save(mwcr); + + cairo_set_source_rgb(mwcr,1,1,1); + cairo_set_dash(mwcr,dashes,2,0); + cairo_move_to(mwcr,px1,py1); + cairo_line_to(mwcr,px2,py2); + cairo_stroke(mwcr); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + else cairo_restore(mwcr); + + return; +} + + +// erase line. refresh line path from mpxb window image. +// double line width is erased. +// coordinates are image space. + +void erase_line(int x1, int y1, int x2, int y2) +{ + float pxm, pym, slope; + int crflag = 0; + + if (! gdkWin) return; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + crflag = 1; + } + + if (abs(y2 - y1) > abs(x2 - x1)) { + slope = 1.0 * (x2 - x1) / (y2 - y1); + for (pym = y1; pym <= y2; pym++) { + pxm = x1 + slope * (pym - y1); + erase_pixel(pxm,pym); + } + } + + else { + slope = 1.0 * (y2 - y1) / (x2 - x1); + for (pxm = x1; pxm <= x2; pxm++) { + pym = y1 + slope * (pxm - x1); + erase_pixel(pxm,pym); + } + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +/**************************************************************************/ + +// draw pre-set overlay lines on top of image +// arg = 1: paint lines only (because window repainted) +// 2: erase lines and forget them +// 3: erase old lines, paint new lines, save new in old + +void draw_toplines(int arg) +{ + int ii, crflag = 0; + + if (! gdkWin) return; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + if (arg == 2 || arg == 3) // erase old lines + for (ii = 0; ii < Nptoplines; ii++) + erase_line(ptoplinex1[ii],ptopliney1[ii],ptoplinex2[ii],ptopliney2[ii]); + + if (arg == 1 || arg == 3) // draw new lines + for (ii = 0; ii < Ntoplines; ii++) + draw_dotline(toplinex1[ii],topliney1[ii],toplinex2[ii],topliney2[ii]); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + if (arg == 2) { + Nptoplines = Ntoplines = 0; // forget lines + return; + } + + for (ii = 0; ii < Ntoplines; ii++) // save for future erase + { + ptoplinex1[ii] = toplinex1[ii]; + ptopliney1[ii] = topliney1[ii]; + ptoplinex2[ii] = toplinex2[ii]; + ptopliney2[ii] = topliney2[ii]; + } + + Nptoplines = Ntoplines; + + return; +} + + +/**************************************************************************/ + +// draw a grid of horizontal and vertical lines. +// grid line spacings are in window space. + +void draw_gridlines() +{ + int crflag = 0, G = currgrid; + int px, py, gww, ghh; + int startx, starty, endx, endy, stepx, stepy; + int startx1, starty1; + + if (! gdkWin) return; + if (! Fpxb) return; // no image + if (! gridsettings[G][GON]) return; // grid lines off + + gww = dww; // grid box size + ghh = dhh; + startx = Dorgx; // starting corner (top left) + starty = Dorgy; + + if (CEF && strEqu(CEF->funcname,"trim_rotate")) { // trim/rotate function is active v.13.11 + gww = Mscale * (trimrect[2] - trimrect[0]); // fit grid box to trim rectangle + ghh = Mscale * (trimrect[3] - trimrect[1]); + startx = Mscale * trimrect[0] - Morgx + Dorgx; + starty = Mscale * trimrect[1] - Morgy + Dorgy; + } + + endx = startx + gww; + endy = starty + ghh; + + stepx = gridsettings[G][GXS]; // space between grid lines + stepy = gridsettings[G][GYS]; // (window space) + + if (gridsettings[G][GXC]) + stepx = gww / (1 + gridsettings[G][GXC]); // if line counts specified, + if (gridsettings[G][GYC]) // set spacing accordingly + stepy = ghh / ( 1 + gridsettings[G][GYC]); + + startx1 = startx + stepx * gridsettings[G][GXF] / 100; // variable starting offsets + starty1 = starty + stepy * gridsettings[G][GYF] / 100; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + cairo_set_source_rgb(mwcr,1,1,1); // white lines + + if (gridsettings[G][GX] && stepx) + for (px = startx1; px < endx; px += stepx) { + cairo_move_to(mwcr,px,starty); + cairo_line_to(mwcr,px,endy); + } + + if (gridsettings[G][GY] && stepy) + for (py = starty1; py < endy; py += stepy) { + cairo_move_to(mwcr,startx,py); + cairo_line_to(mwcr,endx,py); + } + + cairo_stroke(mwcr); + + cairo_set_source_rgb(mwcr,0,0,0); // adjacent black lines + + if (gridsettings[G][GX] && stepx) + for (px = startx1+1; px < endx+1; px += stepx) { + cairo_move_to(mwcr,px,starty); + cairo_line_to(mwcr,px,endy); + } + + if (gridsettings[G][GY] && stepy) + for (py = starty1+1; py < endy+1; py += stepy) { + cairo_move_to(mwcr,startx,py); + cairo_line_to(mwcr,endx,py); + } + + cairo_stroke(mwcr); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +/**************************************************************************/ + +// maintain a set of text strings written over the image in the window. +// add a new text string to the list. +// multiple text strings can be added with the same ID. +// px and py are image space. + +void add_toptext(int ID, int px, int py, cchar *text, cchar *font) +{ + if (Ntoptext == maxtoptext) { + printz("*** maxtoptext exceeded \n"); + return; + } + + int ii = Ntoptext++; + toptext[ii].ID = ID; + toptext[ii].px = px; + toptext[ii].py = py; + toptext[ii].text = text; + toptext[ii].font = font; + + return; +} + + +// draw current text strings over the image in window. +// called from mwpaint1(). + +void draw_toptext() +{ + int crflag = 0; + + if (! gdkWin) return; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + for (int ii = 0; ii < Ntoptext; ii++) + draw_text(toptext[ii].px,toptext[ii].py,toptext[ii].text,toptext[ii].font); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +// delete text strings having the given ID from the list + +void erase_toptext(int ID) +{ + int ii, jj; + + for (ii = jj = 0; ii < Ntoptext; ii++) + { + if (toptext[ii].ID == ID) continue; + else toptext[jj++] = toptext[ii]; + } + + Ntoptext = jj; + return; +} + + +// draw text on window, black on white background +// coordinates are image space + +void draw_text(int px, int py, cchar *text, cchar *font) +{ + static PangoFontDescription *pangofont = null; + static PangoLayout *pangolayout = null; + static char priorfont[40] = ""; + int ww, hh, crflag = 0; + + if (! gdkWin) return; + + px = Mscale * px - Morgx + Dorgx; // image to window space + py = Mscale * py - Morgy + Dorgy; + + if (strNeq(font,priorfont)) { // change font + strncpy0(priorfont,font,40); + if (pangofont) pango_font_description_free(pangofont); + if (pangolayout) g_object_unref(pangolayout); + pangofont = pango_font_description_from_string(font); // make pango layout for font + pangolayout = gtk_widget_create_pango_layout(cDwin,0); + pango_layout_set_font_description(pangolayout,pangofont); + } + + pango_layout_set_text(pangolayout,text,-1); // add text to layout + pango_layout_get_pixel_size(pangolayout,&ww,&hh); + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + cairo_set_source_rgb(mwcr,1,1,1); // draw white background + cairo_rectangle(mwcr,px,py,ww,hh); + cairo_fill(mwcr); + + cairo_move_to(mwcr,px,py); // draw layout with text + cairo_set_source_rgb(mwcr,0,0,0); + pango_cairo_show_layout(mwcr,pangolayout); + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +/**************************************************************************/ + +// maintain a set of circles drawn over the image in the window +// px, py are image space, radius is window space +// color = 1/2/3/4 = white/black/red/green + +void add_topcircle(int px, int py, int radius, int color) +{ + if (Ntopcircles == maxtopcircles) { + printz("*** maxtopcircles exceeded \n"); + return; + } + + int ii = Ntopcircles++; + topcircles[ii].px = px; + topcircles[ii].py = py; + topcircles[ii].radius = radius; + topcircles[ii].color = color; + + return; +} + + +// draw current circles over the image in the window +// called from mwpaint1() + +void draw_topcircles() +{ + int ii, px, py, rad, color; + int crflag = 0; + + if (! gdkWin) return; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + cairo_set_line_width(mwcr,1); + crflag = 1; + } + + for (ii = 0; ii < Ntopcircles; ii++) + { + px = topcircles[ii].px * Mscale - Morgx + Dorgx; // image to window space + py = topcircles[ii].py * Mscale - Morgy + Dorgy; + rad = topcircles[ii].radius; // radius is window space + color = topcircles[ii].color; // 1/2/3/4 = white/black/red/green + + if (color == 1) cairo_set_source_rgb(mwcr,1,1,1); // set foreground color + else if (color == 2) cairo_set_source_rgb(mwcr,0,0,0); + else if (color == 3) cairo_set_source_rgb(mwcr,1,0,0); + else cairo_set_source_rgb(mwcr,0,1,0); + + cairo_arc(mwcr,px,py,rad,0,2*PI); // draw 360 deg. arc + cairo_stroke(mwcr); + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + return; +} + + +// erase top circles (next window repaint) + +void erase_topcircles() +{ + Ntopcircles = 0; + return; +} + + +/**************************************************************************/ + +// Draw circle/ellipse around the mouse pointer. +// Prior circle/ellipse will be erased first. +// Used for mouse/brush radius in select and paint functions. +// cx, cy, ww, hh: center and axes of ellipse (circle: ww = hh) +// if Ferase, then erase previous circle/ellipse only. + +void draw_mousearc(int cx, int cy, int cww, int chh, int Ferase) // simplified v.14.03 +{ + int px3, py3, ww3, hh3; + static int ppx3, ppy3, pww3 = 0, phh3; + int px, py; + int crflag = 0; + float a, b, a2, b2; + float x, y, x2, y2; + + zthreadcrash(); + if (! gdkWin) return; + + gdk_window_freeze_updates(gdkWin); // visually smoother v.14.02 + + if (pww3 > 0) { // erase prior + mwpaint4(ppx3,ppy3,pww3,phh3); // refresh from Mpxb + pww3 = 0; + } + + if (Ferase) { + gdk_window_thaw_updates(gdkWin); // erase only was wanted + return; + } + + px3 = cx - (cww + 2) / 2; // convert pointer center + radius + py3 = cy - (chh + 2) / 2; // to block position, width, length + ww3 = cww + 2; + hh3 = chh + 2; + + ppx3 = px3; // remember pixel block area + ppy3 = py3; // to erase in next call + pww3 = ww3; + phh3 = hh3; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + crflag = 1; + } + + a = cww / 2; // ellipse constants from + b = chh / 2; // enclosing rectangle + a2 = a * a; + b2 = b * b; + + for (y = -b; y < b; y++) // step through y values, omitting + { // curve points covered by x values + y2 = y * y; + x2 = a2 * (1 - y2 / b2); + x = sqrtf(x2); // corresp. x values, + and - + py = y + cy; + px = cx - x + 0.5; + draw_pixel(px,py); // draw 2 points on ellipse + px = cx + x + 0.5; + draw_pixel(px,py); + } + + for (x = -a; x < a; x++) // step through x values, omitting + { // curve points covered by y values + x2 = x * x; + y2 = b2 * (1 - x2 / a2); + y = sqrtf(y2); // corresp. y values, + and - + px = x + cx; + py = cy - y + 0.5; + draw_pixel(px,py); // draw 2 points on ellipse + py = cy + y + 0.5; + draw_pixel(px,py); + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + gdk_window_thaw_updates(gdkWin); // v.14.02 + return; +} + + +// duplicate for drawing and tracking a 2nd mouse arc +// (used by paint/clone to track source pixels being cloned) + +void draw_mousearc2(int cx, int cy, int cww, int chh, int Ferase) // simplified v.14.03 +{ + int px3, py3, ww3, hh3; + static int ppx3, ppy3, pww3 = 0, phh3; + int px, py; + int crflag = 0; + float a, b, a2, b2; + float x, y, x2, y2; + + zthreadcrash(); + if (! gdkWin) return; + + gdk_window_freeze_updates(gdkWin); // visually smoother v.14.02 + + if (pww3 > 0) { // erase prior + mwpaint4(ppx3,ppy3,pww3,phh3); // refresh from Mpxb + pww3 = 0; + } + + if (Ferase) { + gdk_window_thaw_updates(gdkWin); // erase only was wanted + return; + } + + px3 = cx - (cww + 2) / 2; // convert pointer center + radius + py3 = cy - (chh + 2) / 2; // to block position, width, length + ww3 = cww + 2; + hh3 = chh + 2; + + ppx3 = px3; // remember pixel block area + ppy3 = py3; // to erase in next call + pww3 = ww3; + phh3 = hh3; + + if (! mwcr) { + mwcr = gdk_cairo_create(gdkWin); // create cairo context if not already + crflag = 1; + } + + a = cww / 2; // ellipse constants from + b = chh / 2; // enclosing rectangle + a2 = a * a; + b2 = b * b; + + for (y = -b; y < b; y++) // step through y values, omitting + { // curve points covered by x values + y2 = y * y; + x2 = a2 * (1 - y2 / b2); + x = sqrtf(x2); // corresp. x values, + and - + py = y + cy; + px = cx - x + 0.5; + draw_pixel(px,py); // draw 2 points on ellipse + px = cx + x + 0.5; + draw_pixel(px,py); + } + + for (x = -a; x < a; x++) // step through x values, omitting + { // curve points covered by y values + x2 = x * x; + y2 = b2 * (1 - x2 / a2); + y = sqrtf(y2); // corresp. y values, + and - + px = x + cx; + py = cy - y + 0.5; + draw_pixel(px,py); // draw 2 points on ellipse + py = cy + y + 0.5; + draw_pixel(px,py); + } + + if (crflag) { + cairo_destroy(mwcr); + mwcr = 0; + } + + gdk_window_thaw_updates(gdkWin); // v.14.02 + return; +} + + +/************************************************************************** + + spline curve setup and edit functions + + Support multiple frames with curves in parallel + (edit curve(s) and image mask curve) + + Usage: + Add frame widget to dialog or zdialog. + Set up drawing in frame: + sd = splcurve_init(frame, callback_func) + Initialize no. of curves in frame (1-10): + sd->Nspc = n + Initialize vert/horz flag for curve spc: + sd->vert[spc] = hv + Initialize anchor points for curve spc: + sd->nap[spc], sd->apx[spc][xx], sd->apy[spc][yy] + Generate data for curve spc: + splcurve_generate(sd,spc) + Curves will now be shown and edited inside the frame when window is realized. + The callback_func(spc) will be called when curve spc is edited. + Change curve in program: + set anchor points, call splcurve_generate(sd,spc) + Get y-value (0-1) for curve spc and given x-value (0-1): + yval = splcurve_yval(sd,spc,xval) + If faster access to curve is needed (no interpolation): + kk = 1000 * xval; + if (kk > 999) kk = 999; + yval = sd->yval[spc][kk]; + +***/ + +// initialize for spline curve editing +// initial anchor points are pre-loaded into spldat before window is realized + +spldat * splcurve_init(GtkWidget *frame, void func(int spc)) +{ + int cc = sizeof(spldat); // allocate spc curve data area + spldat * sd = (spldat *) malloc(cc); + memset(sd,0,cc); + + sd->drawarea = gtk_drawing_area_new(); // drawing area for curves + gtk_container_add(GTK_CONTAINER(frame),sd->drawarea); + sd->spcfunc = func; // user callback function + + gtk_widget_add_events(sd->drawarea,GDK_BUTTON_PRESS_MASK); // connect mouse events to drawing area + gtk_widget_add_events(sd->drawarea,GDK_BUTTON_RELEASE_MASK); + gtk_widget_add_events(sd->drawarea,GDK_BUTTON1_MOTION_MASK); + G_SIGNAL(sd->drawarea,"motion-notify-event",splcurve_adjust,sd); + G_SIGNAL(sd->drawarea,"button-press-event",splcurve_adjust,sd); + G_SIGNAL(sd->drawarea,"draw",splcurve_draw,sd); + + return sd; +} + + +// modify anchor points in curve using mouse + +int splcurve_adjust(void *, GdkEventButton *event, spldat *sd) +{ + int ww, hh, kk; + int mx, my, button, evtype; + static int spc, ap, mbusy = 0, Fdrag = 0; // drag continuation logic + int minspc, minap; + float mxval, myval, cxval, cyval; + float dist2, mindist2 = 0; + float dist, dx, dy; + + mx = event->x; // mouse position in drawing area + my = event->y; + evtype = event->type; + button = event->button; + + if (evtype == GDK_MOTION_NOTIFY) { + if (mbusy) return 0; // discard excess motion events + mbusy++; + zmainloop(); + mbusy = 0; + } + + if (evtype == GDK_BUTTON_RELEASE) { + Fdrag = 0; + return 0; + } + + ww = gtk_widget_get_allocated_width(sd->drawarea); // drawing area size + hh = gtk_widget_get_allocated_height(sd->drawarea); + + if (mx < 0) mx = 0; // limit edge excursions + if (mx > ww) mx = ww; + if (my < 0) my = 0; + if (my > hh) my = hh; + + if (evtype == GDK_BUTTON_PRESS) Fdrag = 0; // left or right click + + if (Fdrag) // continuation of drag + { + if (sd->vert[spc]) { + mxval = 1.0 * my / hh; // mouse position in curve space + myval = 1.0 * mx / ww; + } + else { + mxval = 1.0 * mx / ww; + myval = 1.0 * (hh - my) / hh; + } + + if (ap < sd->nap[spc]-1) { // not the last anchor point v.14.04 + dx = sd->apx[spc][ap+1] - mxval; // get distance to next anchor point + if (dx < 0.01) return 0; // x-value not increasing, forbid + dy = sd->apy[spc][ap+1] - myval; + dist = sqrtf(dx * dx + dy * dy); + if (dist < 0.05) return 0; // too close, forbid + } + if (ap > 0) { // not the first anchor point + dx = mxval - sd->apx[spc][ap-1]; // get distance to prior anchor point + if (dx < 0.01) return 0; // x-value not increasing, forbid + dy = myval - sd->apy[spc][ap-1]; + dist = sqrtf(dx * dx + dy * dy); + if (dist < 0.05) return 0; // too close, forbid + } + } + + else // mouse click or new drag begin + { + minspc = minap = -1; // find closest curve/anchor point + mindist2 = 999999; + + for (spc = 0; spc < sd->Nspc; spc++) // loop curves + { + if (sd->vert[spc]) { + mxval = 1.0 * my / hh; // mouse position in curve space + myval = 1.0 * mx / ww; + } + else { + mxval = 1.0 * mx / ww; + myval = 1.0 * (hh - my) / hh; + } + + for (ap = 0; ap < sd->nap[spc]; ap++) // loop anchor points + { + cxval = sd->apx[spc][ap]; + cyval = sd->apy[spc][ap]; + dist2 = (mxval-cxval)*(mxval-cxval) + + (myval-cyval)*(myval-cyval); + if (dist2 < mindist2) { + mindist2 = dist2; // remember closest anchor point + minspc = spc; + minap = ap; + } + } + } + + if (minspc < 0) return 0; // impossible + spc = minspc; // nearest curve + ap = minap; // nearest anchor point + } + + if (evtype == GDK_BUTTON_PRESS && button == 3) // right click, remove anchor point + { + if (sqrtf(mindist2) > 0.05) return 0; // not close enough + if (sd->nap[spc] < 3) return 0; // < 2 anchor points would remain + sd->nap[spc]--; // decr. before loop + for (kk = ap; kk < sd->nap[spc]; kk++) { + if (! kk) printz("meaningless reference %d",kk); // stop gcc optimization bug ///// + sd->apx[spc][kk] = sd->apx[spc][kk+1]; + sd->apy[spc][kk] = sd->apy[spc][kk+1]; + } + splcurve_generate(sd,spc); // regenerate data for modified curve + gtk_widget_queue_draw(sd->drawarea); + sd->spcfunc(spc); // call user function + return 0; + } + + if (! Fdrag) // new drag or left click + { + if (sd->vert[spc]) { + mxval = 1.0 * my / hh; // mouse position in curve space + myval = 1.0 * mx / ww; + } + else { + mxval = 1.0 * mx / ww; + myval = 1.0 * (hh - my) / hh; + } + + if (sqrtf(mindist2) < 0.05) // anchor point close enough, v.14.04 + { // move this one to mouse position + if (ap < sd->nap[spc]-1) { // not the last anchor point + dx = sd->apx[spc][ap+1] - mxval; // get distance to next anchor point + if (dx < 0.01) return 0; // x-value not increasing, forbid + dy = sd->apy[spc][ap+1] - myval; + dist = sqrtf(dx * dx + dy * dy); + if (dist < 0.05) return 0; // too close, forbid + } + if (ap > 0) { // not the first anchor point + dx = mxval - sd->apx[spc][ap-1]; // get distance to prior anchor point + if (dx < 0.01) return 0; // x-value not increasing, forbid + dy = myval - sd->apy[spc][ap-1]; + dist = sqrtf(dx * dx + dy * dy); + if (dist < 0.05) return 0; // too close, forbid + } + } + + else // none close, add new anchor point + { + minspc = -1; // find closest curve to mouse + mindist2 = 999999; + + for (spc = 0; spc < sd->Nspc; spc++) // loop curves + { + if (sd->vert[spc]) { + mxval = 1.0 * my / hh; // mouse position in curve space + myval = 1.0 * mx / ww; + } + else { + mxval = 1.0 * mx / ww; + myval = 1.0 * (hh - my) / hh; + } + + cyval = splcurve_yval(sd,spc,mxval); + dist2 = fabsf(myval - cyval); + if (dist2 < mindist2) { + mindist2 = dist2; // remember closest curve + minspc = spc; + } + } + + if (minspc < 0) return 0; // impossible + if (mindist2 > 0.05) return 0; // not close enough to any curve + spc = minspc; + + if (sd->nap[spc] > 49) { + zmessageACK(mWin,0,ZTX("Exceed 50 anchor points")); + return 0; + } + + if (sd->vert[spc]) { + mxval = 1.0 * my / hh; // mouse position in curve space + myval = 1.0 * mx / ww; + } + else { + mxval = 1.0 * mx / ww; + myval = 1.0 * (hh - my) / hh; + } + + for (ap = 0; ap < sd->nap[spc]; ap++) // find anchor point with next higher x + if (mxval <= sd->apx[spc][ap]) break; // (ap may come out 0 or nap) + + if (ap < sd->nap[spc] && sd->apx[spc][ap] - mxval < 0.05) // disallow < 0.05 from next + return 0; // or prior anchor point + if (ap > 0 && mxval - sd->apx[spc][ap-1] < 0.05) return 0; + + for (kk = sd->nap[spc]; kk > ap; kk--) { // make hole for new point + sd->apx[spc][kk] = sd->apx[spc][kk-1]; + sd->apy[spc][kk] = sd->apy[spc][kk-1]; + } + + sd->nap[spc]++; // up point count + } + } + + if (evtype == GDK_MOTION_NOTIFY) Fdrag = 1; // remember drag is underway + + sd->apx[spc][ap] = mxval; // new or moved anchor point + sd->apy[spc][ap] = myval; // at mouse position + + splcurve_generate(sd,spc); // regenerate data for modified curve + if (sd->drawarea) gtk_widget_queue_draw(sd->drawarea); // redraw graph + if (sd->spcfunc) sd->spcfunc(spc); // call user function + + return 0; +} + + +// for expose event or when a curve is changed +// draw all curves based on current anchor points + +int splcurve_draw(GtkWidget *drawarea, cairo_t *cr, spldat *sd) +{ + int ww, hh, spc, ap; + float xval, yval, px, py, qx, qy; + + ww = gtk_widget_get_allocated_width(sd->drawarea); // drawing area size + hh = gtk_widget_get_allocated_height(sd->drawarea); + if (ww < 50 || hh < 50) return 0; + + cairo_set_line_width(cr,1); + cairo_set_source_rgb(cr,0.7,0.7,0.7); + + for (int ii = 0; ii < sd->Nscale; ii++) // draw y-scale lines if any + { + px = ww * sd->xscale[0][ii]; + py = hh - hh * sd->yscale[0][ii]; + qx = ww * sd->xscale[1][ii]; + qy = hh - hh * sd->yscale[1][ii]; + cairo_move_to(cr,px,py); + cairo_line_to(cr,qx,qy); + } + cairo_stroke(cr); + + cairo_set_source_rgb(cr,0,0,0); + + for (spc = 0; spc < sd->Nspc; spc++) // loop all curves + { + if (sd->vert[spc]) // vert. curve + { + for (py = 0; py < hh; py++) // generate all points for curve + { + xval = 1.0 * py / hh; + yval = splcurve_yval(sd,spc,xval); + px = ww * yval; + if (py == 0) cairo_move_to(cr,px,py); + cairo_line_to(cr,px,py); + } + cairo_stroke(cr); + + for (ap = 0; ap < sd->nap[spc]; ap++) // draw boxes at anchor points + { + xval = sd->apx[spc][ap]; + yval = sd->apy[spc][ap]; + px = ww * yval; + py = hh * xval; + cairo_rectangle(cr,px-2,py-2,4,4); + } + cairo_fill(cr); + } + else // horz. curve + { + for (px = 0; px < ww; px++) // generate all points for curve + { + xval = 1.0 * px / ww; + yval = splcurve_yval(sd,spc,xval); + py = hh - hh * yval; + if (px == 0) cairo_move_to(cr,px,py); + cairo_line_to(cr,px,py); + } + cairo_stroke(cr); + + for (ap = 0; ap < sd->nap[spc]; ap++) // draw boxes at anchor points + { + xval = sd->apx[spc][ap]; + yval = sd->apy[spc][ap]; + px = ww * xval; + py = hh - hh * yval; + cairo_rectangle(cr,px-2,py-2,4,4); + } + cairo_fill(cr); + } + } + + return 0; +} + + +// generate all curve data points when anchor points are modified + +int splcurve_generate(spldat *sd, int spc) +{ + int kk, kklo, kkhi; + float xval, yvalx; + + spline1(sd->nap[spc],sd->apx[spc],sd->apy[spc]); // compute curve fitting anchor points + + kklo = 1000 * sd->apx[spc][0] - 30; // xval range = anchor point range + if (kklo < 0) kklo = 0; // + 0.03 extra below/above + kkhi = 1000 * sd->apx[spc][sd->nap[spc]-1] + 30; + if (kkhi > 1000) kkhi = 1000; + + for (kk = 0; kk < 1000; kk++) // generate all points for curve + { + xval = 0.001 * kk; // remove anchor point limits + yvalx = spline2(xval); + if (yvalx < 0) yvalx = 0; // yval < 0 not allowed, > 1 OK + sd->yval[spc][kk] = yvalx; + } + + return 0; +} + + +// Retrieve curve data using interpolation of saved table of values + +float splcurve_yval(spldat *sd, int spc, float xval) +{ + int ii; + float x1, x2, y1, y2, y3; + + if (xval <= 0) return sd->yval[spc][0]; + if (xval >= 0.999) return sd->yval[spc][999]; + + x2 = 1000.0 * xval; + ii = x2; + x1 = ii; + y1 = sd->yval[spc][ii]; + y2 = sd->yval[spc][ii+1]; + y3 = y1 + (y2 - y1) * (x2 - x1); + return y3; +} + + +// load curve data from a file +// returns 0 if fail (invalid file data), sd not modified +// returns 1 if succcess, sd is initialized from file data + +int splcurve_load(spldat *sd, cchar *file) +{ + char *pfile; + int nn, ii, jj; + FILE *fid = 0; + int Nspc, vert[10], nap[10]; + float apx[10][50], apy[10][50]; + + F1_help_topic = "curve_edit"; + + if (file) pfile = strdup(file); + else pfile = zgetfile(ZTX("load curve from a file"),"file",saved_curves_dirk); + if (! pfile) return 0; + + fid = fopen(pfile,"r"); + free(pfile); + if (! fid) goto fail; + + nn = fscanf(fid,"%d ",&Nspc); // no. of curves + if (nn != 1) goto fail; + if (Nspc < 1 || Nspc > 10) goto fail; + if (Nspc != sd->Nspc) goto fail2; + + for (ii = 0; ii < Nspc; ii++) // loop each curve + { + nn = fscanf(fid,"%d %d ",&vert[ii],&nap[ii]); // vertical flag, no. anchor points + if (nn != 2) goto fail; + if (vert[ii] < 0 || vert[ii] > 1) goto fail; + if (nap[ii] < 2 || nap[ii] > 50) goto fail; + + for (jj = 0; jj < nap[ii]; jj++) // anchor point values + { + nn = fscanf(fid,"%f/%f ",&apx[ii][jj],&apy[ii][jj]); + if (nn != 2) goto fail; + if (apx[ii][jj] < 0 || apx[ii][jj] > 1) goto fail; + if (apy[ii][jj] < 0 || apy[ii][jj] > 1) goto fail; + } + } + + fclose(fid); + + sd->Nspc = Nspc; // copy curve data to caller's arg + + for (ii = 0; ii < Nspc; ii++) + { + sd->vert[ii] = vert[ii]; + sd->nap[ii] = nap[ii]; + + for (jj = 0; jj < nap[ii]; jj++) + { + sd->apx[ii][jj] = apx[ii][jj]; + sd->apy[ii][jj] = apy[ii][jj]; + } + } + + for (ii = 0; ii < Nspc; ii++) // generate curve data from anchor points + splcurve_generate(sd,ii); + + if (sd->drawarea) // redraw all curves + gtk_widget_queue_draw(sd->drawarea); + + return 1; + +fail: + if (fid) fclose(fid); + printz("curve file is invalid \n"); + return 0; + +fail2: + if (fid) fclose(fid); + printz("curve file has different no. of curves \n"); + return 0; +} + + +// save curve data to a file + +int splcurve_save(spldat *sd, cchar *file) +{ + char *pfile, *pp; + int ii, jj; + FILE *fid; + + F1_help_topic = "curve_edit"; + + if (file) pp = strdup(file); + else pp = zgetfile(ZTX("save curve to a file"),"save",saved_curves_dirk); + if (! pp) return 0; + + pfile = strdupz(pp,8); + free(pp); + + pp = strrchr(pfile,'/'); // force .curve extension + if (pp) pp = strrchr(pp,'.'); + if (pp) strcpy(pp,".curve"); + else strcat(pfile,".curve"); + + fid = fopen(pfile,"w"); + free(pfile); + if (! fid) return 0; + + fprintf(fid,"%d \n",sd->Nspc); // no. of curves + + for (ii = 0; ii < sd->Nspc; ii++) // loop each curve + { + fprintf(fid,"%d %d \n",sd->vert[ii],sd->nap[ii]); // vertical flag, no. anchor points + for (jj = 0; jj < sd->nap[ii]; jj++) // anchor point values + fprintf(fid,"%.4f/%.4f ",sd->apx[ii][jj],sd->apy[ii][jj]); + fprintf(fid,"\n"); + } + + fclose(fid); + return 0; +} + + +/************************************************************************** + + edit transaction and thread support functions + + edit transaction management + edit_setup() get E0 if none, E0 > E1 > E3 + edit_cancel() free (E1 E3 ER) + edit_done() E3 > E0, free (E1 ER) add to undo stack + edit_undo() E3 > ER, E1 > E3 + edit_redo() ER > E3 + edit_reset() free ER, E1 > E3 + edit_fullsize() free (E1 E3) E0 > E1 > E3, signal thread + +***************************************************************************/ + +/************************************************************************** + + Setup for a new edit transaction + Create E1 (edit input) and E3 (edit output) pixmaps from + previous edit (E0) or image file (new E0). + + FprevReq 0 edit full-size image + 1 edit preview image unless select area exists + + Farea 0 select_area is invalid and will be deleted (e.g. rotate) + 1 select_area not used but remains valid (e.g. red-eye) + 2 select_area can be used and remains valid (e.g. gamma) + +***************************************************************************/ + +int edit_setup(editfunc &EF) +{ + int yn, rww, rhh; + int Fpreview; + + if (! curr_file) return 0; // no image file + if (cTab != tabF) return 0; // should not happen + + if (checkpend("lock")) return 0; // menu lock v.13.12 + + if (CEF && CEF->zd) // if pending edit, complete it v.13.12 + zdialog_send_event(CEF->zd,"done"); + if (checkpend("edit")) return 0; // failed (HDR etc.) v.13.12 + + if (URS_pos > maxedits-2) { // undo/redo stack capacity reached + zmessageACK(mWin,0,ZTX("Too many edits, please save image")); + return 0; + } + + sa_validate(); // delete area if not valid + + if (EF.Farea == 0 && sa_stat) { // select area will be lost, warn user + yn = zmessageYN(mWin,ZTX("Select area cannot be kept.\n" + "Continue?")); + if (! yn) return 0; + sa_unselect(); // unselect area + zdialog_free(zdsela); + } + + if (EF.Farea == 2 && sa_stat && sa_stat != 3) { // select area exists and can be used, + yn = zmessageYN(mWin,ZTX("Select area not active.\n" // but not active, ask user + "Continue?")); + if (! yn) return 0; + } + + if (! E0pxm) { // first edit for this file + E0pxm = PXM_load(curr_file,1); // get E0 image (poss. 16-bit color) + if (! E0pxm) return 0; + PXM_fixblue(E0pxm); // blue=0 >> blue=1 for vpixel() + curr_file_bpc = f_load_bpc; + } + + if (URS_pos == 0) save_undo(); // initial image >> undo/redo stack + + mutex_lock(&Fpixmap_lock); // lock pixmaps + + Fpreview = 0; // assume no preview + + if (EF.FprevReq && ! Fzoom) // preview requested by edit func. + Fpreview = 1; + + if (EF.Farea == 2 && sa_stat == 3) // not if select area active + Fpreview = 0; + + if (E0pxm->ww * E0pxm->hh < 2000000) // if image is small, don't use preview + Fpreview = 0; // v.13.04 + + if (E0pxm->ww < 1.4 * Dww && E0pxm->hh < 1.4 * Dhh) // if image slightly larger than window, + Fpreview = 0; // don't use preview + + if (Fpreview) { + if (Fpxb->ww * Dhh > Fpxb->hh * Dww) { // use preview image 1.4 * window size + rww = 1.4 * Dww; + if (rww < 1200) rww = 1200; // at least 1200 on one side + rhh = 1.0 * rww * Fpxb->hh / Fpxb->ww + 0.5; + } + else { + rhh = 1.4 * Dhh; + if (rhh < 1200) rhh = 1200; + rww = 1.0 * rhh * Fpxb->ww / Fpxb->hh + 0.5; + } + if (rww > Fpxb->ww) Fpreview = 0; + } + + if (Fpreview) { + E1pxm = PXM_rescale(E0pxm,rww,rhh); // scale image to preview size + sa_show(0); // hide select area if present + } + else E1pxm = PXM_copy(E0pxm); // else use full size image + + E3pxm = PXM_copy(E1pxm); // E1 >> E3 + + CEF = &EF; // set current edit function + CEF->Fmods = 0; // image not modified yet v.13.04 + CEF->Fpreview = Fpreview; + + CEF->thread_command = CEF->thread_status = 0; // no thread running + CEF->thread_pend = CEF->thread_done = CEF->thread_hiwater = 0; // no work pending or done + if (CEF->threadfunc) start_thread(CEF->threadfunc,0); // start edit thread + + mutex_unlock(&Fpixmap_lock); // moved down v.14.02 + mwpaintnow(); // update image data synchronous v.13.04 + return 1; +} + + +/**************************************************************************/ + +// process edit cancel +// keep: retain zdialog, mousefunc, curves + +void edit_cancel(int keep) +{ + if (! CEF) return; + + wrapup_thread(9); // tell thread to quit now, wait + + mutex_lock(&Fpixmap_lock); + + PXM_free(E1pxm); // free E1, E3, ER + PXM_free(E3pxm); + PXM_free(ERpxm); + PXM_free(E9pxm); // v.13.10 + + if (! keep) // v.13.12 + { + if (CEF->zd) zdialog_free(CEF->zd); // kill dialog + if (CEF->mousefunc == mouseCBfunc) freeMouse(); // if my mouse, free mouse + if (CEF->curves) free(CEF->curves); // free curves data + } + + CEF = 0; // no current edit func + mutex_unlock(&Fpixmap_lock); // moved down v.14.02 + mwpaintnow(); // update image data synchronous v.13.04 + return; +} + + +/**************************************************************************/ + +// process edit done +// keep: retain zdialog, mousefunc, curves + +void edit_done(int keep) +{ + if (! CEF) return; + + wait_thread_idle(); // wait for thread to finish + + if (CEF->Fpreview && CEF->Fmods) { // preview image was edited + Fzoom = 0; + edit_fullsize(); // update full image + } + + wrapup_thread(8); // tell thread to finish and exit + + mutex_lock(&Fpixmap_lock); + + if (CEF->Fmods) { // image was modified + PXM_free(E0pxm); + E0pxm = E3pxm; // E3 updated image >> E0 + E3pxm = 0; + PXM_free(E1pxm); // free E1, ER + PXM_free(ERpxm); + PXM_free(E9pxm); // v.13.10 + URS_pos++; // next undo/redo stack position + URS_max = URS_pos; // image modified - higher mods now obsolete + save_undo(); // save undo state (for following undo) + } + + else { // not modified + PXM_free(E1pxm); // free E1, E3, ER + PXM_free(E3pxm); + PXM_free(ERpxm); + PXM_free(E9pxm); // v.13.10 + } + + if (! keep) // v.13.12 + { + if (CEF->zd) zdialog_free(CEF->zd); // kill dialog + if (CEF->mousefunc == mouseCBfunc) freeMouse(); // if my mouse, free mouse + if (CEF->curves) free(CEF->curves); // free curves data + } + + CEF = 0; // no current edit func + + mutex_unlock(&Fpixmap_lock); // moved down v.14.02 + mwpaintnow(); // update image data synchronous v.13.04 + return; +} + + +/**************************************************************************/ + +// edit undo, redo, reset functions +// these apply within an active edit function + +void edit_undo() +{ + if (! CEF) return; + + if (CEF->thread_status == 2) return; // thread busy + if (! CEF->Fmods) return; // not modified + + mutex_lock(&Fpixmap_lock); + PXM_free(ERpxm); // E3 >> redo copy + ERpxm = E3pxm; + E3pxm = PXM_copy(E1pxm); // E1 >> E3 + CEF->Fmods = 0; // reset image modified status + mutex_unlock(&Fpixmap_lock); + mwpaintnow(); // update image data synchronous v.13.04 + return; +} + + +void edit_redo() +{ + if (! CEF) return; + + if (CEF->thread_status == 2) return; // thread busy + if (! ERpxm) return; // no prior undo + + mutex_lock(&Fpixmap_lock); + PXM_free(E3pxm); // redo copy >> E3 + E3pxm = ERpxm; + ERpxm = 0; + CEF->Fmods = 1; // image modified + mutex_unlock(&Fpixmap_lock); + mwpaintnow(); // update image data synchronous v.13.04 + return; +} + + +void edit_reset() // reset E3 to E1 status +{ + if (! CEF) return; + + wait_thread_idle(); // v.13.04 + if (! CEF->Fmods) return; // not modified + + mutex_lock(&Fpixmap_lock); + PXM_free(ERpxm); // delete redo copy + PXM_free(E3pxm); + E3pxm = PXM_copy(E1pxm); // E1 >> E3 + CEF->Fmods = 0; // reset image modified status v.13.04 + mutex_unlock(&Fpixmap_lock); + mwpaintnow(); // update image data synchronous v.13.04 + return; +} + + +/**************************************************************************/ + +// Convert from preview mode (window-size pixmaps) to full-size pixmaps. +// If edit function has standard thread, it is signaled to go to work. +// Called by edit_done() if preview mode active. +// Can be called by edit function prior to edit_done(). + +void edit_fullsize() +{ + if (! CEF) return; + if (! CEF->Fpreview) return; + + wait_thread_idle(); // v.13.04 + + mutex_lock(&Fpixmap_lock); + PXM_free(E1pxm); // free preview pixmaps + PXM_free(E3pxm); + E1pxm = PXM_copy(E0pxm); // E0 >> E1, full size image + E3pxm = PXM_copy(E1pxm); // E1 >> E3 + PXB_free(mwpC->fpxb); + mwpC->fpxb = PXM_PXB_copy(E3pxm); // update Fpxb from image E3 + Fzoom = 0; + CEF->Fpreview = 0; // this prevents re-entry + mutex_unlock(&Fpixmap_lock); + + if (! CEF->Fmods) return; // no change + + if (CEF->thread_status) { + signal_thread(); // signal thread, repeat edit + wait_thread_idle(); + } + + return; +} + + +/************************************************************************** + undo / redo toolbar buttons +***************************************************************************/ + +// [undo] menu function - reinstate previous edit in undo/redo stack + +void m_undo(GtkWidget *, cchar *) +{ + if (CEF) { // undo active edit + edit_undo(); + return; + } + + if (URS_pos == 0) return; // undo past edit + URS_pos--; + load_undo(); + return; +} + + +// [redo] menu function - reinstate next edit in undo/redo stack + +void m_redo(GtkWidget *, cchar *) +{ + if (CEF) { // redo active edit + edit_redo(); + return; + } + + if (URS_pos == URS_max) return; // redo past edit + URS_pos++; + load_undo(); + return; +} + + +// undo all edits of the current image +// (discard modifications) + +void undo_all() +{ + if (CEF) return; // not if edit active v.13.04 + if (URS_pos == 0) return; + URS_pos = 0; + load_undo(); + return; +} + + +// Save E0 to undo/redo file stack +// stack position = URS_pos + +void save_undo() +{ + char *pp, buff[24]; + int fid, cc, cc2; + + pp = strstr(URS_filename,"undo_"); // get undo/redo stack filename to use + if (! pp) zappcrash("undo/redo stack corrupted 1"); // v.13.12 + snprintf(pp+5,3,"%02d",URS_pos); + + fid = open(URS_filename,O_WRONLY|O_CREAT|O_TRUNC,0640); // create or overwrite + if (! fid) zappcrash("undo/redo stack corrupted 2"); + + snprintf(buff,24," %05d %05d fotoxx ",E0pxm->ww,E0pxm->hh); // write header + cc = write(fid,buff,20); + if (cc != 20) zappcrash("undo/redo stack corrupted 3"); + + cc = E0pxm->ww * E0pxm->hh * 3 * sizeof(float); // write image, ww * hh RGB pixels + cc2 = write(fid,E0pxm->pixels,cc); + if (cc2 != cc) zappcrash("undo/redo stack corrupted 4"); + + close(fid); + + if (URS_pos == 0) { // stack position 0 = original image file + strcpy(URS_funcs[0],"original"); // edit function name for original image + URS_saved[0] = 1; // original image file already on disk + } + else { // stack position + if (! CEF) zappcrash("save_undo() no CEF"); // must have an edit function + strcpy(URS_funcs[URS_pos],CEF->funcname); // edit function name + URS_saved[URS_pos] = 0; // not yet saved to disk + } + + return; +} + + +// Load E0 from undo/redo file stack +// stack position = URS_pos + +void load_undo() +{ + char *pp, buff[24], fotoxx[8]; + int fid, ww, hh, cc, cc2; + + pp = strstr(URS_filename,"undo_"); // v.13.12 + if (! pp) zappcrash("undo/redo stack corrupted 1"); + snprintf(pp+5,3,"%02d",URS_pos); + + fid = open(URS_filename,O_RDONLY); + if (! fid) zappcrash("undo/redo stack corrupted 2"); + + *fotoxx = 0; + cc = read(fid,buff,20); + sscanf(buff," %d %d %8s ",&ww, &hh, fotoxx); + if (! strEqu(fotoxx,"fotoxx")) zappcrash("undo/redo stack corrupted 4"); + + mutex_lock(&Fpixmap_lock); + + PXM_free(E0pxm); + E0pxm = PXM_make(ww,hh); + cc = ww * hh * 12; + cc2 = read(fid,E0pxm->pixels,cc); + if (cc2 != cc) zappcrash("undo/redo stack corrupted 5"); + close(fid); + + sa_validate(); // delete area if invalid + + mutex_unlock(&Fpixmap_lock); // moved down v.14.02 + mwpaintnow(); // update image data synchronous v.13.04 + return; +} + + +/**************************************************************************/ + +// check for various pending or busy conditions and message the user +// returns 1 if something is pending or busy +// 0 if nothing is pending or user decides to discard mods +// conditions: +// edit edit function is active (CEF not null) +// mods current file has unsaved modifications +// lock a menu lock is active +// all check all of the above +// quiet suppress user message + +int checkpend(cchar *list) // v.13.12 +{ + int edit, mods, lock, all, quiet, pend, choice; + cchar *modmess = ZTX("This action will discard changes\n"); + cchar *keep = ZTX("Keep"); + cchar *discard = ZTX("Discard"); + + edit = mods = lock = all = quiet = pend = 0; + + if (strstr(list,"edit")) edit = 1; + if (strstr(list,"mods")) mods = 1; + if (strstr(list,"lock")) lock = 1; + if (strstr(list,"all")) all = 1; + if (strstr(list,"quiet")) quiet = 1; + + if (all) edit = mods = lock = 1; + + if (edit && CEF) { + pend = 1; + if (! quiet) zmessageACK(mWin,0,ZTX("prior function active")); + } + + if (! pend && mods) { + if (CEF && CEF->Fmods && ! CEF->Fsaved) pend = 1; // active edits unsaved + if (URS_pos > 0 && URS_saved[URS_pos] == 0) pend = 1; // completed edits unsaved + if (Fmetachanged) pend = 1; // metadata edit unsaved + if (pend && ! quiet) { + choice = zdialog_choose(0,mWin,modmess,keep,discard,null); // ask user + if (choice == 2) { // choice is discard + if (CEF) edit_cancel(0); // discard current edit + if (URS_pos > 0) undo_all(); // undo prior edits + Fmetachanged = 0; // discard metadata edits + pend = 0; + } + } + } + + if (! pend && lock && Fmenulock) { + pend = 1; + if (! quiet) zmessageACK(mWin,0,ZTX("prior function active")); + } + + return pend; // 1 if something pending +} + + +/**************************************************************************/ + +// zdialog mouse capture and release + +void takeMouse(mcbFunc func, GdkCursor *cursor) // capture mouse for dialog +{ + if (! gdkWin) return; + freeMouse(); + mouseCBfunc = func; + Mcapture = 1; + gdk_window_set_cursor(gdkWin,cursor); + return; +} + +void freeMouse() // free mouse for main window +{ + if (! gdkWin) return; + if (! Mcapture) return; + mouseCBfunc = 0; + Mcapture = 0; + draw_mousearc(0,0,0,0,1); // remove mouse circle + gdk_window_set_cursor(gdkWin,0); // set normal cursor + return; +} + + +/************************************************************************** + + functions to manage working threads + + main level thread management + start_thread(func,arg) start thread running + signal_thread() signal thread that work is pending + wait_thread_idle() wait for pending work complete + wrapup_thread(command) wait for exit or command thread exit + + thread function + thread_idle_loop() wait for pending work, exit if commanded + thread_exit() exit thread unconditionally + + thread_status (thread ownership + 0 no thread is running + 1 thread is running and idle (no work) + 2 thread is working + 0 thread has exited + + thread_command (main program ownership) + 0 idle, initial status + 8 exit when pending work is done + 9 exit now, unconditionally + + thread_pend work requested counter + thread_done work done counter + thread_hiwater high water mark + +***************************************************************************/ + +// start thread that does the edit work + +void start_thread(threadfunc func, void *arg) +{ + CEF->thread_status = 1; // thread is running + CEF->thread_command = CEF->thread_pend = CEF->thread_done + = CEF->thread_hiwater = 0; // nothing pending + start_detached_thread(func,arg); + return; +} + + +// signal thread that new work is pending + +void signal_thread() +{ + if (CEF->thread_status > 0) CEF->thread_pend++; + return; +} + + +// wait for edit thread to complete pending work and become idle + +void wait_thread_idle() +{ + if (! CEF->thread_status) return; // v.13.10 + if (CEF->thread_pend == CEF->thread_done) return; // v.13.10 + paint_busy(); // show busy indicator v.13.09 + zmainloop(); + while (CEF->thread_status && CEF->thread_pend > CEF->thread_done) // no zmainloop() v.13.09 + zsleep(0.01); + return; +} + + +// wait for thread exit or command thread exit +// command = 0 wait for normal completion +// 8 finish pending work and exit +// 9 quit, exit now + +void wrapup_thread(int command) +{ + CEF->thread_command = command; // tell thread to quit or finish + + while (CEF->thread_status > 0) // wait for thread to finish + zsleep(0.01); // no zmainloop() v.13.09 + + return; +} + + +// non-blocking version // v.13.09.4 *** kludge *** + +void wrapup_thread_noblock(int command) +{ + CEF->thread_command = command; // tell thread to quit or finish + + while (CEF->thread_status > 0) { // wait for thread to finish + zsleep(0.01); + zmainloop(); + } + + return; +} + + +// called only from edit threads +// idle loop - wait for work request or exit command + +void thread_idle_loop() +{ + if (CEF->thread_status == 2) zadd_locked(Fthreadbusy,-1); + CEF->thread_status = 1; // status = idle + CEF->thread_done = CEF->thread_hiwater; // work done = high-water mark + + while (true) + { + if (CEF->thread_command == 9) thread_exit(); // quit now command + if (CEF->thread_command == 8) // finish work and exit + if (CEF->thread_pend <= CEF->thread_done) thread_exit(); + if (CEF->thread_pend > CEF->thread_done) break; // wait for work request + zsleep(0.01); + } + + CEF->thread_hiwater = CEF->thread_pend; // set high-water mark + CEF->thread_status = 2; // thread is working + zadd_locked(Fthreadbusy,+1); + return; // perform edit +} + + +// exit thread unconditionally, called only from edit threads + +void thread_exit() +{ + wait_wthreads(); // wait for worker threads if any v.13.04 + if (CEF->thread_status == 2) zadd_locked(Fthreadbusy,-1); + CEF->thread_pend = CEF->thread_done = CEF->thread_hiwater = 0; + CEF->thread_status = 0; + pthread_exit(0); // "return" cannot be used here +} + + +/**************************************************************************/ + +// edit support functions for working threads (per processor core) + +void start_wthread(threadfunc func, void *arg) // start thread and increment busy count +{ // may be called from a thread + zadd_locked(Fthreadbusy,+1); + zadd_locked(wthreads_busy,+1); + start_detached_thread(func,arg); + return; +} + + +void exit_wthread() // decrement busy count and exit thread +{ + zadd_locked(Fthreadbusy,-1); + zadd_locked(wthreads_busy,-1); + pthread_exit(0); // "return" cannot be used here +} + + +void wait_wthreads() // wait for all worker threads done +{ // may be called from thread or non-thread + while (wthreads_busy) { + zsleep(0.01); + zmainloop(); // zmainloop() inert if called from a thread + } + return; +} + + +/************************************************************************** + other support functions +***************************************************************************/ + + +// favorites menu - popup graphic menu with user's favorites + +void m_favorites(GtkWidget *, cchar *) +{ + void favorites_callback(cchar *menu); + char menuconfigfile[200]; + + F1_help_topic = "favorites"; + snprintf(menuconfigfile,200,"%s/menu-config",favorites_dirk); + gmenuz(mWin,ZTX("Favorite Functions"),menuconfigfile,favorites_callback); + return; +} + + +// response function for clicked menu +// a menu function is called as from the text menus + +void favorites_callback(cchar *menu) +{ + int ii; + + settab("F"); // v.13.04 + + for (ii = 0; ii < Nmenus; ii++) + if (strcasecmp(ZTX(menu),ZTX(menutab[ii].menu)) == 0) break; + + if (ii < Nmenus) menutab[ii].func(0,menu); + return; +} + + +// help menu function + +void m_help(GtkWidget *, cchar *menu) +{ + if (strEqu(menu,ZTX("Quick Start"))) + showz_html(quickstart_file); // v.13.06 + + if (strEqu(menu,ZTX("User Guide"))) + showz_userguide(); + + if (strEqu(menu,ZTX("User Guide Changes"))) + showz_userguide("changes"); + + if (strEqu(menu,ZTX("Program Updates"))) + showz_userguide("updates"); + + if (strEqu(menu,ZTX("README"))) + showz_textfile("doc","README"); + + if (strEqu(menu,ZTX("Edit Functions Summary"))) + showz_textfile("data","edit-menus"); + + if (strEqu(menu,ZTX("Change Log"))) + showz_textfile("doc","changelog"); + + if (strEqu(menu,ZTX("Log File"))) + showz_logfile(); + + if (strEqu(menu,ZTX("Translations"))) + showz_textfile("doc","translations"); + + if (strEqu(menu,ZTX("Home Page"))) + showz_html(Fhomepage); + + if (strEqu(menu,ZTX("About"))) // v.13.02 + zmessageACK(mWin,"Fotoxx"," %s\n %s\n %s\n %s\n %s\n %s\n", + Frelease,Flicense,Fhomepage,Fsoftware,Fcontact,Ftranslators); + + if (strEqu(menu,ZTX("Help"))) // toolbar button + showz_userguide(F1_help_topic); // show topic if there, or page 1 + + return; +} + + +/**************************************************************************/ + +// table for loading and saving adjustable parameters between sessions + +typedef struct { + char name[20]; + char type[12]; + int count; + void *location; +} param; + +#define Nparms 29 +param paramTab[Nparms] = { +// name type count location +{ "fotoxx release", "char", 1, &Prelease }, +{ "notified release", "char", 1, &Nrelease }, +{ "first time", "int", 1, &Ffirsttime }, +{ "usage counter", "int", 1, &usagecounter }, +{ "window geometry", "int", 4, &mwgeom }, +{ "thumbnail size", "int", 1, &navi::thumbsize }, +{ "toolbar style", "char", 1, &tbar_style }, +{ "drag option", "int", 1, &Fdragopt }, +{ "zoom count", "int", 1, &zoomcount }, +{ "interpolation", "char", 1, &interpolation }, +{ "startup display", "char", 1, &startdisplay }, +{ "start image file", "char", 1, &startfile }, +{ "start directory", "char", 1, &startdirk }, +{ "grid base", "int", 10, &gridsettings[0] }, +{ "grid trim/rotate", "int", 10, &gridsettings[1] }, +{ "grid unbend", "int", 10, &gridsettings[2] }, +{ "grid warp curved", "int", 10, &gridsettings[3] }, +{ "grid warp linear", "int", 10, &gridsettings[4] }, +{ "grid warp affine", "int", 10, &gridsettings[5] }, +{ "RAW command", "char", 1, &RAWcommand }, +{ "RAW file types", "char", 1, &RAWfiletypes }, +{ "trim rectangle", "int", 4, &trimrect }, +{ "trim size", "int", 2, &trimsize }, +{ "trim buttons", "char", 6, &trimbuttons }, +{ "trim ratios", "char", 6, &trimratios }, +{ "edit resize", "int", 2, &editresize }, +{ "jpeg def quality", "int", 1, &jpeg_def_quality }, +{ "lens mm", "float", 1, &lens_mm }, +{ "lens bow", "float", 1, &lens_bow } }; + +// save parameters to file /.../.fotoxx/parameters + +void save_params() +{ + FILE *fid; + char buff[1050], text[1000]; // limit for character data cc + char *name, *type; + int count; + void *location; + char **charloc; + int *intloc; + float *floatloc; + + snprintf(buff,199,"%s/parameters",get_zuserdir()); // open output file + fid = fopen(buff,"w"); + if (! fid) return; + + for (int ii = 0; ii < Nparms; ii++) // write table of state data + { + name = paramTab[ii].name; + type = paramTab[ii].type; + count = paramTab[ii].count; + location = paramTab[ii].location; + charloc = (char **) location; + intloc = (int *) location; + floatloc = (float *) location; + + fprintf(fid,"%-20s %-8s %02d ",name,type,count); // write parm name, type, count + + for (int kk = 0; kk < count; kk++) // write "value" "value" ... + { + if (strEqu(type,"char")) { + if (! *charloc) break; // missing, discontinue this parameter + repl_1str(*charloc++,text,"\n","\\n"); // replace newlines with "\n" + fprintf(fid," \"%s\"",text); + } + if (strEqu(type,"int")) + fprintf(fid," \"%d\"",*intloc++); + + if (strEqu(type,"float")) + fprintf(fid," \"%.2f\"",*floatloc++); + } + + fprintf(fid,"\n"); // write EOR + } + + fprintf(fid,"\n"); + fclose(fid); // close file + + return; +} + + +// load parameters from file /.../.fotoxx/parameters + +void load_params() +{ + FILE *fid; + int ii, err, pcount; + int Idata; + float Fdata; + char buff[1000], text[1000], *pp; + char name[20], type[12], count[8], data[1000]; + void *location; + char **charloc; + int *intloc; + float *floatloc; + + snprintf(buff,199,"%s/parameters",get_zuserdir()); // open parameters file + fid = fopen(buff,"r"); + if (! fid) return; // none, defaults are used + + while (true) // read parameters + { + pp = fgets_trim(buff,999,fid,1); + if (! pp) break; + if (*pp == '#') continue; // comment + if (strlen(pp) < 40) continue; // rubbish + + err = 0; + + strncpy0(name,pp,20); // parm name + strTrim2(name); + + strncpy0(type,pp+22,8); // parm type + strTrim2(type); + + strncpy0(count,pp+32,4); // parm count + strTrim2(count); + err = convSI(count,pcount); + + strncpy0(data,pp+38,1000); // parm value(s) + strTrim2(data); + + for (ii = 0; ii < Nparms; ii++) // match file record to param table + { + if (strNeq(name,paramTab[ii].name)) continue; // parm name + if (strNeq(type,paramTab[ii].type)) continue; // parm type + if (paramTab[ii].count != pcount) continue; // parm count + break; + } + + if (ii == Nparms) continue; // not found, ignore file param + + location = paramTab[ii].location; // get parameter memory location + charloc = (char **) location; + intloc = (int *) location; + floatloc = (float *) location; + + for (ii = 1; ii <= pcount; ii++) // get parameter value(s) + { + pp = (char *) strField(data,' ',ii); + if (! pp) break; + + if (strEqu(type,"char")) { + repl_1str(pp,text,"\\n","\n"); // replace "\n" with real newlines + *charloc++ = strdup(text); + } + + if (strEqu(type,"int")) { + err = convSI(pp,Idata); + if (err) continue; + *intloc++ = Idata; + } + + if (strEqu(type,"float")) { + err = convSF(pp,Fdata); + if (err) continue; + *floatloc++ = Fdata; + } + } + } + + fclose(fid); + + for (ii = 0; ii < Nparms; ii++) // set any null strings to "" + { + if (strNeq(paramTab[ii].type,"char")) continue; + charloc = (char **) paramTab[ii].location; + pcount = paramTab[ii].count; + for (int jj = 0; jj < pcount; jj++) + if (! charloc[jj]) + charloc[jj] = strdupz("",20); + } + + zoomratio = pow( 2.0, 1.0 / zoomcount); // set zoom ratio from zoom count + + return; +} + + +/**************************************************************************/ + +// free all resources associated with the current image file + +void free_resources(int fkeepundo) +{ + mutex_lock(&Fpixmap_lock); // lock pixmaps + + if (! fkeepundo) + shell_quiet("rm -f %s/undo_*",tempdir); // remove undo/redo files v.13.12 + + if (Fshutdown) { // stop here if shutdown mode + mutex_unlock(&Fpixmap_lock); + return; + } + + URS_pos = URS_max = 0; // reset undo/redo stack v.13.04 + Fmetachanged = 0; // no unsaved metadata changes v.13.08 + sa_unselect(); // unselect select area + + draw_toplines(2); // no toplines + erase_topcircles(); // no topcircles + Ntoptext = 0; // no toptext v.13.08 + Fbusy_goal = 0; + + if (curr_file) { + if (zdsela) zdialog_free(zdsela); // kill select area dialog if active + freeMouse(); // free mouse v.13.09 + free(curr_file); // free image file + curr_file = 0; + *SB_text = 0; + ///curr_file_posn = 0; // v.13.12 + } + + PXB_free(Fpxb); + PXM_free(E0pxm); + PXM_free(E1pxm); + PXM_free(E3pxm); + PXM_free(ERpxm); + PXM_free(E8pxm); + PXM_free(E9pxm); + + mutex_unlock(&Fpixmap_lock); + return; +} + + +/**************************************************************************/ + +// Get a virtual pixel at location (px,py) (real) in a PXM pixmap. +// Get the overlapping real pixels and build a composite. +// Output vpix is float[3] supplied by caller. +// Returns 1 if OK, 0 if px/py out of limits for pxm. + +int vpixel(PXM *pxm, float px, float py, float *vpix) +{ + int ww, hh, px0, py0; + float *pix0, *pix1, *pix2, *pix3; + float f0, f1, f2, f3; + float red, green, blue; + + ww = pxm->ww; + hh = pxm->hh; + + px0 = px; // integer pixel containing (px,py) + py0 = py; + + if (px0 < 1 || py0 < 1) return 0; // void edge pixels + if (px0 > ww-2 || py0 > hh-2) return 0; + + pix0 = PXMpix(pxm,px0,py0); // 4 pixels based at (px0,py0) + pix1 = pix0 + ww * 3; + pix2 = pix0 + 3; + pix3 = pix0 + ww * 3 + 3; + + f0 = (px0+1 - px) * (py0+1 - py); // overlap of (px,py) + f1 = (px0+1 - px) * (py - py0); // in each of the 4 pixels + f2 = (px - px0) * (py0+1 - py); + f3 = (px - px0) * (py - py0); + + red = f0 * pix0[0] + f1 * pix1[0] + f2 * pix2[0] + f3 * pix3[0]; // sum the weighted inputs + green = f0 * pix0[1] + f1 * pix1[1] + f2 * pix2[1] + f3 * pix3[1]; + blue = f0 * pix0[2] + f1 * pix1[2] + f2 * pix2[2] + f3 * pix3[2]; + if (blue < 0.5) blue = 0; // edge or voided pixel + + vpix[0] = red; + vpix[1] = green; + vpix[2] = blue; + + if (! blue) return 0; + return 1; +} + + +/**************************************************************************/ + +// compare two floats for significant difference +// return: 0 difference not significant +// +1 d1 > d2 +// -1 d1 < d2 + +int sigdiff(float d1, float d2, float signf) +{ + float diff = fabsf(d1-d2); + if (diff == 0.0) return 0; + diff = diff / (fabsf(d1) + fabsf(d2)); + if (diff < signf) return 0; + if (d1 > d2) return 1; + else return -1; +} + + +/************************************************************************** + PXM pixmap functions - RGB float pixel map + pixel RGB values may range from 0.0 to 255.99 +***************************************************************************/ + + +// audit the contents of a PXM pixmap // v.13.10 + +void PXM_audit(PXM *pxm) +{ + int px, py; + float bright, *pix; + + for (py = 0; py < pxm->hh; py++) + for (px = 0; px < pxm->ww; px++) + { + pix = PXMpix(pxm,px,py); + bright = pixbright(pix); + if (int(bright) < 0 || int(bright) > 255) + zappcrash("PXM_audit: px/py %d/%d RGB %.2f %.2f %.2f bright %.2f %d \n", + px,py,pix[0],pix[1],pix[2],bright,int(bright)); + } + return; +} + + +// initialize PXM pixmap - allocate memory + +PXM * PXM_make(int ww, int hh) +{ + if (ww < 5 || hh < 5) { // impose reasonableness limits + zmessageACK(mWin,0,"image too small: %d %d",ww,hh); + return 0; + } + + if (ww > wwhh_limit || hh > wwhh_limit) { + zmessageACK(mWin,0,"image too big: %d %d",ww,hh); + return 0; + } + + PXM *pxm = (PXM *) malloc(sizeof(PXM)); // 0.45 sec for 116 megapix image (1.4 GB) + pxm->ww = ww; + pxm->hh = hh; + pxm->pixels = (float *) malloc(ww*hh*12); // float[3] per pixel + if (! pxm->pixels) { + zmessageACK(mWin,0,"memory allocation failure"); // v.14.03 + exit(12); + } + memset(pxm->pixels,0,ww*hh*12); // clear pixels to zero v.14.02 + strcpy(pxm->wmi,"pxmpix"); + return pxm; +} + + +// free PXM pixmap + +void PXM_free(PXM *&pxm) +{ + if (! pxm) return; + if (! strEqu(pxm->wmi,"pxmpix")) + zappcrash("PXM_free(), bad PXM"); + strcpy(pxm->wmi,"xxxxxx"); + free(pxm->pixels); + free(pxm); + pxm = 0; + return; +} + + +// create a copy of a PXM pixmap + +PXM * PXM_copy(PXM *pxm1) +{ + int cc; + PXM *pxm2; + + pxm2 = PXM_make(pxm1->ww, pxm1->hh); + cc = pxm1->ww * pxm1->hh * 3 * sizeof(float); + memcpy(pxm2->pixels,pxm1->pixels,cc); + return pxm2; +} + + +// create a copy of a PXM rectangular area + +PXM * PXM_copy_area(PXM *pxm1, int orgx, int orgy, int ww2, int hh2) +{ + float *pix1, *pix2; + PXM *pxm2 = 0; + int px1, py1, px2, py2; + + pxm2 = PXM_make(ww2,hh2); + + for (py1 = orgy, py2 = 0; py2 < hh2; py1++, py2++) + { + pix1 = PXMpix(pxm1,orgx,orgy); + pix2 = PXMpix(pxm2,0,py2); + + for (px1 = orgx, px2 = 0; px2 < ww2; px1++, px2++) + { + pix2[0] = pix1[0]; + pix2[1] = pix1[1]; + pix2[2] = pix1[2]; + pix1 += 3; + pix2 += 3; + } + } + + return pxm2; +} + + +// replace blue = 0 pixels with blue = 1 +// (blue = 0 reserved for pixels voided by warp or overlay offsets) +// needs about 0.013 seconds for 10 megapixel image and 3.3 GHz CPU + +void PXM_fixblue(PXM *pxm) +{ + int size; + float *pixel, *pixel0, *pixelN; + + size = pxm->ww * pxm->hh * 3; + pixel0 = pxm->pixels + 2; + pixelN = pixel0 + size; + + for (pixel = pixel0; pixel < pixelN; pixel += 3) // +3 is +12 bytes + if (! *pixel) *pixel = 1.0; + + return; +} + + +/************************************************************************** + + Rescale PXM image to new width and height. + The scale ratios may be different for width and height. + + Method: + The input and output images are overlayed, stretching or shrinking the + output pixels as needed. The contribution of each input pixel overlapping + an output pixel is proportional to the area of the output pixel covered by + the input pixel. The contributions of all overlaping input pixels are added. + The work is spread among Nwt threads to reduce time on SMP processors. + + Example: if the output image is 40% of the input image, then: + outpix[0,0] = 0.16 * inpix[0,0] + 0.16 * inpix[1,0] + 0.08 * inpix[2,0] + + 0.16 * inpix[0,1] + 0.16 * inpix[1,1] + 0.08 * inpix[2,1] + + 0.08 * inpix[0,2] + 0.08 * inpix[1,2] + 0.04 * inpix[2,2] + +***************************************************************************/ + +namespace pxmrescale { + float *bmp1; + float *bmp2; + int ww1; + int hh1; + int ww2; + int hh2; + int *px1L; + int *py1L; + float *pxmap; + float *pymap; + int maxmapx; + int maxmapy; + int busy[max_threads]; +} + +PXM * PXM_rescale(PXM *pxm1, int ww, int hh) +{ + using namespace pxmrescale; + + void * pxm_rescale_thread(void *arg); + + PXM *pxm2; + int px1, py1, px2, py2; + int pxl, pyl, pxm, pym, ii; + float scalex, scaley; + float px1a, py1a, px1b, py1b; + float fx, fy; + + ww1 = pxm1->ww; // input PXM + hh1 = pxm1->hh; + bmp1 = pxm1->pixels; + + pxm2 = PXM_make(ww,hh); // output PXM + if (! pxm2) return 0; + ww2 = ww; + hh2 = hh; + bmp2 = pxm2->pixels; + + memset(bmp2, 0, ww2 * hh2 * 3 * sizeof(float)); // clear output pixmap + + scalex = 1.0 * ww1 / ww2; // compute x and y scales + scaley = 1.0 * hh1 / hh2; + + if (scalex <= 1) maxmapx = 2; // compute max input pixels + else maxmapx = scalex + 2; // mapping into output pixels + maxmapx += 1; // for both dimensions + if (scaley <= 1) maxmapy = 2; // (pixels may not be square) + else maxmapy = scaley + 2; + maxmapy += 1; // (extra entry for -1 flag) + + pymap = (float *) malloc(hh2 * maxmapy * sizeof(float)); // maps overlap of < maxmap input + pxmap = (float *) malloc(ww2 * maxmapx * sizeof(float)); // pixels per output pixel + + py1L = (int *) malloc(hh2 * sizeof(int)); // maps first (lowest) input pixel + px1L = (int *) malloc(ww2 * sizeof(int)); // per output pixel + + for (py2 = 0; py2 < hh2; py2++) // loop output y-pixels + { + py1a = py2 * scaley; // corresponding input y-pixels + py1b = py1a + scaley; + if (py1b >= hh1) py1b = hh1 - 0.001; // fix precision limitation + pyl = py1a; + py1L[py2] = pyl; // 1st overlapping input pixel + + for (py1 = pyl, pym = 0; py1 < py1b; py1++, pym++) // loop overlapping input pixels + { + if (py1 < py1a) { // compute amount of overlap + if (py1+1 < py1b) fy = py1+1 - py1a; // 0.0 to 1.0 + else fy = scaley; + } + else if (py1+1 > py1b) fy = py1b - py1; + else fy = 1; + + ii = py2 * maxmapy + pym; // save it + pymap[ii] = 0.9999 * fy / scaley; + } + ii = py2 * maxmapy + pym; // set an end marker after + pymap[ii] = -1; // last overlapping pixel + } + + for (px2 = 0; px2 < ww2; px2++) // do same for x-pixels + { + px1a = px2 * scalex; + px1b = px1a + scalex; + if (px1b >= ww1) px1b = ww1 - 0.001; + pxl = px1a; + px1L[px2] = pxl; + + for (px1 = pxl, pxm = 0; px1 < px1b; px1++, pxm++) + { + if (px1 < px1a) { + if (px1+1 < px1b) fx = px1+1 - px1a; + else fx = scalex; + } + else if (px1+1 > px1b) fx = px1b - px1; + else fx = 1; + + ii = px2 * maxmapx + pxm; + pxmap[ii] = 0.9999 * fx / scalex; + } + ii = px2 * maxmapx + pxm; + pxmap[ii] = -1; + } + + for (ii = 0; ii < Nwt; ii++) { // start working threads + busy[ii] = 1; + start_detached_thread(pxm_rescale_thread,&Nval[ii]); + } + + for (ii = 0; ii < Nwt; ii++) // wait for all done + while (busy[ii]) zsleep(0.004); + + free(px1L); + free(py1L); + free(pxmap); + free(pymap); + + return pxm2; +} + +void * pxm_rescale_thread(void *arg) // worker thread function +{ + using namespace pxmrescale; + + int index = *((int *) arg); + int px1, py1, px2, py2; + int pxl, pyl, pxm, pym, ii; + float *pixel1, *pixel2; + float fx, fy, ftot; + float red, green, blue; + + for (py2 = index; py2 < hh2; py2 += Nwt) // loop output y-pixels + { + pyl = py1L[py2]; // corresp. 1st input y-pixel + + for (px2 = 0; px2 < ww2; px2++) // loop output x-pixels + { + pxl = px1L[px2]; // corresp. 1st input x-pixel + + red = green = blue = 0; // initz. output pixel + + for (py1 = pyl, pym = 0; ; py1++, pym++) // loop overlapping input y-pixels + { + ii = py2 * maxmapy + pym; // get y-overlap + fy = pymap[ii]; + if (fy < 0) break; // no more pixels + + for (px1 = pxl, pxm = 0; ; px1++, pxm++) // loop overlapping input x-pixels + { + ii = px2 * maxmapx + pxm; // get x-overlap + fx = pxmap[ii]; + if (fx < 0) break; // no more pixels + + ftot = fx * fy; // area overlap = x * y overlap + pixel1 = bmp1 + (py1 * ww1 + px1) * 3; + red += pixel1[0] * ftot; // add input pixel * overlap + green += pixel1[1] * ftot; + blue += pixel1[2] * ftot; + } + + pixel2 = bmp2 + (py2 * ww2 + px2) * 3; // save output pixel + pixel2[0] = red; + pixel2[1] = green; + pixel2[2] = blue; + } + } + } + + busy[index] = 0; + return 0; +} + + +/************************************************************************** + + PXM *pxm2 = PXM_rotate(PXM *pxm1, float angle) + + Rotate PXM pixmap through an arbitrary angle (degrees). + + The returned image has the same size as the original, but the + pixmap size is increased to accomodate the rotated image. + (e.g. a 100x100 image rotated 45 deg. needs a 142x142 pixmap). + + The space added around the rotated image is black (RGB 0,0,0). + Angle is in degrees. Positive direction is clockwise. + Speed is about 28 million pixels/sec/thread for a 3.3 GHz CPU. + Loss of resolution is less than 1 pixel. + + Work is divided among Nwt threads to gain speed. + +***************************************************************************/ + +namespace pxmrotate { + int busy = 0; + float *bmp1; + float *bmp2; + int ww1; + int hh1; + int ww2; + int hh2; + float angle; +} + +PXM * PXM_rotate(PXM *pxm1, float anglex) +{ + using namespace pxmrotate; + + void *PXM_rotate_thread(void *); + + int ii; + PXM *pxm2; + + ww1 = pxm1->ww; // input PXM + hh1 = pxm1->hh; + bmp1 = pxm1->pixels; + angle = anglex; + + while (angle < -180) angle += 360; // normalize, -180 to +180 + while (angle > 180) angle -= 360; + angle = angle * PI / 180; // radians, -PI to +PI + + if (fabsf(angle) < 0.001) { // angle = 0 within my precision + pxm2 = PXM_copy(pxm1); // return a copy of the input PXM + return pxm2; + } + + ww2 = ww1*fabsf(cosf(angle)) + hh1*fabsf(sinf(angle)); // rectangle containing rotated image + hh2 = ww1*fabsf(sinf(angle)) + hh1*fabsf(cosf(angle)); + + pxm2 = PXM_make(ww2,hh2); // output PXM + bmp2 = pxm2->pixels; + + for (ii = 0; ii < Nwt; ii++) // start worker threads + start_detached_thread(PXM_rotate_thread,&Nval[ii]); + zadd_locked(busy,+Nwt); + + while (busy) zsleep(0.004); // wait for completion + return pxm2; +} + +void * PXM_rotate_thread(void *arg) +{ + using namespace pxmrotate; + + int index = *((int *) (arg)); + int px2, py2, px0, py0; + float *pix0, *pix1, *pix2, *pix3; + float px1, py1; + float f0, f1, f2, f3, red, green, blue; + float a, b, d, e, ww15, hh15, ww25, hh25; + + ww15 = 0.5 * ww1; + hh15 = 0.5 * hh1; + ww25 = 0.5 * ww2; + hh25 = 0.5 * hh2; + + a = cosf(angle); + b = sinf(angle); + d = - sinf(angle); + e = cosf(angle); + + for (py2 = index; py2 < hh2; py2 += Nwt) // loop through output pixels + for (px2 = 0; px2 < ww2; px2++) + { + px1 = a * (px2 - ww25) + b * (py2 - hh25) + ww15; // (px1,py1) = corresponding + py1 = d * (px2 - ww25) + e * (py2 - hh25) + hh15; // point within input pixels + + px0 = px1; // pixel containing (px1,py1) + py0 = py1; + + if (px0 < 0 || px0 > ww1-2 || py0 < 0 || py0 > hh1-2) { // if outside input pixel array v.13.09 + pix2 = bmp2 + (py2 * ww2 + px2) * 3; // output is black + pix2[0] = pix2[1] = pix2[2] = 0; + continue; + } + + pix0 = bmp1 + (py0 * ww1 + px0) * 3; // 4 input pixels based at (px0,py0) + pix1 = pix0 + ww1 * 3; + pix2 = pix0 + 3; + pix3 = pix1 + 3; + + f0 = (px0+1 - px1) * (py0+1 - py1); // overlap of (px1,py1) + f1 = (px0+1 - px1) * (py1 - py0); // in each of the 4 pixels + f2 = (px1 - px0) * (py0+1 - py1); + f3 = (px1 - px0) * (py1 - py0); + + red = f0 * pix0[0] + f1 * pix1[0] + f2 * pix2[0] + f3 * pix3[0]; // sum the weighted inputs + green = f0 * pix0[1] + f1 * pix1[1] + f2 * pix2[1] + f3 * pix3[1]; + blue = f0 * pix0[2] + f1 * pix1[2] + f2 * pix2[2] + f3 * pix3[2]; + + pix2 = bmp2 + (py2 * ww2 + px2) * 3; // output pixel + pix2[0] = red; + pix2[1] = green; + pix2[2] = blue; + } + + zadd_locked(busy,-1); + return 0; +} + + +/************************************************************************** + PXB pixmap functions - RGB uint8 pixel map and GdkPixbuf wrapper +***************************************************************************/ + +// Create PXB pixmap with pixels cleared to zero + +PXB * PXB_make(int ww, int hh) +{ + PXB *pxb = (PXB *) malloc(sizeof(PXB)); + strcpy(pxb->wmi,"pxbpix"); + pxb->pixbuf = gdk_pixbuf_new(GDKRGB,0,8,ww,hh); + if (! pxb->pixbuf) { + zmessageACK(mWin,0,"memory allocation failure"); // v.14.03 + exit(12); + } + pxb->pixels = gdk_pixbuf_get_pixels(pxb->pixbuf); + pxb->ww = ww; + pxb->hh = hh; + pxb->rs = gdk_pixbuf_get_rowstride(pxb->pixbuf); + int cc = hh * pxb->rs; + memset(pxb->pixels,0,cc); + return pxb; +} + + +// Create a PXB pixmap from a GdkPixbuf +// The pixbuf is used directly and is not duplicated + +PXB * PXB_make(GdkPixbuf *pixbuf1) +{ + PXB *pxb2 = (PXB *) malloc(sizeof(PXB)); + strcpy(pxb2->wmi,"pxbpix"); + pxb2->pixbuf = pixbuf1; + pxb2->ww = gdk_pixbuf_get_width(pixbuf1); + pxb2->hh = gdk_pixbuf_get_height(pixbuf1); + pxb2->rs = gdk_pixbuf_get_rowstride(pixbuf1); + pxb2->pixels = gdk_pixbuf_get_pixels(pixbuf1); + return pxb2; +} + + +// Free PXB pixmap - release memory + +void PXB_free(PXB *&pxb) +{ + if (! pxb) return; + if (! strEqu(pxb->wmi,"pxbpix")) + zappcrash("PXB_free(), bad PXB"); + strcpy(pxb->wmi,"xxxxxx"); + g_object_unref(pxb->pixbuf); + free(pxb); + pxb = 0; + return; +} + + +// Copy a PXB pixmap to a new PXB pixmap + +PXB * PXB_copy(PXB *pxb1) +{ + PXB *pxb2 = (PXB *) malloc(sizeof(PXB)); + strcpy(pxb2->wmi,"pxbpix"); + pxb2->pixbuf = gdk_pixbuf_copy(pxb1->pixbuf); + if (! pxb2->pixbuf) { + zmessageACK(mWin,0,"memory allocation failure"); // v.14.03 + exit(12); + } + pxb2->ww = pxb1->ww; + pxb2->hh = pxb1->hh; + pxb2->rs = pxb1->rs; + pxb2->pixels = gdk_pixbuf_get_pixels(pxb2->pixbuf); + return pxb2; +} + + +// Rescale PXB pixmap to given width and height. + +PXB * PXB_rescale(PXB *pxb1, int ww2, int hh2) +{ + GdkPixbuf *pixbuf2 = 0; + + if (strEqu(interpolation,"tiles")) // v.13.05 + pixbuf2 = gdk_pixbuf_scale_simple(pxb1->pixbuf,ww2,hh2,GDK_INTERP_TILES); + else if (strEqu(interpolation,"hyperbolic")) + pixbuf2 = gdk_pixbuf_scale_simple(pxb1->pixbuf,ww2,hh2,GDK_INTERP_HYPER); + else pixbuf2 = gdk_pixbuf_scale_simple(pxb1->pixbuf,ww2,hh2,GDK_INTERP_BILINEAR); + + if (! pixbuf2) { + zmessageACK(mWin,0,"memory allocation failure"); // v.14.03 + exit(12); + } + + PXB *pxb2 = PXB_make(pixbuf2); + return pxb2; +} + + +// Copy a PXM image (RGB float) to a PXB image (RGB uint8). + +PXB * PXM_PXB_copy(PXM *pxm1) +{ + float *pix1; + uint8 *pix2; + PXB *pxb2; + int ww, hh, px, py; + + ww = pxm1->ww; + hh = pxm1->hh; + + pxb2 = PXB_make(ww,hh); + + for (py = 0; py < hh; py++) + { + pix1 = PXMpix(pxm1,0,py); + pix2 = PXBpix(pxb2,0,py); + + for (px = 0; px < ww; px++) + { + pix2[0] = pix1[0]; + pix2[1] = pix1[1]; + pix2[2] = pix1[2]; + pix1 += 3; + pix2 += 3; + } + } + + return pxb2; +} + + +// Update a PXB section from an updated PXM section. +// The PXM and PXB must have the same dimensions. +// px3, py3, ww3, hh3: modified section within pxm1 to propagate to pxb2; + +void PXM_PXB_update(PXM *pxm1, PXB *pxb2, int px3, int py3, int ww3, int hh3) +{ + float *pix1; + uint8 *pix2; + int px, py; + int lox, hix, loy, hiy; + + lox = px3; + hix = px3 + ww3; + if (lox < 0) lox = 0; + if (hix > pxb2->ww) hix = pxb2->ww; + + loy = py3; + hiy = py3 + hh3; + if (loy < 0) loy = 0; + if (hiy > pxb2->hh) hiy = pxb2->hh; + + for (py = loy; py < hiy; py++) + { + pix1 = PXMpix(pxm1,lox,py); + pix2 = PXBpix(pxb2,lox,py); + + for (px = lox; px < hix; px++) + { + pix2[0] = pix1[0]; // 0.0 - 255.99 >> 0 - 255 + pix2[1] = pix1[1]; + pix2[2] = pix1[2]; + pix1 += 3; + pix2 += 3; + } + } + + return; +} + + +// Update an output PXB section from a corresponding input PXB section. +// The two PXBs represent the same image at different scales (width/height). +// px3, py3, ww3, hh3: modified section within pxb1 to propagate to pxb2; + +namespace pxbpxbupdate { + uint8 *bmp1, *bmp2; + int ww1, hh1, ww2, hh2, rs1, rs2; + int pww1, phh1, pww2, phh2; + int *px1L, *py1L; + float scalex, scaley; + float *pxmap, *pymap; + int maxmapx, maxmapy; +} + +void PXB_PXB_update(PXB *pxb1, PXB *pxb2, int px3, int py3, int ww3, int hh3) +{ + using namespace pxbpxbupdate; + + int px1, py1, px2, py2; + int pxl, pyl, pxm, pym, ii; + float px1a, py1a, px1b, py1b; + float fx, fy, ftot; + uint8 *pixel1, *pixel2; + float red, green, blue; + int lox, hix, loy, hiy; + + + ww1 = pxb1->ww; + hh1 = pxb1->hh; + rs1 = pxb1->rs; + bmp1 = pxb1->pixels; + + ww2 = pxb2->ww; + hh2 = pxb2->hh; + rs2 = pxb2->rs; + bmp2 = pxb2->pixels; + + if (ww1 == pww1 && hh1 == phh1 && ww2 == pww2 && hh2 == phh2) // if the sizes are the same as before, + goto copy_pixels; // the pixel mapping math can be avoided. + + pww1 = ww1; + phh1 = hh1; + pww2 = ww2; + phh2 = hh2; + + if (px1L) { // unless this is the first call, + free(px1L); // free prior map memory + free(py1L); + free(pxmap); + free(pymap); + } + + scalex = 1.0 * ww1 / ww2; // compute x and y scales + scaley = 1.0 * hh1 / hh2; + + if (scalex <= 1) maxmapx = 2; // compute max input pixels + else maxmapx = scalex + 2; // mapping into output pixels + maxmapx += 1; // for both dimensions + if (scaley <= 1) maxmapy = 2; // (pixels may not be square) + else maxmapy = scaley + 2; + maxmapy += 1; // (extra entry for -1 flag) + + pymap = (float *) malloc(hh2 * maxmapy * sizeof(float)); // maps overlap of < maxmap input + pxmap = (float *) malloc(ww2 * maxmapx * sizeof(float)); // pixels per output pixel + + py1L = (int *) malloc(hh2 * sizeof(int)); // maps first (lowest) input pixel + px1L = (int *) malloc(ww2 * sizeof(int)); // per output pixel + + for (py2 = 0; py2 < hh2; py2++) // loop output y-pixels + { + py1a = py2 * scaley; // corresponding input y-pixels + py1b = py1a + scaley; + if (py1b >= hh1) py1b = hh1 - 0.001; // fix precision limitation + pyl = py1a; + py1L[py2] = pyl; // 1st overlapping input pixel + + for (py1 = pyl, pym = 0; py1 < py1b; py1++, pym++) // loop overlapping input pixels + { + if (py1 < py1a) { // compute amount of overlap + if (py1+1 < py1b) fy = py1+1 - py1a; // 0.0 to 1.0 + else fy = scaley; + } + else if (py1+1 > py1b) fy = py1b - py1; + else fy = 1; + + ii = py2 * maxmapy + pym; // save it + pymap[ii] = 0.9999 * fy / scaley; + } + ii = py2 * maxmapy + pym; // set an end marker after + pymap[ii] = -1; // last overlapping pixel + } + + for (px2 = 0; px2 < ww2; px2++) // do same for x-pixels + { + px1a = px2 * scalex; + px1b = px1a + scalex; + if (px1b >= ww1) px1b = ww1 - 0.001; + pxl = px1a; + px1L[px2] = pxl; + + for (px1 = pxl, pxm = 0; px1 < px1b; px1++, pxm++) + { + if (px1 < px1a) { + if (px1+1 < px1b) fx = px1+1 - px1a; + else fx = scalex; + } + else if (px1+1 > px1b) fx = px1b - px1; + else fx = 1; + + ii = px2 * maxmapx + pxm; + pxmap[ii] = 0.9999 * fx / scalex; + } + ii = px2 * maxmapx + pxm; + pxmap[ii] = -1; + } + +copy_pixels: + + px3 = px3 / scalex; // convert input area to output area + py3 = py3 / scaley; + ww3 = ww3 / scalex + 2; + hh3 = hh3 / scaley + 2; + + lox = px3; + hix = px3 + ww3; + if (lox < 0) lox = 0; + if (hix > ww2) hix = ww2; + + loy = py3; + hiy = py3 + hh3; + if (loy < 0) loy = 0; + if (hiy > hh2) hiy = hh2; + + for (py2 = loy; py2 < hiy; py2++) // loop output y-pixels + { + pyl = py1L[py2]; // corresp. 1st input y-pixel + + for (px2 = lox; px2 < hix; px2++) // loop output x-pixels + { + pxl = px1L[px2]; // corresp. 1st input x-pixel + + red = green = blue = 0; // initz. output pixel + + for (py1 = pyl, pym = 0; ; py1++, pym++) // loop overlapping input y-pixels + { + ii = py2 * maxmapy + pym; // get y-overlap + fy = pymap[ii]; + if (fy < 0) break; // no more pixels + + for (px1 = pxl, pxm = 0; ; px1++, pxm++) // loop overlapping input x-pixels + { + ii = px2 * maxmapx + pxm; // get x-overlap + fx = pxmap[ii]; + if (fx < 0) break; // no more pixels + + ftot = fx * fy; // area overlap = x * y overlap + pixel1 = bmp1 + py1 * rs1 + px1 * 3; + red += pixel1[0] * ftot; // add input pixel * overlap + green += pixel1[1] * ftot; + blue += pixel1[2] * ftot; + } + + pixel2 = bmp2 + py2 * rs2 + px2 * 3; // save output pixel + pixel2[0] = red; // 0.0 - 255.996 >> 0 - 255 + pixel2[1] = green; + pixel2[2] = blue; + } + } + } + + return; +} + + + diff -Nru fotoxx-14.03/fotoxx-14.04.spec fotoxx-14.04/fotoxx-14.04.spec --- fotoxx-14.03/fotoxx-14.04.spec 1970-01-01 00:00:00.000000000 +0000 +++ fotoxx-14.04/fotoxx-14.04.spec 2014-04-01 06:09:32.000000000 +0000 @@ -0,0 +1,44 @@ +# RPM spec file for fotoxx +# dcraw, exiftool, xdg-open: needed for execution but not for build. + +Name: fotoxx +Version: 14.04 +Release: 1 +Summary: Edit photos and manage a large collection +Vendor: kornelix +Packager: kornelix@posteo.de +License: GPL3 +Group: graphics +Source: %{name}-%{version}.tar.gz +URL: http://kornelix.com + +%description +Edit photos and manage a large collection. +Includes thumbnail browser/navigator, RAW file import, +a comprehensive set of edit functions working in deep color, +rapid visual feedback, edit/copy/paste selected image areas, +file versioning, batch operations, named collections (views), +HDR, stack and panorama composites, metadata edit and report, +search and display using metadata and directory/file names. + +%prep +%setup -q + +%build +make + +%install +make install PREFIX=$RPM_BUILD_ROOT/usr + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root) +/usr/bin/%{name} +/usr/share/%{name} +/usr/share/doc/%{name} +/usr/share/applications/%{name}.desktop +/usr/share/man/man1/%{name}.1.gz + + diff -Nru fotoxx-14.03/fotoxx.h fotoxx-14.04/fotoxx.h --- fotoxx-14.03/fotoxx.h 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/fotoxx.h 2014-04-01 06:09:32.000000000 +0000 @@ -29,7 +29,7 @@ // Fotoxx definitions -#define Frelease "Fotoxx 14.03" // Fotoxx release version +#define Frelease "Fotoxx 14.04" // Fotoxx release version #define Flicense "Free software - GNU General Public License v.3" #define Fhomepage "http://kornelix.com/fotoxx" #define Fsoftware "Software used: GNU, GTK, libtiff, libpng, liblcms, dcraw, ufraw, exiftool" @@ -40,7 +40,7 @@ // Nikolay declined #define mega (1024 * 1024) // 1 million as 2**20 #define desktoptrash "Desktop/fotoxx-trash" // alternate trash folder location -#define pi 3.141592654 +#define PI 3.141592654 #define PXMpix(PXM,px,py) (PXM->pixels+((py)*(PXM->ww)+(px))*3) // get PXM pixel[3] at (px,py) (float[3]) #define PXBpix(PXB,px,py) (PXB->pixels+((py)*(PXB->rs)+(px)*3)) // get PXB pixel[3] at (px,py) (uint8[3]) #define pixbright(pix) (0.25*(pix)[0]+0.65*(pix)[1]+0.10*(pix)[2]) // pixel brightness, 0-255.0 @@ -56,8 +56,8 @@ #define thumbfilesize 256 // thumbnail image file size #define maxtopdirks 100 // max. no. of top image directories #define maxrecentfiles 100 // max. no. of recent files -#define search_index_max 2000 // max. image files per search index file -#define indexrecl 2000 // max. search index rec. (>maxfcc >tagFcc) +#define image_index_max 2000 // max. image files per image index file +#define indexrecl 2000 // max. image index rec. (>maxfcc >tagFcc) #define maximages 500000 // max. image files supported #define maxgeotags 20000 // max. location/geotag records v.14.02 #define maxtagcats 200 // max tag categories @@ -138,7 +138,7 @@ } EX GtkWidget *mWin, *tabWin; // main and tabbed window -EX GtkWidget *fVbox, *fMenu, *fTbar, *fDwin, *fSbar; // tab F: menu, tbar, draw.win, stbar +EX GtkWidget *fVbox, *fDwin, *fSbar; // tab F: menu vbox, draw window, status bar EX GtkWidget *fVMenu; // tab F: vertical menu and toolbar EX GtkWidget *gVbox, *gHbox, *gTop, *gPath; // tab G: navigation widgets EX GtkWidget *gTbar, *gSwin, *gDwin; // tab G: toolbar, scroll win, draw win @@ -176,7 +176,6 @@ // user settings -EX char *menu_style; // menu style: classic or vertical EX char *tbar_style; // toolbar style: icons/text/both EX char *interpolation; // image interpolation method EX char *startdisplay; // display: recent/prev/blank/file/dirk @@ -191,6 +190,7 @@ EX char *Prelease; // prior fotoxx version EX char *Nrelease; // notified release EX int Ffirsttime; // first time startup +EX int usagecounter; // continuously counts fotoxx startups EX int mwgeom[4]; // main window position and size EX char PIDstring[12]; // process PID as string EX int Nwt; // working threads to use @@ -229,7 +229,12 @@ EX int Ffullscreen; // flag, window is fullscreen EX int Frefresh; // full image refresh needed EX int Fblowup; // zoom small images to window size -EX int Fslideshow; // slide show mode is active +EX int Fslideshow; // flag, slide show is active +EX int ss_escape; // KB escape or F11 >> slide show process +EX int ss_Larrow; // KB left arrow >> slide show process +EX int ss_Rarrow; // KB right arrow >> slide show process +EX int ss_spacebar; // KB space bar >> slide show process +EX int ss_Bkey; // KB B-key >> slide show process EX int Frecent; // start with recent files gallery EX int Fnew; // start with newly added files gallery EX int Fprev; // start with previous file @@ -257,7 +262,8 @@ EX int curr_file_count; // count of images in current set EX char *clicked_file; // image file / thumbnail clicked EX int clicked_posn; // clicked gallery position (Nth) -EX int clicked_width; // clicked position in thumbnail width, 0-100 +EX int clicked_width; // clicked thumbnail position +EX int clicked_height; // normalized 0-100 v.14.04 EX char *rawfile; // RAW file passed to ufraw program EX char *imagefiletypes; // supported image file types, .jpg .png etc. @@ -269,7 +275,7 @@ // files and directories in /.../.fotoxx/ -EX char index_dirk[200]; // search index directory +EX char index_dirk[200]; // image index directory EX char tags_defined_file[200]; // tags defined file EX char recentfiles_file[200]; // file of recent image files EX char newfiles_file[200]; // file of newest image files @@ -279,16 +285,17 @@ EX char saved_curves_dirk[200]; // directory for saved curve data EX char writetext_dirk[200]; // directory for write_text files EX char geotags_dirk[200]; // directory for geotags data files +EX char worldmap_file[200]; // world map image file v.14.04 EX char favorites_dirk[200]; // directory for favorites menu EX char locales_dirk[200]; // directory for .po files v.13.02 EX char mashup_dirk[200]; // directory for mashup projects v.13.09 EX char KBshortcuts[200]; // keyboard shortcuts file EX char quickstart_file[200]; // quick start image file v.13.05 EX char latest_release_file[200]; // latest fotoxx release file v.13.05 -EX char slideshow_tone[200]; // slide show pause tone file v.13.11 -EX char slideshow_prefs[200]; // slide show preferences file v.14.01 -EX char thumb_mosaics_dirk[200]; // directory for thumb mosaic files v.14.03 -EX cchar *fotoxx_install_counter; // web page for install counter v.14.03 +EX char slideshow_dirk[200]; // directory for slide show files v.14.04 +EX char pattern_dirk[200]; // directory for pattern files v.14.04 +EX cchar *fotoxx_installs; // web page for install counter v.14.04 +EX cchar *fotoxx_upgrades; // web page for upgrade counter v.14.04 // fotoxx PXM and PXB pixmaps @@ -464,7 +471,7 @@ EX int currgrid; // current grid params set, 0-5 EX int gridsettings[6][10]; // settings for 6 sets of grid lines -// search index file record. +// image index file record. // tags, comms, capt, gtags may have "null" (char) as a value. struct sxrec_t { @@ -532,7 +539,7 @@ // dialogs with global visibility -EX zdialog *zdhistogram; // image histogram zdialog +EX zdialog *zdbrdist; // brightness distribution zdialog EX zdialog *zddarkbrite; // highlight dark/bright pixels zdialog EX zdialog *zdeditmeta; // edit metadata zdialog EX zdialog *zdbatchtags; // batch tags dialog @@ -547,6 +554,7 @@ EX zdialog *zdsela; // select area zdialog EX zdialog *zd_gallery_getfiles; // gallery_getfiles zdialog EX zdialog *zd_edit_bookmarks; // bookmarks edit zdialog +EX zdialog *zd_ss_imageprefs; // slide show image prefs zdialog v.14.04 // method for running thread to send an event to an active zdialog @@ -562,12 +570,6 @@ EX int jpeg_def_quality; // default jpeg save quality (user setting) EX int jpeg_1x_quality; // file save 1-time quality setting -EX char *ss_collname; // slide show collection name -EX int ss_latest; // flag, show only latest version files -EX char *ss_plcollname; // pause list collection name -EX int ss_interval; // slide show interval -EX char *ss_musicfile; // music file or playlist - EX float lens_mm, lens_bow; // pano lens mm and bow settings // GTK functions (fotoxx main) @@ -642,9 +644,9 @@ void load_undo(); // undo/redo load function int checkpend(cchar *list); // check if anything busy or pending v.13.12 -typedef void CBfunc(); // callback function type -EX CBfunc *mouseCBfunc; // current edit mouse function -void takeMouse(CBfunc func, GdkCursor *); // capture mouse for edit dialog +typedef void mcbFunc(); // callback function type +EX mcbFunc *mouseCBfunc; // current edit mouse function +void takeMouse(mcbFunc func, GdkCursor *); // capture mouse for edit dialog void freeMouse(); // free mouse for main window // thread support functions (fotoxx main) @@ -780,7 +782,7 @@ // tools menu functions (f.tools.cc) void m_fg_color(GtkWidget *, cchar *); // set FG color (gridlines, areas ...) -void m_index(GtkWidget *, cchar *); // rebuild search index and thumbnails +void m_index(GtkWidget *, cchar *); // rebuild image index and thumbnails void index_rebuild(int menu); // index rebuild function void m_settings(GtkWidget *, cchar *); // user settings void m_edit_bookmarks(GtkWidget *, cchar *); // edit bookmarks @@ -795,11 +797,13 @@ void coll_popup_pastecache(GtkWidget *, cchar *); // paste image cache to collection position void m_move_coll(GtkWidget *, cchar *); // change top directory of a collection void m_slideshow(GtkWidget *, cchar *); // enter or leave slideshow mode +void slideshow_Lclick_func(int Nth); // slideshow thumbnail click function void slideshow_next(cchar *); // show prev/next image void m_batch_convert(GtkWidget *, cchar *); // rename/convert/resize/export image files void m_batch_conv_raw(GtkWidget *, cchar *); // convert RAW files to tiff -void m_histogram(GtkWidget *, cchar *); // start brightness histogram -void draw_brightscale(GtkWidget *drawarea, cairo_t *cr, int); // draw a black to white stripe = scale 0-255 +void m_brdist(GtkWidget *, cchar *); // start brightness histogram +void brdist_drawgraph(GtkWidget *drawin, cairo_t *cr, int *); // draw brightness distribution graph +void brdist_drawscale(GtkWidget *drawarea, cairo_t *cr, int *); // draw brightness scale, black to white stripe void m_gridlines(GtkWidget *, cchar *); // grid lines setup dialog void toggle_grid(int action); // set grid off/on or toggle (0/1/2) void choose_grid(int grid); // choose current grid settings @@ -821,8 +825,8 @@ void manage_tags(); // manage tags dialog function void load_filemeta(cchar *file); // EXIF/IPTC >> tags_* in memory void save_filemeta(cchar *file); // tags_* in memory >> EXIF/IPTC -void update_search_index(cchar *file); // update search index file -void delete_search_index(cchar *file); // delete entry from search index file +void update_image_index(cchar *file); // update image index file +void delete_image_index(cchar *file); // delete entry from image index file void m_batchTags(GtkWidget *, cchar *); // add/remove tags in multiple image files void m_meta_view_short(GtkWidget *, cchar *); // view selected EXIF/IPTC data void m_meta_view_long(GtkWidget *, cchar *); // view all EXIF/IPTC data @@ -832,8 +836,8 @@ void m_meta_delete(GtkWidget *, cchar *); // delete EXIF/IPTC data void m_captions(GtkWidget *, cchar *); // show caption/comments at the top v.13.12 -int init_geotags(); // set up world map and geolocations -void m_download_geolocs(GtkWidget *, cchar *); // download world map and geolocations +int init_geotags(); // initz. geolocations and world map +void m_download_geolocs(GtkWidget *, cchar *); // download world map and geolocations files void m_worldmap_test(GtkWidget *, cchar *); // test world map coordinate conversions void m_edit_geotags(GtkWidget *, cchar *); // edit geotags in image file EXIF void m_batch_add_geotags(GtkWidget *, cchar *menu); // batch add geotags @@ -848,11 +852,11 @@ void tag_exifdate(cchar *tagdate, char *exifdate); // yyyymmddhhmmss to yyyy:mm:dd:hh:mm:ss char ** exiftool_server(char **inputs); // run exiftool as a server process -int read_sxrec_seq(sxrec_t &sxrec, int &ftf); // read search index recs. 1-last -int write_sxrec_seq(sxrec_t *sxrec, int &ftf); // write search index recs. 1-last -int get_sxrec(sxrec_t &sxrec, cchar *file); // get search index rec. v.13.01 +int read_sxrec_seq(sxrec_t &sxrec, int &ftf); // read image index recs. 1-last +int write_sxrec_seq(sxrec_t *sxrec, int &ftf); // write image index recs. 1-last +int get_sxrec(sxrec_t &sxrec, cchar *file); // get image index rec. v.13.01 int get_sxrec_min(cchar *file, char *fdate, char *pdate, char *size); // " min. for gallery paint v.13.02 -int put_sxrec(sxrec_t *sxrec, cchar *file); // add/update search index rec. +int put_sxrec(sxrec_t *sxrec, cchar *file); // add/update image index rec. int image_fcomp(cchar *file1, cchar *file2); // file name compare in image index sequence // select area menu functions (f.area.cc) @@ -919,6 +923,7 @@ void m_brightdist(GtkWidget *, cchar *); // adjust brightness distribution void m_brightramp(GtkWidget *, cchar *); // ramp brightness across image void m_paint_edits(GtkWidget *, cchar *); // select and edit in parallel +void m_lever_edits(GtkWidget *, cchar *); // leverage edits by pixel bright/color // image edit functions - Repair menu (f.repair.cc) @@ -1004,7 +1009,7 @@ #define Bcut ZTX("Cut") #define Bdelete ZTX("Delete") #define Bdisable ZTX("Disable") -#define Bdist ZTX("Bdist") +#define Bdist ZTX("Dist") #define Bdone ZTX("Done") #define Bedge ZTX("edge") #define Bedit ZTX("Edit") @@ -1057,6 +1062,7 @@ #define Bsave ZTX("Save") #define Bsavetoedit ZTX("Unknown file type, save as tiff/jpeg/png to edit") #define Bsearch ZTX("Search") +#define Bseconds ZTX("Seconds") #define Bselect ZTX("Select") #define Bselectfiles ZTX("Select Files") #define Bshow ZTX("Show") @@ -1080,3 +1086,4 @@ #define Byoffset ZTX("y-offset") #define Byes ZTX("Yes") + diff -Nru fotoxx-14.03/f.retouch.cc fotoxx-14.04/f.retouch.cc --- fotoxx-14.03/f.retouch.cc 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/f.retouch.cc 2014-04-01 06:09:32.000000000 +0000 @@ -206,7 +206,11 @@ float areaemph; // emphasis input, -1 ... +1 = bright areas float emphcurve[256]; // emphasis per brightness level, 0 ... 1 int Fapply = 0; // flag, apply dialog controls to image + int Fdist = 0; // flag, show brightness distribution + float amplify = 1.0; // curve amplifier, 0 ... 2 char combo_curves[200] = ""; // previous curves save file + GtkWidget *drawwin_dist, *drawwin_scale; // brightness distribution graph widgets + int RGBW[4] = { 0, 0, 0, 0 }; // " colors: red/green/blue/white (all) } void blackbodyRGB(int K, float &R, float &G, float &B); @@ -222,8 +226,6 @@ void combo_curvedit(int spc); void * combo_thread(void *); - GtkWidget *drawareaB, *frameB; - F1_help_topic = "retouch_combo"; if (! *combo_curves) // initz. previous curves save file @@ -244,43 +246,41 @@ | | | | // 5 curves are maintained: | | | | // curve 0: current display curve | | | | // 1: curve for all colors - | | brightness curve area | | // 2,3,4: red, green, blue + | | curve edit area | | // 2,3,4: red, green, blue | | | | | | | | | |_________________________________________________| | | |_________________________________________________| | // brightness scale: black to white stripe | (o) all (o) red (o) green (o) blue | // select curve to display - | Brightness ================[]============= High | // brightness - | Contrast ================[]============= High | // contrast - | Low Color ====================[]========= High | // color saturation - | Warmer ====================[]========= Cooler | // color temperature - | Dark Areas ==========[]=================== Bright | // color emphasis - | [x] Click for white balance or black level | - | | // click gray/white spot for white balance - | [Bdist] [Reset] [Prev] [Done] [Cancel] | + | | + | Amplifier ================[]============= Max. | // curve amplifier + | Brightness ================[]============= High | // brightness + | Contrast ================[]============= High | // contrast + | Low Color ====================[]========= High | // color saturation + | Warmer ====================[]========= Cooler | // color temperature + | Dark Areas ==========[]=================== Bright | // color emphasis + | | + | [x] Brightness Distribution | + | [x] Click for white balance or black level | // click gray/white spot for white balance + | | + | [Reset] [Prev] [Done] [Cancel] | |_____________________________________________________| ***/ - EFcombo.zd = zdialog_new(ZTX("Retouch Combo"),mWin,Bdist,Breset,Bprev,Bdone,Bcancel,null); + EFcombo.zd = zdialog_new(ZTX("Retouch Combo"),mWin,Breset,Bprev,Bdone,Bcancel,null); zdialog *zd = EFcombo.zd; - zdialog_add_widget(zd,"frame","frame","dialog",0,"expand"); // curve drawing area - + zdialog_add_widget(zd,"frame","frameH","dialog",0,"expand"); // edit-curve and distribution graph zdialog_add_widget(zd,"frame","frameB","dialog"); // black to white brightness scale - frameB = zdialog_widget(zd,"frameB"); - drawareaB = gtk_drawing_area_new(); - gtk_container_add(GTK_CONTAINER(frameB),drawareaB); - gtk_widget_set_size_request(drawareaB,300,12); - G_SIGNAL(drawareaB,"draw",draw_brightscale,0); - zdialog_add_widget(zd,"hbox","hbrgb","dialog",0,"space=3"); + zdialog_add_widget(zd,"hbox","hbrgb","dialog"); zdialog_add_widget(zd,"radio","all","hbrgb",Ball,"space=5"); zdialog_add_widget(zd,"radio","red","hbrgb",Bred,"space=3"); zdialog_add_widget(zd,"radio","green","hbrgb",Bgreen,"space=3"); zdialog_add_widget(zd,"radio","blue","hbrgb",Bblue,"space=3"); - zdialog_add_widget(zd,"hbox","hbcolor","dialog"); + zdialog_add_widget(zd,"hbox","hbcolor","dialog",0,"space=3"); zdialog_add_widget(zd,"label","space","hbcolor",0,"space=5"); zdialog_add_widget(zd,"vbox","vbcolor1","hbcolor",0,"homog"); zdialog_add_widget(zd,"label","space","hbcolor",0,"space=3"); @@ -289,29 +289,35 @@ zdialog_add_widget(zd,"vbox","vbcolor3","hbcolor",0,"homog"); zdialog_add_widget(zd,"label","space","hbcolor",0,"space=5"); + zdialog_add_widget(zd,"label","labamp","vbcolor1",ZTX("Amplifier")); zdialog_add_widget(zd,"label","labrite","vbcolor1",ZTX("Brightness")); zdialog_add_widget(zd,"label","labcont","vbcolor1",ZTX("Contrast")); zdialog_add_widget(zd,"label","labsat1","vbcolor1",ZTX("Low Color")); zdialog_add_widget(zd,"label","labtemp1","vbcolor1",ZTX("Warmer")); zdialog_add_widget(zd,"label","labarea1","vbcolor1",ZTX("Dark Areas")); + zdialog_add_widget(zd,"hscale","amplify","vbcolor2","0.0|2.0|0.01|1.0"); zdialog_add_widget(zd,"hscale","brightness","vbcolor2","-1.0|1.0|0.002|0"); zdialog_add_widget(zd,"hscale","contrast","vbcolor2","-1.0|1.0|0.002|0"); zdialog_add_widget(zd,"hscale","satlevel","vbcolor2","-1.0|1.0|0.002|0"); - zdialog_add_widget(zd,"hscale","wbtemp","vbcolor2","1000|9999|1|5000"); + zdialog_add_widget(zd,"hscale","wbtemp","vbcolor2","1000|9000|1|5000"); zdialog_add_widget(zd,"hscale","areaemph","vbcolor2","0|1.0|0.002|0.5"); + zdialog_add_widget(zd,"label","labrite2","vbcolor3",ZTX("Max.")); zdialog_add_widget(zd,"label","labrite2","vbcolor3",ZTX("High")); zdialog_add_widget(zd,"label","labcont2","vbcolor3",ZTX("High")); zdialog_add_widget(zd,"label","labsat2","vbcolor3",ZTX("High")); zdialog_add_widget(zd,"label","labtemp2","vbcolor3",ZTX("Cooler")); zdialog_add_widget(zd,"label","labarea2","vbcolor3",ZTX("Bright")); - zdialog_add_widget(zd,"hbox","hbclick","dialog",0,"space=3"); + zdialog_add_widget(zd,"hbox","hbdist","dialog"); + zdialog_add_widget(zd,"check","dist","hbdist",ZTX("Brightness Distribution"),"space=3"); + + zdialog_add_widget(zd,"hbox","hbclick","dialog"); zdialog_add_widget(zd,"check","click","hbclick",ZTX("Click for white balance or black level"),"space=3"); - GtkWidget *frame = zdialog_widget(zd,"frame"); - spldat *sd = splcurve_init(frame,combo_curvedit); + GtkWidget *frameH = zdialog_widget(zd,"frameH"); // setup edit curves + spldat *sd = splcurve_init(frameH,combo_curvedit); EFcombo.curves = sd; sd->Nscale = 1; // diagonal fixed line, neutral curve @@ -336,6 +342,15 @@ combo_spc = 1; // current active curve: 1 (all) zdialog_stuff(zd,"all",1); // stuff default selection, all + drawwin_dist = sd->drawarea; // setup brightness distr. drawing area + G_SIGNAL(drawwin_dist,"draw",brdist_drawgraph,RGBW); + + GtkWidget *frameB = zdialog_widget(zd,"frameB"); // setup brightness scale drawing area + drawwin_scale = gtk_drawing_area_new(); + gtk_container_add(GTK_CONTAINER(frameB),drawwin_scale); + gtk_widget_set_size_request(drawwin_scale,300,12); + G_SIGNAL(drawwin_scale,"draw",brdist_drawscale,0); + brightness = 0; // neutral brightness v.14.02 contrast = 0; // neutral contrast v.14.02 @@ -352,7 +367,7 @@ zdialog_stuff(zd,"click",0); // reset mouse click status - zdialog_resize(zd,0,350); + zdialog_resize(zd,300,400); zdialog_run(zd,combo_dialog_event,"save"); // run dialog - parallel return; @@ -374,18 +389,14 @@ int ii, jj; int Fapply = 0; - if (strEqu(event,"done")) zd->zstat = 4; // apply and quit - if (strEqu(event,"enter")) zd->zstat = 4; // v.14.03 - - if (zd->zstat == 1) { // [Bdist] - zd->zstat = 0; // keep dialog active - m_histogram(0,0); // show brightness distribution - } + if (strEqu(event,"done")) zd->zstat = 3; // apply and quit + if (strEqu(event,"enter")) zd->zstat = 3; // v.14.03 - if (zd->zstat == 2) // [reset] + if (zd->zstat == 1) // [reset] { zd->zstat = 0; // keep dialog active - + + zdialog_stuff(zd,"amplify",1); // neutral amplifier v.14.04 zdialog_stuff(zd,"brightness",0); // neutral brightness v.14.02 zdialog_stuff(zd,"contrast",0); // neutral contrast v.14.02 brightness = contrast = 0; @@ -418,13 +429,11 @@ combo_spc = 1; // current active curve: 1 (all) zdialog_stuff(zd,"all",1); - gtk_widget_queue_draw(sd->drawarea); // draw curve - edit_reset(); // restore initial image - return 1; + event = "update"; // trigger graph update v.14.04 } - if (zd->zstat == 3) // [prev] restore previous settings + if (zd->zstat == 2) // [prev] restore previous settings { zd->zstat = 0; // keep dialog active zdialog_restore_inputs(zd); // restore previous inputs @@ -434,14 +443,13 @@ sd->Nspc = 1; // only one curve active for (int ii = 0; ii < 5; ii++) splcurve_generate(sd,ii); // v.14.02 - Fapply = 1; + Fapply = 1; // trigger apply event } if (zd->zstat) // [done] or [cancel] { - m_histogram(0,"kill"); freeMouse(); - if (zd->zstat == 4) { // [done] + if (zd->zstat == 3) { // [done] sd->Nspc = 5; // include all 5 curves splcurve_save(sd,combo_curves); // save curves for next time edit_done(0); // saves zdialog inputs @@ -449,16 +457,28 @@ else edit_cancel(0); // [cancel] or [x] return 1; } + + if (strEqu(event,"click")) { // toggle mouse click input + zdialog_fetch(zd,"click",ii); + if (ii) takeMouse(combo_mousefunc,dragcursor); // on: connect mouse function + else freeMouse(); // off: free mouse + return 1; + } + + if (strEqu(event,"dist")) { // distribution checkbox + zdialog_fetch(zd,"dist",Fdist); + event = "update"; // trigger graph update v.14.04 + } if (strstr("all red green blue",event)) // new choice of curve { zdialog_fetch(zd,event,ii); - if (! ii) return 0; // ignore button OFF events + if (! ii) return 0; // button OFF event, wait for ON event ii = strcmpv(event,"all","red","green","blue",null); - combo_spc = ii; // 1, 2, 3, 4 + combo_spc = ii; // active curve: 1, 2, 3, 4 - sd->nap[0] = sd->nap[ii]; // copy active curve ii to curve 0 + sd->nap[0] = sd->nap[ii]; // copy active curve nodes to curve 0 for (jj = 0; jj < sd->nap[0]; jj++) { sd->apx[0][jj] = sd->apx[ii][jj]; sd->apy[0][jj] = sd->apy[ii][jj]; @@ -470,19 +490,6 @@ sd->yval[ii][jj] = sd->yval[0][jj]; gtk_widget_queue_draw(sd->drawarea); // draw curve - - if (combo_spc == 1) { // "all" curve (1) was selected - for (ii = 2; ii < 5; ii++) { // fix R/G/B curves (2-4) to match - sd->nap[ii] = sd->nap[1]; - for (jj = 0; jj < sd->nap[1]; jj++) { - sd->apx[ii][jj] = sd->apx[1][jj]; - sd->apy[ii][jj] = sd->apy[1][jj]; - } - - for (jj = 0; jj < 1000; jj++) - sd->yval[ii][jj] = sd->yval[1][jj]; - } - } } if (strEqu(event,"brightness")) // brightness slider, 0 ... 1 v.14.02 @@ -490,27 +497,62 @@ bright0 = brightness; zdialog_fetch(zd,"brightness",brightness); dbrite = brightness - bright0; - - for (int ii = 0; ii < 5; ii++) // loop brightness curves 0-4 + + if (combo_spc > 1) // curve R/G/B active { - for (int jj = 0; jj < sd->nap[ii]; jj++) + ii = combo_spc; + sd->nap[0] = sd->nap[ii]; // copy active curve nodes to curve 0 + for (jj = 0; jj < sd->nap[0]; jj++) { + sd->apx[0][jj] = sd->apx[ii][jj]; + sd->apy[0][jj] = sd->apy[ii][jj]; + } + + for (jj = 0; jj < sd->nap[0]; jj++) // update curve 0 nodes { - dx = sd->apx[ii][jj]; // 0 ... 0.5 ... 1 + dx = sd->apx[0][jj]; // 0 ... 0.5 ... 1 if (dx <= 0.01 || dx >= 0.99) continue; dx = 0.5 - fabsf(dx - 0.5); // 0 ... 0.5 ... 0 dx = 0.5 * sqrtf(dx); // 0 ... 0.35 ... 0 (more rounded shape) dy = dx * dbrite; - dy += sd->apy[ii][jj]; + dy += sd->apy[0][jj]; if (dy < 0) dy = 0; if (dy > 1) dy = 1; - sd->apy[ii][jj] = dy; + sd->apy[0][jj] = dy; } - splcurve_generate(sd,ii); + + splcurve_generate(sd,0); // regenerate curve 0 + + for (jj = 0; jj < sd->nap[0]; jj++) { // copy curve nodes back + sd->apx[ii][jj] = sd->apx[0][jj]; + sd->apy[ii][jj] = sd->apy[0][jj]; + } + + for (jj = 0; jj < 1000; jj++) // copy curve values back + sd->yval[ii][jj] = sd->yval[0][jj]; } - combo_spc = 1; // current active curve: 1 (all) - zdialog_stuff(zd,"all",1); - gtk_widget_queue_draw(sd->drawarea); // draw curve + if (combo_spc == 1) // curve "all" active + { + for (int ii = 0; ii < 5; ii++) // loop curves 0-4 + { + for (int jj = 0; jj < sd->nap[ii]; jj++) // update nodes + { + dx = sd->apx[ii][jj]; // 0 ... 0.5 ... 1 + if (dx <= 0.01 || dx >= 0.99) continue; + dx = 0.5 - fabsf(dx - 0.5); // 0 ... 0.5 ... 0 + dx = 0.5 * sqrtf(dx); // 0 ... 0.35 ... 0 (more rounded shape) + dy = dx * dbrite; + dy += sd->apy[ii][jj]; + if (dy < 0) dy = 0; + if (dy > 1) dy = 1; + sd->apy[ii][jj] = dy; + } + + splcurve_generate(sd,ii); // generate curve + } + } + + gtk_widget_queue_draw(sd->drawarea); // draw curve 0 } if (strEqu(event,"contrast")) // contrast slider, 0 ... 1 v.14.02 @@ -519,43 +561,82 @@ zdialog_fetch(zd,"contrast",contrast); dcont = contrast - cont0; - for (int ii = 0; ii < 5; ii++) // loop brightness curves 0-4 + if (combo_spc > 1) // curve R/G/B active { - for (int jj = 0; jj < sd->nap[ii]; jj++) + ii = combo_spc; + sd->nap[0] = sd->nap[ii]; // copy active curve nodes to curve 0 + for (jj = 0; jj < sd->nap[0]; jj++) { + sd->apx[0][jj] = sd->apx[ii][jj]; + sd->apy[0][jj] = sd->apy[ii][jj]; + } + + for (jj = 0; jj < sd->nap[0]; jj++) // update curve 0 nodes { - dx = sd->apx[ii][jj]; // 0 ... 0.5 ... 1 + dx = sd->apx[0][jj]; // 0 ... 0.5 ... 1 if (dx <= 0.01 || dx >= 0.99) continue; - if (dx < 0.5) - dx = -0.25 + fabsf(dx - 0.25); // 0 ... -0.25 ... 0 - else - dx = +0.25 - fabsf(dx - 0.75); // 0 ... +0.25 ... 0 + if (dx < 0.5) dx = -0.25 + fabsf(dx - 0.25); // 0 ... -0.25 ... 0 + else dx = +0.25 - fabsf(dx - 0.75); // 0 ... +0.25 ... 0 dy = dx * dcont; - dy += sd->apy[ii][jj]; + dy += sd->apy[0][jj]; if (dy < 0) dy = 0; if (dy > 1) dy = 1; - sd->apy[ii][jj] = dy; + sd->apy[0][jj] = dy; } - splcurve_generate(sd,ii); + + splcurve_generate(sd,0); // regenerate curve 0 + + for (jj = 0; jj < sd->nap[0]; jj++) { // copy curve nodes back + sd->apx[ii][jj] = sd->apx[0][jj]; + sd->apy[ii][jj] = sd->apy[0][jj]; + } + + for (jj = 0; jj < 1000; jj++) // copy curve values back + sd->yval[ii][jj] = sd->yval[0][jj]; } - combo_spc = 1; // current active curve: 1 (all) - zdialog_stuff(zd,"all",1); - gtk_widget_queue_draw(sd->drawarea); // draw curve + if (combo_spc == 1) // curve "all" active + { + for (ii = 0; ii < 5; ii++) // loop curves 0-4 + { + for (jj = 0; jj < sd->nap[ii]; jj++) // update nodes + { + dx = sd->apx[ii][jj]; // 0 ... 0.5 ... 1 + if (dx <= 0.01 || dx >= 0.99) continue; + if (dx < 0.5) dx = -0.25 + fabsf(dx - 0.25); // 0 ... -0.25 ... 0 + else dx = +0.25 - fabsf(dx - 0.75); // 0 ... +0.25 ... 0 + dy = dx * dcont; + dy += sd->apy[ii][jj]; + if (dy < 0) dy = 0; + if (dy > 1) dy = 1; + sd->apy[ii][jj] = dy; + } + + splcurve_generate(sd,ii); // generate curve + } + } + + gtk_widget_queue_draw(sd->drawarea); // draw curve 0 } - if (strEqu(event,"click")) { // toggle mouse click input - zdialog_fetch(zd,"click",ii); - if (ii) takeMouse(combo_mousefunc,dragcursor); // on: connect mouse function - else freeMouse(); // off: free mouse + if (Fdist) { // distribution enabled + zdialog_fetch(zd,"red",RGBW[0]); // get graph color choice + zdialog_fetch(zd,"green",RGBW[1]); + zdialog_fetch(zd,"blue",RGBW[2]); + zdialog_fetch(zd,"all",RGBW[3]); + if (RGBW[3]) RGBW[0] = RGBW[1] = RGBW[2] = 1; + RGBW[3] = 0; } + else RGBW[0] = RGBW[1] = RGBW[2] = RGBW[3] = 0; - if (strEqu(event,"blendwidth")) signal_thread(); // adjust area edge blending + if (strEqu(event,"update")) // thread done or new color choice + gtk_widget_queue_draw(drawwin_dist); // update distribution graph - if (strstr("brightness contrast satlevel areaemph wbtemp",event)) // dialog control changed - Fapply = 1; - - if (! Fapply) return 1; + if (strEqu(event,"blendwidth")) Fapply = 1; // trigger apply event + if (strstr("amplify brightness contrast",event)) Fapply = 1; + if (strstr("satlevel areaemph wbtemp",event)) Fapply = 1; + if (! Fapply) return 1; // wait for change + zdialog_fetch(zd,"amplify",amplify); // get curve amplifier setting zdialog_fetch(zd,"brightness",brightness); // get brightness setting zdialog_fetch(zd,"contrast",contrast); // get contrast setting zdialog_fetch(zd,"satlevel",satlevel); // get saturation setting @@ -736,6 +817,11 @@ mwpaint2(); // update window CEF->Fmods++; // image3 modified CEF->Fsaved = 0; + + if (CEF) { + zd_thread = CEF->zd; // signal dialog to update graph v.14.04 + zd_thread_event = "update"; + } } return 0; // not executed, stop g++ warning @@ -753,7 +839,7 @@ float red3, green3, blue3; float pixbrite, F1, F2; float coeff = 1000.0 / 256.0; - float dold, dnew; + float dold, dnew, ff; spldat *sd = EFcombo.curves; for (py = index; py < E3pxm->hh; py += Nwt) // loop all pixels @@ -815,12 +901,36 @@ // apply brightness shift - ii = coeff * red3; // range 0-999 for curve index - red3 = 255.9 * sd->yval[2][ii]; // output RGB brightness, 0-255.9 - ii = coeff * green3; - green3 = 255.9 * sd->yval[3][ii]; - ii = coeff * blue3; - blue3 = 255.9 * sd->yval[4][ii]; + if (amplify == 1.0) // amplifier is neutral + { + ii = coeff * red3; // range 0-999 for curve index + red3 = 255.9 * sd->yval[2][ii]; // output RGB brightness, 0-255.9 + ii = coeff * green3; + green3 = 255.9 * sd->yval[3][ii]; + ii = coeff * blue3; + blue3 = 255.9 * sd->yval[4][ii]; + } + + else // amplifier range is 0 ... 2 + { // amplify (curve value - neutral value) + ii = coeff * red3; // v.14.04 + ff = 0.001 * ii; + ff = ff + amplify * (sd->yval[2][ii] - ff); + if (ff < 0) ff = 0; + red3 = 255.9 * ff; + + ii = coeff * green3; + ff = 0.001 * ii; + ff = ff + amplify * (sd->yval[3][ii] - ff); + if (ff < 0) ff = 0; + green3 = 255.9 * ff; + + ii = coeff * blue3; + ff = 0.001 * ii; + ff = ff + amplify * (sd->yval[4][ii] - ff); + if (ff < 0) ff = 0; + blue3 = 255.9 * ff; + } maxrgb = red3; // stop overflows if (green3 > maxrgb) maxrgb = green3; @@ -856,7 +966,7 @@ // Return relative RGB illumination values for a light source // having a given input temperature of 1000-10000 deg. K -// 5000 K is neutral: all factors = 1.0 +// 5000 K is neutral: all returned factors = 1.0 void blackbodyRGB(int K, float &R, float &G, float &B) { @@ -1357,7 +1467,7 @@ flatten = deband = 0; // initz. parameters darken = brighten = 0; - m_histogram(0,0); // popup brightness histogram + m_brdist(0,0); // popup brightness histogram return; } @@ -1377,7 +1487,7 @@ { if (zd->zstat == 1) edit_done(0); // done else edit_cancel(0); // cancel or destroy - m_histogram(0,"kill"); + m_brdist(0,"kill"); return 1; } @@ -1412,9 +1522,6 @@ signal_thread(); } - wait_thread_idle(); - mwpaintnow(); - zmainloop(); return 1; } @@ -1488,6 +1595,8 @@ CEF->Fmods++; // image modified, not saved CEF->Fsaved = 0; } + + mwpaint2(); // v.14.04 } return 0; // not executed, stop g++ warning @@ -2224,13 +2333,13 @@ if (Mbutton == 1) // left mouse button { // increase edit power - sa_pixmap[ii] += power; + sa_pixmap[ii] += 2.0 * power; // make paint edit 2x faster v.14.04 if (sa_pixmap[ii] > sa_blend) sa_pixmap[ii] = sa_blend; } if (Mbutton == 3) // right mouse button { // weaken edit power - if (sa_pixmap[ii] <= power) sa_pixmap[ii] = 0; + if (sa_pixmap[ii] <= power) sa_pixmap[ii] = 0; // erase is half as fast as paint else sa_pixmap[ii] -= power; } } @@ -2258,5 +2367,295 @@ return; } + +/**************************************************************************/ + +// Use the image brightness or color values to leverage subsequent edits. +// Method: +// Select the whole image as an area. +// Set "edge distance" 1 to 999 from pixel brightness or RGB color. +// Set "blend width" to 999. +// Edit function coefficient = edge distance / blend width. + +spldat *leveds_curve; +int leveds_type, leveds_color; +int leveds_ptype, leveds_pcolor; +float *leveds_lever = 0; + +void m_lever_edits(GtkWidget *, cchar *) +{ + int leveds_event(zdialog *, cchar *event); // dialog event and completion func + void leveds_curve_update(int spc); // curve update callback function + + cchar *title = ZTX("Leverage Edits"); + cchar *legend = ZTX("Edit Function Amplifier"); + + F1_help_topic = "lever_edits"; + + if (zdsela) return; // dialog already active + if (! curr_file) return; // no image + if (! CEF) { // edit func must be active + zmessageACK(mWin,0,ZTX("Edit function must be active")); + return; + } + + if (CEF->Fpreview) edit_fullsize(); // use full-size image + +/*** + Edit Function Amplifier + ------------------------------------------ + | | + | | + | curve drawing area | + | | + | | + ------------------------------------------ + minimum maximum + + [+++] [---] [+ -] [- +] [+-+] [-+-] + (o) Brightness (o) Contrast + (o) All (o) Red (o) Green (o) Blue + Curve File: [ Open ] [ Save ] + [ Done ] +***/ + + zdsela = zdialog_new(title,mWin,Bdone,null); + + zdialog_add_widget(zdsela,"label","labt","dialog",legend); + zdialog_add_widget(zdsela,"frame","fr1","dialog",0,"expand"); + zdialog_add_widget(zdsela,"hbox","hba","dialog"); + zdialog_add_widget(zdsela,"label","labda","hba",ZTX("minimum"),"space=5"); + zdialog_add_widget(zdsela,"label","space","hba",0,"expand"); + zdialog_add_widget(zdsela,"label","labba","hba",ZTX("maximum"),"space=5"); + zdialog_add_widget(zdsela,"hbox","hbb","dialog",0,"space=10"); + zdialog_add_widget(zdsela,"button","b +++","hbb","+++","space=3"); + zdialog_add_widget(zdsela,"button","b ---","hbb","‒ ‒ ‒","space=3"); + zdialog_add_widget(zdsela,"button","b +-", "hbb"," + ‒ ","space=3"); + zdialog_add_widget(zdsela,"button","b -+", "hbb"," ‒ + ","space=3"); + zdialog_add_widget(zdsela,"button","b +-+","hbb","+ ‒ +","space=3"); + zdialog_add_widget(zdsela,"button","b -+-","hbb","‒ + ‒","space=3"); + + zdialog_add_widget(zdsela,"hbox","hbbr1","dialog"); + zdialog_add_widget(zdsela,"radio","bright","hbbr1",Bbrightness,"space=5"); + zdialog_add_widget(zdsela,"radio","contrast","hbbr1",Bcontrast,"space=5"); + zdialog_add_widget(zdsela,"hbox","hbbr2","dialog"); + zdialog_add_widget(zdsela,"radio","all","hbbr2",Ball,"space=5"); + zdialog_add_widget(zdsela,"radio","red","hbbr2",Bred,"space=5"); + zdialog_add_widget(zdsela,"radio","green","hbbr2",Bgreen,"space=5"); + zdialog_add_widget(zdsela,"radio","blue","hbbr2",Bblue,"space=5"); + + zdialog_add_widget(zdsela,"hbox","hbcf","dialog",0,"space=5"); + zdialog_add_widget(zdsela,"label","labcf","hbcf",Bcurvefile,"space=5"); + zdialog_add_widget(zdsela,"button","loadcurve","hbcf",Bopen,"space=5"); + zdialog_add_widget(zdsela,"button","savecurve","hbcf",Bsave,"space=5"); + + GtkWidget *frame = zdialog_widget(zdsela,"fr1"); // setup for curve editing + spldat *sd = splcurve_init(frame,leveds_curve_update); + leveds_curve = sd; + + sd->Nspc = 1; + sd->vert[0] = 0; + sd->nap[0] = 3; // initial curve anchor points + sd->apx[0][0] = 0.01; + sd->apy[0][0] = 0.5; + sd->apx[0][1] = 0.50; + sd->apy[0][1] = 0.5; + sd->apx[0][2] = 0.99; + sd->apy[0][2] = 0.5; + splcurve_generate(sd,0); // generate curve data + + zdialog_stuff(zdsela,"bright",1); // type leverage = brightness + zdialog_stuff(zdsela,"contrast",0); + zdialog_stuff(zdsela,"all",1); // color used = all + zdialog_stuff(zdsela,"red",0); + zdialog_stuff(zdsela,"green",0); + zdialog_stuff(zdsela,"blue",0); + leveds_type = 1; + leveds_color = 1; + leveds_ptype = 0; + leveds_pcolor = 0; + + sa_unselect(); // unselect current area if any + + int cc = E1pxm->ww * E1pxm->hh * sizeof(uint16); // allocate sa_pixmap[] for area + sa_pixmap = (uint16 *) malloc(cc); + + sa_minx = 0; // enclosing rectangle + sa_maxx = E1pxm->ww; + sa_miny = 0; + sa_maxy = E1pxm->hh; + + sa_Npixel = E1pxm->ww * E1pxm->hh; + sa_stat = 3; // area status = complete + sa_mode = mode_image; // area mode = whole image + sa_calced = 1; // edge calculation complete + sa_blend = 999; // "blend width" = 999 + sa_fww = E1pxm->ww; // valid image dimensions v.13.05 + sa_fhh = E1pxm->hh; + areanumber++; // next sequential number + + if (leveds_lever) free(leveds_lever); + cc = E1pxm->ww * E1pxm->hh * sizeof(float); // allocate memory for lever v.13.05 + leveds_lever = (float *) malloc(cc); + + zdialog_resize(zdsela,0,360); + zdialog_run(zdsela,leveds_event,"save"); // run dialog - parallel + leveds_event(zdsela,"init"); // initialize default params + return; +} + + +// dialog event and completion function + +int leveds_event(zdialog *zd, cchar *event) +{ + int ii, kk, pixdist, rowcc; + float px, py, xval, yval, lever; + float *pixel0, *pixel1, *pixel2, *pixel3, *pixel4; + spldat *sd = leveds_curve; + + if (zd->zstat) { // done, kill dialog + sa_unselect(); // delete area v.12.11 + zdialog_free(zdsela); + free(sd); // free curve edit memory + free(leveds_lever); + leveds_lever = 0; + return 0; + } + + if (! sa_validate() || sa_stat != 3) { // select area gone v.12.12 + zdialog_free(zdsela); + free(sd); // free curve edit memory + free(leveds_lever); + leveds_lever = 0; + return 0; + } + + if (strEqu(event,"loadcurve")) { // load saved curve + splcurve_load(sd); + if (CEF && CEF->zd) zdialog_send_event(CEF->zd,"blendwidth"); // notify edit dialog + return 0; + } + + if (strEqu(event,"savecurve")) { // save curve to file + splcurve_save(sd); + return 0; + } + + ii = strcmpv(event,"bright","contrast",null); // new lever type + if (ii >= 1 && ii <= 2) leveds_type = ii; + + ii = strcmpv(event,"all","red","green","blue",null); // new lever color + if (ii >= 1 && ii <= 4) leveds_color = ii; + + if (leveds_type != leveds_ptype || leveds_color != leveds_pcolor) // test for change + { + leveds_ptype = leveds_type; + leveds_pcolor = leveds_color; + + for (int ipy = 1; ipy < E1pxm->hh-1; ipy++) // v.13.05 + for (int ipx = 1; ipx < E1pxm->ww-1; ipx++) + { + pixel0 = PXMpix(E1pxm,ipx,ipy); // target pixel to measure + lever = 0; + + if (leveds_type == 1) // lever type = brightness + { + if (leveds_color == 1) + lever = 0.333 * (pixel0[0] + pixel0[1] + pixel0[2]); // use all colors + else { + ii = leveds_color - 2; // use single color + lever = pixel0[ii]; + } + } + + else if (leveds_type == 2) // lever type = contrast + { + rowcc = E1pxm->ww * 3; // image row span + + pixel1 = pixel0 + 3; // 4 pixels right, left, down, up + pixel2 = pixel0 - 3; + pixel3 = pixel0 + rowcc; + pixel4 = pixel0 - rowcc; + + if (leveds_color == 1) // use all colors + { + lever = fabsf(pixel0[0] - pixel1[0]) + fabsf(pixel0[0] - pixel2[0]) + + fabsf(pixel0[0] - pixel3[0]) + fabsf(pixel0[0] - pixel4[0]); + lever += fabsf(pixel0[1] - pixel1[1]) + fabsf(pixel0[1] - pixel2[1]) + + fabsf(pixel0[1] - pixel3[1]) + fabsf(pixel0[1] - pixel4[1]); + lever += fabsf(pixel0[2] - pixel1[2]) + fabsf(pixel0[2] - pixel2[2]) + + fabsf(pixel0[2] - pixel3[2]) + fabsf(pixel0[2] - pixel4[2]); + lever = lever / 12.0; + } + else // use single color + { + ii = leveds_color - 2; + lever = fabsf(pixel0[ii] - pixel1[ii]) + fabsf(pixel0[ii] - pixel2[ii]) + + fabsf(pixel0[ii] - pixel3[ii]) + fabsf(pixel0[ii] - pixel4[ii]); + lever = lever / 4.0; + } + } + + lever = lever / 1000.0; // scale 0.0 to 0.999 + lever = pow(lever,0.3); // log scale: 0.1 >> 0.5, 0.8 >> 0.94 + + ii = ipy * E1pxm->ww + ipx; // save lever for each pixel + leveds_lever[ii] = lever; + } + } + + if (strnEqu(event,"b ",2)) { // button to move entire curve + for (ii = 0; ii < sd->nap[0]; ii++) { + px = sd->apx[0][ii]; + py = sd->apy[0][ii]; + if (strEqu(event,"b +++")) py += 0.1; + if (strEqu(event,"b ---")) py -= 0.1; + if (strEqu(event,"b +-")) py += 0.1 - 0.2 * px; + if (strEqu(event,"b -+")) py -= 0.1 - 0.2 * px; + if (strEqu(event,"b +-+")) py -= 0.05 - 0.2 * fabsf(px-0.5); + if (strEqu(event,"b -+-")) py += 0.05 - 0.2 * fabsf(px-0.5); + if (py > 1) py = 1; + if (py < 0) py = 0; + sd->apy[0][ii] = py; + } + event = "edit"; + } + + if (strEqu(event,"edit")) { + splcurve_generate(sd,0); // regenerate the curve + gtk_widget_queue_draw(sd->drawarea); + } + + if (! CEF) return 0; // no edit function active + + for (int ipy = 1; ipy < E1pxm->hh-1; ipy++) // v.13.05 + for (int ipx = 1; ipx < E1pxm->ww-1; ipx++) + { + pixel0 = PXMpix(E1pxm,ipx,ipy); // target pixel to measure + ii = ipy * E1pxm->ww + ipx; + lever = leveds_lever[ii]; // leverage to apply, 0.0 to 0.999 + xval = lever; // curve x-value, 0.0 to 0.999 + kk = 1000 * xval; + if (kk > 999) kk = 999; + yval = sd->yval[0][kk]; // y-value, 0 to 0.999 + pixdist = 1 + 998 * yval; // pixel edge distance, 1 to 999 + sa_pixmap[ii] = pixdist; + } + + if (CEF->zd) zdialog_send_event(CEF->zd,"blendwidth"); // notify edit dialog + return 0; +} + + +// this function is called when curve is edited using mouse + +void leveds_curve_update(int) +{ + if (! zdsela) return; + leveds_event(zdsela,"edit"); + return; +} + diff -Nru fotoxx-14.03/f.tools.cc fotoxx-14.04/f.tools.cc --- fotoxx-14.03/f.tools.cc 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/f.tools.cc 2014-04-01 06:09:32.000000000 +0000 @@ -179,7 +179,7 @@ zdialog_free(zd); Fmenulock = 0; - index_rebuild(1); // build image search index and thumbnails + index_rebuild(1); // build image index and thumbnail files return; } @@ -234,7 +234,7 @@ } -// Rebuild the image search index using top directories // v.14.02 +// Rebuild the image index using top directories // v.14.02 // and other information in configuration files. // Called from main() when Fotoxx is started (menu = 0) // Called from menu function m_index() (menu = 1) @@ -245,7 +245,7 @@ { int index_popup_dialog_event(zdialog *zd, cchar *event); int index_popup_timeout(void *); - int search_index_compare(cchar *rec1, cchar *rec2); + int image_index_compare(cchar *rec1, cchar *rec2); GtkWidget *poplog; FILE *fid, *fidr, *fidw; @@ -354,10 +354,10 @@ wprintf(poplog,"thumbnails directory: \n %s \n",thumbdirk); // and thumbnails directory - // read search index file and build "old list" of index recs + // read image index file and build "old list" of index recs cc = maximages * sizeof(sxrec_t); - sxrec_old = (sxrec_t *) malloc(cc); // "old" search index recs + sxrec_old = (sxrec_t *) malloc(cc); // "old" image index recs Nold = 0; ftf = 1; @@ -377,7 +377,7 @@ // find all image files and create "new list" of index recs cc = maximages * sizeof(sxrec_t); - sxrec_new = (sxrec_t *) malloc(cc); // "new" search index recs + sxrec_new = (sxrec_t *) malloc(cc); // "new" image index recs Fupdate = (char *) malloc(maximages); // flags, 1 = update needed @@ -427,9 +427,9 @@ wprintf(poplog,"matching image files with index records \n"); if (Nold) - HeapSort((char *) sxrec_old,sizeof(sxrec_t),Nold,search_index_compare); + HeapSort((char *) sxrec_old,sizeof(sxrec_t),Nold,image_index_compare); if (Nnew) - HeapSort((char *) sxrec_new,sizeof(sxrec_t),Nnew,search_index_compare); + HeapSort((char *) sxrec_new,sizeof(sxrec_t),Nnew,image_index_compare); nmatch = 0; @@ -486,7 +486,7 @@ free(sxrec_old); // Process entries needing update in new index list - // (new files or files dated later than search index date). + // (new files or files dated later than image index date). // Get updated metadata from image file EXIF/IPTC data. // Create new thumbnails and refresh stale thumbnails. @@ -623,7 +623,7 @@ printz("%d thumbnails created \n",navi::genthumbs); ftf = 1; - for (nrec = 0; nrec < Nnew; nrec++) { // write updated search index recs. + for (nrec = 0; nrec < Nnew; nrec++) { // write updated image index recs. err = write_sxrec_seq(&sxrec_new[nrec],ftf); if (err) { zmessLogACK(mWin,"terminated by error"); @@ -764,7 +764,7 @@ // sort compare function - compare index record filespecs and return // <0 | 0 | >0 for file1 < | == | > file2 -int search_index_compare(cchar *rec1, cchar *rec2) +int image_index_compare(cchar *rec1, cchar *rec2) { char * file1 = ((sxrec_t *) rec1)->file; char * file2 = ((sxrec_t *) rec2)->file; @@ -797,7 +797,6 @@ | (o) Directory [________________________________] [browse] | | (o) Image File [_______________________________] [browse] | | | - | Menu Style (o) Classic (o) Vertical | | Toolbar Style (o) Text (o) Icons (o) Both | | Image Pan (o) Drag (o) Scroll [x] Magnified | | Interpolation (o) tiles (o) bilinear (o) hyperbolic | @@ -840,11 +839,6 @@ zdialog_add_widget(zd,"hsep","sep1","dialog",0,"space=3"); - zdialog_add_widget(zd,"hbox","hbmenu","dialog"); - zdialog_add_widget(zd,"label","labmenu","hbmenu",ZTX("Menu Style"),"space=5"); - zdialog_add_widget(zd,"radio","classic","hbmenu",ZTX("Classic"),"space=10"); - zdialog_add_widget(zd,"radio","vertical","hbmenu",ZTX("Vertical"),"space=10"); - zdialog_add_widget(zd,"hbox","hbtbar","dialog"); zdialog_add_widget(zd,"label","labtbs","hbtbar",ZTX("Toolbar Style"),"space=5"); zdialog_add_widget(zd,"radio","text","hbtbar",ZTX("Text"),"space=10"); @@ -879,7 +873,6 @@ zdialog_add_widget(zd,"label","rawlab2","hbraw2",ZTX("RAW file types"),"space=5"); zdialog_add_widget(zd,"entry","rawtypes","hbraw2",".raw .rw2","space=3|expand"); - zdialog_stuff(zd,"stdirk",startdirk); // stuff present settings into dialog zdialog_stuff(zd,"stfile",startfile); @@ -892,10 +885,6 @@ zdialog_stuff(zd,"file",0); zdialog_stuff(zd,startdisplay,1); - zdialog_stuff(zd,"classic",0); // v.13.01 - zdialog_stuff(zd,"vertical",0); - zdialog_stuff(zd,menu_style,1); - zdialog_stuff(zd,"icons",0); zdialog_stuff(zd,"text",0); zdialog_stuff(zd,"both",0); @@ -1038,20 +1027,6 @@ } } - zdialog_fetch(zd,"classic",nn); // menu style v.13.01 - if (nn) { - if (strNeq(menu_style,"classic")) Fclone = 1; - free(menu_style); - menu_style = strdup("classic"); - } - - zdialog_fetch(zd,"vertical",nn); - if (nn) { - if (strNeq(menu_style,"vertical")) Fclone = 1; - free(menu_style); - menu_style = strdup("vertical"); - } - zdialog_fetch(zd,"text",nn); // toolbar style if (nn) { free(tbar_style); @@ -2615,15 +2590,16 @@ // Slide Show int slideshow_dialog_event(zdialog *zd, cchar *event); // user dialogs -int ss_getcollmembers1(char *collname, char **&flist1); -int ss_getcollmembers2(char **flist1, char **&flist2, int Flatest); -void ss_transprefs(); // edit transition preferences +void ss_transprefs_dialog(); // edit transition preferences +void ss_imageprefs_dialog(); // edit image preferences +void ss_loadprefs(); // load preferences from file +void ss_saveprefs(); // write preferences to file +int ss_timerfunc(void *); // timer function int ss_nextrans(); // select next transition to use void ss_captions(); // write captions/comments on image +void ss_blankwindow(); // blank the window GdkPixbuf *ss_loadpxb(char *file); // load image as pixbuf -char *ss_basename(char *file); // isolate base file name -void ss_blankwindow(); void ss_instant(); // transition functions void ss_fadein(); void ss_rollright(); @@ -2631,51 +2607,59 @@ void ss_venetian(); void ss_grate(); void ss_rectangle(); -void ss_ellipse(); void ss_radar(); void ss_jaws(); +void ss_ellipse(); void ss_raindrops(); void ss_doubledoor(); void ss_rotate(); -void ss_kenburns(); +void ss_zoomin(); -char **ss_collfiles = 0; // collection file list -char **ss_selfiles = 0; // " after selecting latest versions -char **ss_pauselist = 0; // pause image list -int ss_ncoll = 0; // collection file count -int ss_nsel = 0; // " after selecting latest versions -int ss_npause = 0; // pause image count -double ss_timer = 0; // slide show timer -float ss_cliplimit = 10; // image clipping limit from user +char ss_collfile[300] = ""; // slide show collection file +char *ss_collname = 0; // collection name (ss_collfile tail) +int ss_Nfiles = 0; // collection file count +int ss_secs = 0; // standard display time from user +int ss_cliplim = 10; // image clipping limit from user +int ss_showcaps = 0; // show captions option from user +int ss_random = 0; // use random transitions option from user +char ss_musicfile[300] = "none"; // music file from user +int ss_slowdown = 0; // slowdown factor for transition in use +int ss_zoom, ss_zsteps; // zoom-in amount (%) and zoom steps +int ss_cenx, ss_ceny; // zoom-in target (50/50 = image midpoint) +int ss_ww, ss_hh; // full screen window size char *ss_oldfile, *ss_newfile; // image files for transition GdkPixbuf *ss_pxbold, *ss_pxbnew; // pixbuf images: old, new int ss_rsold, ss_rsnew; // old and new pixbuf row stride +double ss_timer = 0; // slide show timer +cchar *ss_state = 0; // slide show state int ss_Fnext = 0; // next file to show -char *ss_curr_file = 0; // tracks changes in current file -int ss_ww, ss_hh; // full screen window size -int ss_busy = 0; // flag, transition underway -int ss_escape = 0; // flag, user pressed Escape key -int ss_paused = 0; // flag, user pressed space bar (pause/resume) int ss_blank = 0; // flag, user pressed B key (blank screen) -int ss_fadefast = 0; // flag, alters speed of ss_fadein() cairo_t *ss_cr; // cairo context -struct ss_Trantab_t { - cchar *name; // transition name +#define SSNF 13 // slide show transition types +#define SSMAXI 10000 // max. no. slide show images + +struct ss_trantab_t { // transition table + char tranname[32]; // transition name int enabled; // enabled or not int slowdown; // slowdown factor int preference; // relative preference, 0-99 void (*func)(); // function to perform transition }; -#define SSNF 14 // no. slide show transition types +ss_trantab_t ss_trantab[SSNF]; // specific slide show transition preferences -ss_Trantab_t ss_Trantab[SSNF] = // transition default preferences +int ss_Tused[SSNF]; // list of transition types enabled +int ss_Tlast[SSNF]; // last transitions used, in order +int ss_Nused; // count of enabled transitions, 0-SSNF +int ss_Tnext; // next transition to use >> last one used + +ss_trantab_t ss_trantab_default[SSNF] = // transition default preference { // name enab slow pref function // (enabled, no slowdown, equal preference) { "instant", 1, 0, 10, ss_instant }, { "fade-in", 1, 0, 10, ss_fadein }, - { "roll-right", 1, 0, 10, ss_rollright }, // NO BLANKS IN TRANSITION NAMES - { "roll-down", 1, 0, 10, ss_rolldown }, + { "roll-right", 1, 3, 10, ss_rollright }, // NO BLANKS IN TRANSITION NAMES + { "roll-down", 1, 3, 10, ss_rolldown }, { "venetian", 1, 0, 10, ss_venetian }, { "grate", 1, 0, 10, ss_grate }, { "rectangle", 1, 0, 10, ss_rectangle }, @@ -2683,242 +2667,165 @@ { "jaws", 1, 0, 10, ss_jaws }, { "ellipse", 1, 0, 10, ss_ellipse }, { "raindrops", 1, 0, 10, ss_raindrops }, - { "doubledoor", 1, 0, 10, ss_doubledoor }, - { "rotate", 1, 0, 10, ss_rotate }, - { "ken-burns", 1, 0, 10, ss_kenburns } + { "doubledoor", 1, 3, 10, ss_doubledoor }, + { "rotate", 1, 0, 10, ss_rotate } }; -int ss_Tmode; // 0/1 = sequential/random transitions -int ss_Tused[SSNF]; // list of transition types enabled -int ss_Tlast[SSNF]; // last transitions used, in order -int ss_Nused; // count of enabled transitions, 0-SSNF -int ss_Tnext; // next transition to use >> last one used -int ss_slowdown; // slowdown factor for transition type +struct ss_imagetab_t { // image table + char *imagefile; // image file + char tranname[32]; // transition type to use + int Ftone; // flag, play tone when shown + int bzsecs; // seconds to show image before zoom + int zoom, zsteps; // opt. zoom-in size (%) and steps + int cenx, ceny; // zoom-in target (50/50 = image midpoint) + int azsecs; // seconds to show image after zoom +}; +ss_imagetab_t ss_imagetab[SSMAXI]; // specific slide show image table -// menu function -void m_slideshow(GtkWidget *, cchar *) // overhauled v.13.11 +// menu function - start or stop a slide show + +void m_slideshow(GtkWidget *, cchar *) // overhauled v.14.04 { zdialog *zd; - FILE *fd; - int zstat, nn, ii, jj, enabled; - int slowdown, preference; - char name[20], countmess[50], buff[200]; + int zstat, ii; + char countmess[50]; cchar *esc_message = ZTX("Press ESC to exit slide show"); - cchar *latest_message = ZTX("last versions"); - - F1_help_topic = "slide_show"; - ss_Trantab[0].name = ZTX("instant"); - ss_Trantab[1].name = ZTX("fade-in"); - ss_Trantab[2].name = ZTX("roll-right"); - ss_Trantab[3].name = ZTX("roll-down"); - ss_Trantab[4].name = ZTX("venetian"); - ss_Trantab[5].name = ZTX("grate"); - ss_Trantab[6].name = ZTX("rectangle"); - ss_Trantab[7].name = ZTX("radar"); - ss_Trantab[8].name = ZTX("jaws"); - ss_Trantab[9].name = ZTX("ellipse"); - ss_Trantab[10].name = ZTX("raindrops"); - ss_Trantab[11].name = ZTX("doubledoor"); - ss_Trantab[12].name = ZTX("rotate"); - ss_Trantab[13].name = "ken-burns"; - - ss_Tmode = 0; // default, sequential transitions - - if (! Fslideshow) // start slide show - { - if (checkpend("all")) return; // check nothing pending v.13.12 - - fd = fopen(slideshow_prefs,"r"); // read transition preferences file - if (fd) { - nn = fscanf(fd,"random: %d ",&ss_Tmode); - while (true) { - nn = fscanf(fd,"%s %d %d %d ",name,&enabled,&slowdown,&preference); - if (nn != 4) break; - for (ii = 0; ii < SSNF; ii++) - if (strEqu(name,ss_Trantab[ii].name)) break; - if (ii == SSNF) continue; - ss_Trantab[ii].enabled = enabled; - ss_Trantab[ii].slowdown = slowdown; - ss_Trantab[ii].preference = preference; - } - fclose(fd); - } - - for (ii = jj = 0; ii < SSNF; ii++) { // initialize list of enabled - if (ss_Trantab[ii].enabled) { // and last used transition types - ss_Tused[jj] = ii; - jj++; - } - ss_Tlast[ii] = 0; - } + strncpy0(ss_trantab_default[0].tranname,ZTX("instant"),32); // get translations into the .po file + strncpy0(ss_trantab_default[1].tranname,ZTX("fade-in"),32); + strncpy0(ss_trantab_default[2].tranname,ZTX("roll-right"),32); + strncpy0(ss_trantab_default[3].tranname,ZTX("roll-down"),32); + strncpy0(ss_trantab_default[4].tranname,ZTX("venetian"),32); + strncpy0(ss_trantab_default[5].tranname,ZTX("grate"),32); + strncpy0(ss_trantab_default[6].tranname,ZTX("rectangle"),32); + strncpy0(ss_trantab_default[7].tranname,ZTX("radar"),32); + strncpy0(ss_trantab_default[8].tranname,ZTX("jaws"),32); + strncpy0(ss_trantab_default[9].tranname,ZTX("ellipse"),32); + strncpy0(ss_trantab_default[10].tranname,ZTX("raindrops"),32); + strncpy0(ss_trantab_default[11].tranname,ZTX("doubledoor"),32); + strncpy0(ss_trantab_default[12].tranname,ZTX("rotate"),32); - ss_Nused = jj; // no. enabled transition types - ss_Tnext = 0; // next one to use (first) + F1_help_topic = "slide_show"; + if (checkpend("all")) return; // check nothing pending /** - ________________________________________________________________ - | [x] [-] [ ] Slide Show | - | | - | Slide Show [Select] xxxxxxxxxx 55 images [x] last versions | - | Pause List [Select] xxxxxxxxx 3 images | - | Customize [transitions] seconds [__] | - | Clipping Limit (%) [__] [x] show captions | - | music file [_______________________________________] [Browse] | - | | - | Press ESC to exit slide show | - | [Proceed] [Cancel] | - |________________________________________________________________| + ________________________________________________________ + | [x] [-] [ ] Slide Show | + | | + | [Select] collection-name 123 images | + | Seconds [__] Clip Limit (%) [__] [x] Show Captions | + | Music file [_____________________________] [Browse] | + | | + | Customize: [transitions] [image files] | + | Press ESC to exit slide show | + | [Proceed] [Cancel] | + |________________________________________________________| **/ - zd = zdialog_new(ZTX("Slide Show"),mWin,Bproceed,Bcancel,null); // user dialog + zd = zdialog_new(ZTX("Slide Show"),mWin,Bproceed,Bcancel,null); // user dialog - zdialog_add_widget(zd,"hbox","hbss","dialog"); - zdialog_add_widget(zd,"label","labss","hbss",ZTX("Slide Show"),"space=5"); - zdialog_add_widget(zd,"button","selectss","hbss",Bselect); - zdialog_add_widget(zd,"label","namess","hbss",Bnoselection,"space=5"); - zdialog_add_widget(zd,"label","countss","hbss",Bnoimages,"space=5"); - zdialog_add_widget(zd,"check","latest","hbss",latest_message,"space=3"); - - zdialog_add_widget(zd,"hbox","hbpl","dialog"); - zdialog_add_widget(zd,"label","labpl","hbpl",ZTX("Pause List"),"space=5"); - zdialog_add_widget(zd,"button","selectpl","hbpl",Bselect); - zdialog_add_widget(zd,"label","namepl","hbpl",Bnoselection,"space=5"); - zdialog_add_widget(zd,"label","countpl","hbpl",Bnoimages,"space=5"); - - zdialog_add_widget(zd,"hbox","hbprefs","dialog"); - zdialog_add_widget(zd,"label","labprefs","hbprefs",ZTX("Customize"),"space=5"); - zdialog_add_widget(zd,"button","transprefs","hbprefs",ZTX("transitions"),"space=5"); - zdialog_add_widget(zd,"label","space","hbprefs",0,"space=10"); - zdialog_add_widget(zd,"label","labsecs","hbprefs",ZTX("seconds"),"space=3"); - zdialog_add_widget(zd,"entry","secs","hbprefs","3","scc=3"); - - zdialog_add_widget(zd,"hbox","hbclip","dialog"); - zdialog_add_widget(zd,"label","labclip","hbclip",ZTX("Clip Limit (%)"),"space=5"); - zdialog_add_widget(zd,"spin","clip","hbclip","0|50|1|0"); - zdialog_add_widget(zd,"check","showcaps","hbclip",ZTX("show captions"),"space=10"); - - zdialog_add_widget(zd,"hbox","hbmf","dialog",0,"space=3"); // music file selection - zdialog_add_widget(zd,"label","lab21","hbmf",ZTX("music file"),"space=5"); - zdialog_add_widget(zd,"entry","musicfile","hbmf",0,"expand|space=5"); - zdialog_add_widget(zd,"button","browse","hbmf",Bbrowse,"space=5"); - - zdialog_add_widget(zd,"hbox","hbesc","dialog",0,"space=3"); - zdialog_add_widget(zd,"label","labesc","hbesc",esc_message,"space=5"); - - zdialog_restore_inputs(zd); // preload prior user inputs - - if (ss_collname && *ss_collname) { - zdialog_stuff(zd,"namess",ss_collname); // get collection data if avail. - nn = ss_getcollmembers1(ss_collname,ss_collfiles); - ss_ncoll = nn; - nn = ss_getcollmembers2(ss_collfiles,ss_selfiles,ss_latest); - ss_nsel = nn; - snprintf(countmess,50,ZTX("%d images"),ss_nsel); - zdialog_stuff(zd,"countss",countmess); - } - - if (ss_plcollname && *ss_plcollname) { - zdialog_stuff(zd,"namepl",ss_plcollname); // get pause list if avail. - nn = ss_getcollmembers1(ss_plcollname,ss_pauselist); - ss_npause = nn; - snprintf(countmess,50,ZTX("%d images"),ss_npause); - zdialog_stuff(zd,"countpl",countmess); - } + zdialog_add_widget(zd,"hbox","hbss","dialog",0,"space=3"); + zdialog_add_widget(zd,"button","selectcoll","hbss",Bselect,"space=5"); + zdialog_add_widget(zd,"label","collname","hbss",Bnoselection,"space=5"); + zdialog_add_widget(zd,"label","nfiles","hbss",Bnoimages,"space=5"); + + zdialog_add_widget(zd,"hbox","hbprefs","dialog"); + zdialog_add_widget(zd,"label","labsecs","hbprefs",Bseconds,"space=5"); + zdialog_add_widget(zd,"spin","seconds","hbprefs","1|99|1|3"); + zdialog_add_widget(zd,"label","space","hbprefs",0,"space=5"); + zdialog_add_widget(zd,"label","labclip","hbprefs",ZTX("Clip Limit"),"space=5"); + zdialog_add_widget(zd,"spin","cliplim","hbprefs","0|50|1|0"); + zdialog_add_widget(zd,"check","showcaps","hbprefs",ZTX("Show Captions"),"space=10"); + + zdialog_add_widget(zd,"hbox","hbmf","dialog",0,"space=3"); + zdialog_add_widget(zd,"label","labmf","hbmf",ZTX("Music File"),"space=5"); + zdialog_add_widget(zd,"entry","musicfile","hbmf",0,"expand|space=5"); + zdialog_add_widget(zd,"button","browse","hbmf",Bbrowse,"space=5"); + + zdialog_add_widget(zd,"hbox","hbcust","dialog",0,"space=3"); + zdialog_add_widget(zd,"label","labprefs","hbcust",ZTX("Customize:"),"space=5"); + zdialog_add_widget(zd,"button","transprefs","hbcust",ZTX("transitions"),"space=5"); + zdialog_add_widget(zd,"button","imageprefs","hbcust",ZTX("image files"),"space=5"); + + zdialog_add_widget(zd,"hbox","hbesc","dialog",0,"space=3"); + zdialog_add_widget(zd,"label","labesc","hbesc",esc_message,"space=5"); + + if (ss_Nfiles) { // if collection file available, + ss_loadprefs(); // load slide show data or defaults + zdialog_stuff(zd,"collname",ss_collname); + snprintf(countmess,50,ZTX("%d images"),ss_Nfiles); + zdialog_stuff(zd,"nfiles",countmess); + zdialog_stuff(zd,"seconds",ss_secs); + zdialog_stuff(zd,"cliplim",ss_cliplim); + zdialog_stuff(zd,"showcaps",ss_showcaps); + zdialog_stuff(zd,"musicfile",ss_musicfile); + + navi::gallerytype = 4; // open gallery with slide show collection + gallery(ss_collfile,"initF"); + gallery(0,"paint",ss_Fnext); + settab("G"); + } + + zdialog_run(zd,slideshow_dialog_event); // run dialog + zstat = zdialog_wait(zd); // wait for completion - zdialog_run(zd,slideshow_dialog_event); // run dialog - zstat = zdialog_wait(zd); // wait for completion - - if (zstat != 1) { // cancel - zdialog_free(zd); - return; - } - - zdialog_fetch(zd,"secs",ss_interval); // timer interval, seconds - if (ss_Nused == 0) ss_interval = 9999; // if only arrow-keys used, huge interval - - zdialog_fetch(zd,"clip",ss_cliplimit); // image clipping limit + if (zstat != 1) { // cancel + zdialog_free(zd); + return; + } - zdialog_fetch(zd,"showcaps",Fcaptions); // v.14.02 - - if (ss_musicfile) free(ss_musicfile); // get music file if any - ss_musicfile = (char *) malloc(300); - zdialog_fetch(zd,"musicfile",ss_musicfile,300); - - zdialog_free(zd); // kill dialog - - if (! ss_nsel) { // final image file count - zmessageACK(mWin,0,ZTX("no image files selected")); - return; - } - - strcpy(buff,collections_dirk); // collection with final file list - strcat(buff,"/slide_show"); - navi::gallerytype = 4; // set gallery from selected files - gallery(buff,"initF"); - gallery(0,"paint",0); - - ii = 0; - if (curr_file) { // start at curr. file - for (ii = 0; ii < ss_nsel; ii++) // if member of file list - if (strEqu(curr_file,ss_selfiles[ii])) break; - if (ii == ss_nsel) ii = 0; - } - ss_Fnext = ii; // next file in list to show - - if (ss_curr_file) free(ss_curr_file); // track current file opened by user - ss_curr_file = 0; // change slide show position if user - if (curr_file) ss_curr_file = strdup(curr_file); // opens different file in collection - - win_fullscreen(); // full screen, no menu/toolbar/status bar - - ss_ww = gdk_window_get_width(gdkWin); // drawing window size - ss_hh = gdk_window_get_height(gdkWin); - - ss_newfile = 0; // no new image - ss_pxbnew = 0; - - ss_oldfile = 0; // no old (prior) image - ss_pxbold = 0; - - ss_paused = 0; // not paused - Fslideshow = 1; // slideshow mode for KB events - Fblowup = 1; // expand small images - Fzoom = 0; // fit window - - if (ss_musicfile && *ss_musicfile == '/') // if music file present, start it up - shell_ack("xdg-open \"%s\" ",ss_musicfile); - - slideshow_next("first"); + if (! ss_Nfiles) { // no selection + zmessageACK(mWin,0,ZTX("invalid collection")); return; } - - else // slide show is running, break out - { - if (ss_busy) { - ss_escape = 1; // wait for transition done - return; - } - if (ss_pxbold) g_object_unref(ss_pxbold); - if (ss_pxbnew) g_object_unref(ss_pxbnew); - ss_pxbold = ss_pxbnew = 0; + zdialog_fetch(zd,"seconds",ss_secs); // timer interval, seconds + if (ss_Nused == 0) ss_secs = 9999; // if only arrow-keys used, huge interval + zdialog_fetch(zd,"cliplim",ss_cliplim); // image clipping limit + zdialog_fetch(zd,"showcaps",ss_showcaps); + zdialog_fetch(zd,"musicfile",ss_musicfile,300); + + strTrim2(ss_musicfile); // if music file blanked, use "none" + if (! *ss_musicfile || *ss_musicfile == ' ') + strcpy(ss_musicfile,"none"); - win_unfullscreen(); // restore old window size, menu etc. + zdialog_free(zd); // kill dialog + ss_saveprefs(); // save preference changes - Fslideshow = 0; // reset flags - Fblankwindow = 0; - ss_escape = 0; - Fblowup = 0; - Fzoom = 0; // fit window - - f_open(ss_newfile); // current slide >> current file v.14.02 - m_slideshow(0,0); // go back to dialog - return; - } + if (curr_file) { // start at curr. file + for (ii = 0; ii < ss_Nfiles; ii++) // if member of file list + if (strEqu(curr_file,ss_imagetab[ii].imagefile)) break; + if (ii == ss_Nfiles) ii = 0; + } + else ii = 0; + ss_Fnext = ii; // next file in list to show + + settab("F"); // insure tab F + + win_fullscreen(); // full screen, no menu/toolbar/status bar + ss_ww = gdk_window_get_width(gdkWin); // drawing window size + ss_hh = gdk_window_get_height(gdkWin); + + ss_newfile = 0; // no new image + ss_pxbnew = 0; + ss_oldfile = 0; // no old (prior) image + ss_pxbold = 0; + + Fslideshow = 1; // slideshow active for KB events + ss_blank = 0; // not blank window + ss_state = "first"; + Fblowup = 1; // expand small images + Fzoom = 0; // fit window + Fcaptions = ss_showcaps; // show captions option + + if (*ss_musicfile == '/') // if music file present, start it up + shell_ack("xdg-open \"%s\" ",ss_musicfile); + + g_timeout_add(100,ss_timerfunc,0); + return; } @@ -2926,87 +2833,67 @@ int slideshow_dialog_event(zdialog *zd, cchar *event) { - FILE *fid; - int nn; char *file, *pp; char countmess[50]; - char buff[maxfcc]; - if (strEqu(event,"enter")) zd->zstat = 1; // [proceed] v.14.03 - - if (strEqu(event,"selectss")) // select a slide show collection - { - ss_ncoll = ss_nsel = 0; // reset collection data - if (ss_collname) free(ss_collname); - ss_collname = 0; - zdialog_stuff(zd,"namess",Bnoselection); - zdialog_stuff(zd,"countss",Bnoimages); - - file = zgetfile(ZTX("open collection"),"file",collections_dirk); - if (! file) return 0; - - pp = strrchr(file,'/'); - ss_collname = strdup(pp+1); - free(file); + if (strEqu(event,"focus")) + F1_help_topic = "slide_show"; - nn = ss_getcollmembers1(ss_collname,ss_collfiles); // get all member files - ss_ncoll = nn; + if (strEqu(event,"enter")) zd->zstat = 1; // [proceed] - zdialog_stuff(zd,"namess",ss_collname); // update dialog collection data - snprintf(countmess,50,ZTX("%d images"),ss_ncoll); - zdialog_stuff(zd,"countss",countmess); + if (zd->zstat == 1) // [proceed] + { + if (! ss_Nfiles) { + zmessageACK(mWin,0,ZTX("invalid collection")); + zd->zstat = 0; + return 1; + } } - if (strEqu(event,"selectpl")) // select a pause list collection + if (strEqu(event,"selectcoll")) // select a slide show collection { - ss_npause = 0; - if (ss_plcollname) free(ss_plcollname); - ss_plcollname = 0; - zdialog_stuff(zd,"namepl",Bnoselection); // reset pause list data - zdialog_stuff(zd,"countpl",Bnoimages); + ss_Nfiles = 0; // reset collection data + ss_collfile[0] = 0; + zdialog_stuff(zd,"collname",Bnoselection); + zdialog_stuff(zd,"nfiles",Bnoimages); file = zgetfile(ZTX("open collection"),"file",collections_dirk); - if (! file) return 0; + if (! file) return 1; + if (strlen(file) > 299) { + zmessageACK(mWin,0,"file name too long"); + return 1; + } - pp = strrchr(file,'/'); - ss_plcollname = strdup(pp+1); + strcpy(ss_collfile,file); + pp = strrchr(ss_collfile,'/'); // get collection name + ss_collname = pp + 1; free(file); + + ss_loadprefs(); // get slide show prefs or defaults - nn = ss_getcollmembers1(ss_plcollname,ss_pauselist); // get all member files - ss_npause = nn; - - zdialog_stuff(zd,"namepl",ss_plcollname); // update dialog pause list data - snprintf(countmess,50,ZTX("%d images"),ss_npause); - zdialog_stuff(zd,"countpl",countmess); - } - - if (strstr("selectss latest",event)) // collection name or filter status changed - { - zdialog_fetch(zd,"latest",ss_latest); // get latest versions filter option - - if (! ss_ncoll) return 0; - - nn = ss_getcollmembers2(ss_collfiles,ss_selfiles,ss_latest); // filter all but latest versions if wanted - ss_nsel = nn; - - snprintf(countmess,50,ZTX("%d images"),ss_nsel); // update dialog collection count - zdialog_stuff(zd,"countss",countmess); - - strcpy(buff,collections_dirk); // create a slide_show collection - strcat(buff,"/slide_show"); // with final file list + if (! ss_Nfiles) { + zmessageACK(mWin,0,ZTX("invalid collection")); + return 1; + } - fid = fopen(buff,"w"); - if (! fid) return 0; - for (int ii = 0; ii < ss_nsel; ii++) - fprintf(fid,"%s\n",ss_selfiles[ii]); - fclose(fid); + zdialog_stuff(zd,"collname",ss_collname); // update dialog collection data + snprintf(countmess,50,ZTX("%d images"),ss_Nfiles); + zdialog_stuff(zd,"nfiles",countmess); + zdialog_stuff(zd,"seconds",ss_secs); + zdialog_stuff(zd,"cliplim",ss_cliplim); + zdialog_stuff(zd,"showcaps",ss_showcaps); + zdialog_stuff(zd,"musicfile",ss_musicfile); - navi::gallerytype = 4; // type = collection - gallery(buff,"initF"); // generate gallery of selected files + navi::gallerytype = 4; // open gallery with slide show collection + gallery(ss_collfile,"initF"); gallery(0,"paint",0); + settab("G"); } - if (strEqu(event,"transprefs")) ss_transprefs(); + if (! ss_Nfiles) return 1; + + if (strEqu(event,"transprefs")) ss_transprefs_dialog(); // edit transition preferences + if (strEqu(event,"imageprefs")) ss_imageprefs_dialog(); // edit image preferences if (strEqu(event,"browse")) // look for music file { @@ -3016,157 +2903,20 @@ free(file); } - return 0; -} - - -// get the member image files for a collection -// return file count if success -// return 0 if user cancel or invalid or empty collection (user informed) -// if success, the prior file list, if any, is replaced - -int ss_getcollmembers1(char *collname, char **&flist1) -{ - FILE *fid; - char collfile[200]; - int ii, nn, ftype; - char *pp, **flistx; - char buff[maxfcc]; - - if (flist1) { // free prior collection file list - for (ii = 0; flist1[ii]; ii++) - free(flist1[ii]); - free(flist1); - flist1 = 0; - } - - snprintf(collfile,200,"%s/%s",collections_dirk,collname); - fid = fopen(collfile,"r"); // open collection file - if (! fid) { - zmessageACK(mWin,0,ZTX("invalid collection")); - return 0; - } - - nn = 0; - while (true) { // read and count member files - pp = fgets_trim(buff,maxfcc,fid); - if (! pp) break; - ftype = image_file_type(pp); // filter missing/invalid files - if (ftype == 2) nn++; - } - - fclose(fid); - - if (! nn) { - zmessageACK(mWin,0,ZTX("empty collection")); - return 0; - } - - flistx = (char **) malloc((nn + 1) * sizeof(char *)); // space for member files + 1 - - ii = 0; - fid = fopen(collfile,"r"); // get member file list - while (true) { - pp = fgets_trim(buff,maxfcc,fid); - if (! pp) break; - ftype = image_file_type(pp); - if (ftype != 2) continue; - flistx[ii] = strdup(pp); - ii++; - } - fclose(fid); - flistx[ii] = 0; // EOL flag - - flist1 = flistx; // return new list - return nn; // return member file count -} - - -// screen a collection member file list to remove all but the latest versions -// returns count of latest versions (at least 1 if input list is not empty) -// file lists have null EOL flag as last entry -// the prior file list, if any, is replaced - -int ss_getcollmembers2(char **flist1, char **&flist2, int Flatest) -{ - int ii, jj, nn; - char *name1, *name2; - char **flistx; - - if (flist2) { // free prior collection file list - for (ii = 0; flist2[ii]; ii++) - free(flist2[ii]); - free(flist2); - flist2 = 0; - } - - if (! flist1 || ! flist1[0]) return 0; // input list is empty - - if (! Flatest) // no screen, copy flist1 to flist2 - { - for (nn = 0; flist1[nn]; nn++); // count member files - - flistx = (char **) malloc((nn + 1) * sizeof(char *)); // space for member files + 1 - - for (ii = 0; ii < nn; ii++) - flistx[ii] = strdup(flist1[ii]); - flistx[ii] = 0; // EOL flag - - flist2 = flistx; - return nn; - } - - for (ii = jj = 0; flist1[ii+1]; ii++) // count latest versions - { - name1 = ss_basename(flist1[ii]); // compare two files, ignoring versions - name2 = ss_basename(flist1[ii+1]); - if (strNeq(name1,name2)) jj++; // if unequal, first is a latest version - free(name1); - free(name2); - } - - nn = jj + 1; // last is always a latest version - - if (! nn) { - zmessageACK(mWin,0,ZTX("empty collection")); - return 0; - } - - flistx = (char **) malloc((nn + 1) * sizeof(char *)); // space for member files + 1 - - for (ii = jj = 0; flist1[ii+1]; ii++) // copy latest versions to final file list - { - name1 = ss_basename(flist1[ii]); - name2 = ss_basename(flist1[ii+1]); - if (strNeq(name1,name2)) { - flistx[jj] = strdup(flist1[ii]); - jj++; - } - free(name1); - free(name2); - } - - flistx[jj] = strdup(flist1[ii]); // get the last one - flistx[jj+1] = 0; // EOL flag - - flist2 = flistx; // return new list - return nn; // return member file count + return 1; } -// set slowdown and selection preference per transition type +// set transitions preferences for specific slide show -void ss_transprefs() // v.14.01 +void ss_transprefs_dialog() { zdialog *zd; - int ii, jj, enabled; - cchar *name; - int slowdown, preference; + int ii, jj; char nameii[SSNF], enabii[SSNF], timeii[SSNF], prefii[SSNF]; - FILE *fd; cchar *randmess = ZTX("select random (if 5+ enabled)"); -/** +/*** _______________________________________________ | Transition Preferences | | | @@ -3181,13 +2931,17 @@ | [done] | |_______________________________________________| -**/ +***/ + + if (! ss_Nfiles) { + zmessageACK(mWin,0,ZTX("invalid collection")); + return; + } zd = zdialog_new(ZTX("Transition Preferences"),mWin,Bdone,null); zdialog_add_widget(zd,"hbox","hbrand","dialog",0,"space=3"); zdialog_add_widget(zd,"check","rand","hbrand",randmess,"space=3"); - zdialog_add_widget(zd,"hbox","hb1","dialog",0,"space=3"); zdialog_add_widget(zd,"vbox","vb1","hb1",0,"space=3|homog"); zdialog_add_widget(zd,"vbox","vb2","hb1",0,"space=3|homog"); @@ -3198,7 +2952,7 @@ zdialog_add_widget(zd,"label","labtime","vb3",ZTX("slowdown")); zdialog_add_widget(zd,"label","labpref","vb4",ZTX("preference")); - zdialog_stuff(zd,"rand",ss_Tmode); // retain last mode + zdialog_stuff(zd,"rand",ss_random); // stuff random checkbox for (ii = 0; ii < SSNF; ii++) { // build input dialog for transition prefs sprintf(nameii,"name_%d",ii); @@ -3209,43 +2963,33 @@ zdialog_add_widget(zd,"check",enabii,"vb2",0,"scc=3"); zdialog_add_widget(zd,"spin",timeii,"vb3","0|99|1|1","scc=3"); zdialog_add_widget(zd,"spin",prefii,"vb4","0|99|1|10","scc=3"); - zdialog_stuff(zd,nameii,ss_Trantab[ii].name); - zdialog_stuff(zd,enabii,ss_Trantab[ii].enabled); - zdialog_stuff(zd,timeii,ss_Trantab[ii].slowdown); - zdialog_stuff(zd,prefii,ss_Trantab[ii].preference); + zdialog_stuff(zd,nameii,ss_trantab[ii].tranname); // stuff current transition prefs + zdialog_stuff(zd,enabii,ss_trantab[ii].enabled); + zdialog_stuff(zd,timeii,ss_trantab[ii].slowdown); + zdialog_stuff(zd,prefii,ss_trantab[ii].preference); } zdialog_run(zd); // run dialog, wait for completion zdialog_wait(zd); - zdialog_fetch(zd,"rand",ss_Tmode); // get mode, 0/1 = sequential/random + zdialog_fetch(zd,"rand",ss_random); // get mode, 0/1 = sequential/random - for (ii = 0; ii < SSNF; ii++) { // get preferences from dialog + zdialog_fetch(zd,"rand",ss_random); // get revised preferences from dialog + + for (ii = 0; ii < SSNF; ii++) { sprintf(enabii,"enab_%d",ii); sprintf(timeii,"time_%d",ii); sprintf(prefii,"pref_%d",ii); - zdialog_fetch(zd,enabii,ss_Trantab[ii].enabled); - zdialog_fetch(zd,timeii,ss_Trantab[ii].slowdown); - zdialog_fetch(zd,prefii,ss_Trantab[ii].preference); + zdialog_fetch(zd,enabii,ss_trantab[ii].enabled); + zdialog_fetch(zd,timeii,ss_trantab[ii].slowdown); + zdialog_fetch(zd,prefii,ss_trantab[ii].preference); } zdialog_free(zd); - - fd = fopen(slideshow_prefs,"w"); // write modified preferences file - if (fd) { - fprintf(fd,"random: %d \n",ss_Tmode); - for (ii = 0; ii < SSNF; ii++) { - name = ss_Trantab[ii].name; - enabled = ss_Trantab[ii].enabled; - slowdown = ss_Trantab[ii].slowdown; - preference = ss_Trantab[ii].preference; - fprintf(fd,"%s %d %d %d \n",name,enabled,slowdown,preference); - } - fclose(fd); - } + ss_saveprefs(); for (ii = jj = 0; ii < SSNF; ii++) { // initialize list of enabled - if (ss_Trantab[ii].enabled) { // and last used transition types + if (ss_trantab[ii].enabled) { // and last used transition types ss_Tused[jj] = ii; jj++; } @@ -3259,156 +3003,622 @@ } -// Show next slide if time is up or user navigates with arrow keys. -// Called by timer function and by keyboard function if Fslideshow is set. +// set image preferences for specific slide show -void slideshow_next(cchar *mode) +void ss_imageprefs_dialog() // v.14.04 { - #define play_tone "canberra-gtk-play --volume=10 -f %s &" + int ss_imageprefs_dialog_event(zdialog *zd, cchar *event); - double secs; - int Finstant = 0, ii; - int Fjump = 0; - char buff[200]; + zdialog *zd; + int ii; + char *pp, imagefile[100]; - if (cTab != tabF) return; // left F-tab, wait - if (ss_busy) return; // come back later +/*** + ____________________________________________ + | Image Preferences | + | | + | Image File: /.../filename.jpg | + | Play Tone [x] Transition: [ rotate |v] | + | +Seconds [ 99 ] before zoom | + | Zoom size % [50] Steps [200 |v] | + | Zoom center width [40] height [60] | + | +Seconds [ 99 ] after zoom | + | | + | [done] | + |____________________________________________| - if (curr_file) { // detect if user changes current file - if (! ss_curr_file) Fjump = 1; // - else if (strNeq(curr_file,ss_curr_file)) Fjump = 1; - } +***/ - if (Fjump) { - if (ss_curr_file) free(ss_curr_file); // if new current file is in - ss_curr_file = strdup(curr_file); // slide show collection, - for (ii = 0; ii < ss_nsel; ii++) // jump to that file - if (strEqu(curr_file,ss_selfiles[ii])) break; - if (ii < ss_nsel) ss_Fnext = ii; // next file in list to show - else Fjump = 0; - } - - if (Fjump) { // new image in collection was opened - secs = get_seconds(); // set time for next image - ss_timer = secs + ss_interval; - ss_newfile = ss_selfiles[ss_Fnext]; // new current image - if (ss_pxbnew) g_object_unref(ss_pxbnew); - ss_pxbnew = ss_loadpxb(ss_newfile); // new new pixbuf from new new file - if (! ss_pxbnew) return; - ss_rsnew = gdk_pixbuf_get_rowstride(ss_pxbnew); // row stride + if (! ss_Nfiles) { + zmessageACK(mWin,0,ZTX("invalid collection")); return; } - if (strEqu(mode,"pause")) { // toggle slide show paused status - ss_paused = 1 - ss_paused; // (spacebar) - if (! ss_paused) { - mode = "next"; // resume immediately v.13.06 - ss_blank = 0; - Fblankwindow = 0; + zd = zdialog_new(ZTX("Image Preferences"),mWin,Bdone,null); + zd_ss_imageprefs = zd; + + zdialog_add_widget(zd,"hbox","hbimf","dialog",0,"space=5"); + zdialog_add_widget(zd,"label","labimf","hbimf",ZTX("Image File:"),"space=3"); + + zdialog_add_widget(zd,"hbox","hbtt","dialog"); + zdialog_add_widget(zd,"check","tone","hbtt",ZTX("Play tone"),"space=3"); + zdialog_add_widget(zd,"label","space","hbtt",0,"space=10"); + zdialog_add_widget(zd,"label","labtr","hbtt",ZTX("Transition"),"space=3"); + zdialog_add_widget(zd,"combo","trans","hbtt",0,"expand"); + zdialog_add_widget(zd,"label","space","hbtt",0,"space=10"); + + zdialog_add_widget(zd,"hbox","hbbzs","dialog"); + zdialog_add_widget(zd,"label","labbzs1","hbbzs",ZTX("+Seconds"),"space=3"); + zdialog_add_widget(zd,"spin","bzsecs","hbbzs","0|999|1|0","space=3"); + zdialog_add_widget(zd,"label","labbzs2","hbbzs",ZTX("before zoom"),"space=3"); + + zdialog_add_widget(zd,"hbox","hbz1","dialog"); + zdialog_add_widget(zd,"label","labz","hbz1",ZTX("Zoom size %"),"space=3"); + zdialog_add_widget(zd,"spin","zoom","hbz1","0|99|1|0","space=3"); + zdialog_add_widget(zd,"label","space","hbz1",0,"space=5"); + zdialog_add_widget(zd,"label","labst","hbz1",ZTX("Steps"),"space=3"); + zdialog_add_widget(zd,"spin","zsteps","hbz1","50|999|1|200"); + + zdialog_add_widget(zd,"hbox","hbz2","dialog",0,"space=5"); + zdialog_add_widget(zd,"label","labcx","hbz2",ZTX("Zoom center"),"space=3"); + zdialog_add_widget(zd,"label","labcx","hbz2",Bwidth,"space=8"); + zdialog_add_widget(zd,"label","cenx","hbz2"," 50 "); + zdialog_add_widget(zd,"label","space","hbz2",0,"space=5"); + zdialog_add_widget(zd,"label","labcy","hbz2",Bheight,"space=8"); + zdialog_add_widget(zd,"label","ceny","hbz2"," 50 "); + + zdialog_add_widget(zd,"hbox","hbazs","dialog"); + zdialog_add_widget(zd,"label","labazs1","hbazs",ZTX("+Seconds"),"space=3"); + zdialog_add_widget(zd,"spin","azsecs","hbazs","0|999|1|0","space=3"); + zdialog_add_widget(zd,"label","labazs2","hbazs",ZTX("after zoom"),"space=3"); + + zdialog_cb_app(zd,"trans",ZTX("next")); // default transition + + for (ii = 0; ii < SSNF; ii++) // add all transitions to dropdown list + zdialog_cb_app(zd,"trans",ss_trantab[ii].tranname); + + if (curr_file) { // set to curr. file + for (ii = 0; ii < ss_Nfiles; ii++) // if member of collection + if (strEqu(curr_file,ss_imagetab[ii].imagefile)) break; + if (ii == ss_Nfiles) ii = 0; + } + else ii = 0; + ss_Fnext = ii; + + pp = strrchr(ss_imagetab[ii].imagefile,'/'); // stuff image file prefs into dialog + if (pp) pp++; + snprintf(imagefile,100,"%s %s",ZTX("Image File:"),pp); + zdialog_stuff(zd,"labimf",imagefile); + + zdialog_stuff(zd,"trans",ss_imagetab[ii].tranname); + zdialog_stuff(zd,"tone",ss_imagetab[ii].Ftone); + zdialog_stuff(zd,"bzsecs",ss_imagetab[ii].bzsecs); + zdialog_stuff(zd,"zoom",ss_imagetab[ii].zoom); + zdialog_stuff(zd,"zsteps",ss_imagetab[ii].zsteps); + zdialog_stuff(zd,"cenx",ss_imagetab[ii].cenx); + zdialog_stuff(zd,"ceny",ss_imagetab[ii].ceny); + zdialog_stuff(zd,"azsecs",ss_imagetab[ii].azsecs); + + zdialog_run(zd,ss_imageprefs_dialog_event); + zdialog_wait(zd); + + zd_ss_imageprefs = 0; + zdialog_free(zd); + + ss_saveprefs(); + return; +} + + +// image prefs dialog event and completion function + +int ss_imageprefs_dialog_event(zdialog *zd, cchar *event) // v.14.04 +{ + int ii, jj; + int addsecs, tone, zoom, zsteps, cenx, ceny; + char tranname[32]; + + ii = ss_Fnext; + if (ii >= ss_Nfiles) return 1; + + if (strEqu(event,"trans")) { + zdialog_fetch(zd,"trans",tranname,32); + if (strNeq(tranname,"next")) { + for (jj = 0; jj < SSNF; jj++) + if (strEqu(tranname,ss_trantab[jj].tranname)) break; + if (jj == SSNF) return 1; } + strncpy0(ss_imagetab[ii].tranname,tranname,32); } - if (ss_escape) { // user pressed escape key - m_slideshow(0,0); // exit slide show - return; + if (strEqu(event,"tone")) { + zdialog_fetch(zd,"tone",tone); + ss_imagetab[ii].Ftone = tone; } - if (strEqu(mode,"timer")) { // timer trigger - if (ss_paused) return; - secs = get_seconds(); - if (secs < ss_timer) return; - mode = "next"; // time for next image - Finstant = 0; + if (strEqu(event,"bzsecs")) { + zdialog_fetch(zd,"bzsecs",addsecs); + ss_imagetab[ii].bzsecs = addsecs; } - else Finstant = 1; // keyboard trigger, instant transition - if (strEqu(mode,"prev")) { // get previous image in list - if (ss_Fnext == 0) ss_Fnext = ss_nsel-1; // wrap from first to last v.13.11 - else ss_Fnext--; + if (strEqu(event,"zoom")) { + zdialog_fetch(zd,"zoom",zoom); + ss_imagetab[ii].zoom = zoom; } - if (strEqu(mode,"next")) { // get next image in list - if (ss_Fnext == ss_nsel-1) ss_Fnext = 0; // wrap from last to first v.13.11 - else ss_Fnext++; + if (strEqu(event,"zsteps")) { + zdialog_fetch(zd,"zsteps",zsteps); + ss_imagetab[ii].zsteps = zsteps; } - if (strEqu(mode,"blank")) { // blank screen + pause v.13.06 - ss_blank = 1 - ss_blank; - if (ss_blank) { - ss_paused = 1; - Fblankwindow = 1; - } - else Fblankwindow = 0; // restore window, leave paused + if (strEqu(event,"cenx")) { + zdialog_fetch(zd,"cenx",cenx); + ss_imagetab[ii].cenx = cenx; } - ss_oldfile = ss_newfile; // old file = new - if (ss_pxbold) g_object_unref(ss_pxbold); - ss_pxbold = ss_pxbnew; // old pixbuf = new - ss_rsold = ss_rsnew; - - ss_newfile = ss_selfiles[ss_Fnext]; // new new file - ss_pxbnew = ss_loadpxb(ss_newfile); // new new pixbuf from new new file - if (! ss_pxbnew) return; - ss_rsnew = gdk_pixbuf_get_rowstride(ss_pxbnew); // row stride - - ss_busy++; - - zmainloop(); // mysterious, necessary - - ss_cr = gdk_cairo_create(gdkWin); // new cairo context + if (strEqu(event,"ceny")) { + zdialog_fetch(zd,"ceny",ceny); + ss_imagetab[ii].ceny = ceny; + } - if (strEqu(mode,"first")) ss_instant(); + if (strEqu(event,"azsecs")) { + zdialog_fetch(zd,"azsecs",addsecs); + ss_imagetab[ii].azsecs = addsecs; + } - else if (Fblankwindow) ss_blankwindow(); + return 1; +} - else { - if (Finstant) ss_instant(); // KB input, do instant transition - else { - ii = ss_nextrans(); // select next transition type - ss_slowdown = ss_Trantab[ii].slowdown; // added delay time during transition - ss_Trantab[ii].func(); // call transition function - } - } - if (Fcaptions) ss_captions(); // show captions/comments on image v.14.02 +// response function for gallery thumbnail left-click - cairo_destroy(ss_cr); +void slideshow_Lclick_func(int Nth) // v.14.04 +{ + zdialog *zd; + int ii; + char *pp, imagefile[100]; + + if (! clicked_file) return; + free(clicked_file); + clicked_file = 0; - secs = get_seconds(); // set time for next image - ss_timer = secs + ss_interval; + zd = zd_ss_imageprefs; + if (! zd) return; - for (ii = 0; ii < ss_npause; ii++) // check if this image must pause v.13.11 - if (strEqu(ss_newfile,ss_pauselist[ii])) break; - if (ii < ss_npause) { // yes, play tone and hold indefinitely - ss_paused = 1; - sprintf(buff,play_tone,slideshow_tone); - shell_quiet(buff); + if (! ss_Nfiles) { + zmessageACK(mWin,0,ZTX("invalid collection")); + return; } - if (zdexifview) m_meta_view_capcomm(0,0); // update metadata view if active v.13.11 - - ss_busy = 0; + ii = Nth; + if (ii >= ss_Nfiles) return; + ss_Fnext = ii; + + ss_imagetab[ii].cenx = clicked_width; // set zoom center from thumbnail + ss_imagetab[ii].ceny = clicked_height; // click position + + pp = strrchr(ss_imagetab[ii].imagefile,'/'); // stuff image file prefs into dialog + if (pp) pp++; + snprintf(imagefile,100,"%s %s",ZTX("Image File:"),pp); + zdialog_stuff(zd,"labimf",imagefile); + zdialog_stuff(zd,"trans",ss_imagetab[ii].tranname); + zdialog_stuff(zd,"tone",ss_imagetab[ii].Ftone); + zdialog_stuff(zd,"bzsecs",ss_imagetab[ii].bzsecs); + zdialog_stuff(zd,"zoom",ss_imagetab[ii].zoom); + zdialog_stuff(zd,"zsteps",ss_imagetab[ii].zsteps); + zdialog_stuff(zd,"cenx",ss_imagetab[ii].cenx); + zdialog_stuff(zd,"ceny",ss_imagetab[ii].ceny); + zdialog_stuff(zd,"azsecs",ss_imagetab[ii].azsecs); + return; } -// select next transision type to use -// mode = sequential: use each enabled transition type in sequence -// mode = random: exclude recently used, choose random from remaining +// Load all data for a specific slide show from a slide show preferences file. +// Set defaults if no data previously defined. -int ss_nextrans() // v.14.01 +void ss_loadprefs() // v.14.04 { - int ii, jj, maxii, maxjj, next; - float maxrank, rank; + FILE *fid; + char buff[maxfcc]; + char prefsfile[300], *pp; + int ii, jj, nn, ftype, format; + char tranname[32]; + int n1, n2, n3, n4, n5, n6, n7; - if (ss_Nused < 5 || ss_Tmode == 0) // few enabled transition types + for (ii = 0; ii < ss_Nfiles; ii++) // free prior image data if any + free(ss_imagetab[ii].imagefile); + + ss_Nfiles = 0; + + fid = fopen(ss_collfile,"r"); // open collection file + if (! fid) { + zmessageACK(mWin,0,ZTX("invalid collection")); + return; + } + + for (ii = 0; ii < SSMAXI; ) { // read all image file names + pp = fgets_trim(buff,maxfcc,fid); + if (! pp) break; + ftype = image_file_type(pp); // screen out deleted image files + if (ftype != 2) continue; + ss_imagetab[ii].imagefile = strdup(pp); // add to image table + ii++; + } + + fclose(fid); + ss_Nfiles = ii; + + if (! ss_Nfiles) { + zmessageACK(mWin,0,ZTX("invalid collection")); + return; + } + + navi::gallerytype = 4; // open gallery with slide show collection + gallery(ss_collfile,"initF"); + gallery(0,"paint",0); + settab("G"); + + ss_secs = 3; // defaults: image display time + ss_cliplim = 0; // image clip limit = no clipping + ss_showcaps = 0; // show captions OFF + strcpy(ss_musicfile,"none"); // music file = NONE + + for (ii = 0; ii < SSNF; ii++) // initialize transitions table + ss_trantab[ii] = ss_trantab_default[ii]; // with default preferences + + for (ii = 0; ii < SSNF; ii++) { + ss_Tused[ii] = ii; // all transition types are used + ss_Tlast[ii] = 0; // last used list is empty + } + + ss_random = 0; // random transitions = NO + ss_Nused = SSNF; // used transitions = all + ss_Tnext = 0; // next = first + + for (ii = 0; ii < ss_Nfiles; ii++) { // initialize image table with + strcpy(ss_imagetab[ii].tranname,"next"); // default preferences + ss_imagetab[ii].Ftone = 0; + ss_imagetab[ii].bzsecs = 0; + ss_imagetab[ii].zoom = 0; + ss_imagetab[ii].zsteps = 200; + ss_imagetab[ii].cenx = 50; + ss_imagetab[ii].ceny = 50; + ss_imagetab[ii].azsecs = 0; + } + + snprintf(prefsfile,300,"%s/%s",slideshow_dirk,ss_collname); + fid = fopen(prefsfile,"r"); // open slide show prefs file + if (! fid) return; + + format = 0; + + while (true) + { + pp = fgets_trim(buff,300,fid,1); + if (! pp) break; + + if (strnEqu(pp,"overall:",8)) { + format = 1; + continue; + } + + if (strnEqu(pp,"transitions:",12)) { + format = 2; + continue; + } + + if (strnEqu(pp,"images:",7)) { + format = 3; + continue; + } + + if (format == 1) // overall preferences + { + nn = sscanf(buff,"%d %d %d %d \"%m[^\"] ",&n1,&n2,&n3,&n4,&pp); + if (nn != 5) goto format_error; + ss_secs = n1; + ss_cliplim = n2; + ss_showcaps = n3; + ss_random = n4; + if (*pp == '/') strncpy0(ss_musicfile,pp,300); + free(pp); + } + + if (format == 2) // transition preferences + { + nn = sscanf(buff,"%31s %d %d %d ",tranname,&n1,&n2,&n3); + if (nn != 4) goto format_error; + for (ii = 0; ii < SSNF; ii++) + if (strEqu(tranname,ss_trantab[ii].tranname)) break; + if (ii == SSNF) goto format_error; + ss_trantab[ii].enabled = n1; + ss_trantab[ii].slowdown = n2; + ss_trantab[ii].preference = n3; + } + + if (format == 3) // image file preferences + { + pp = strrchr(buff,'"'); // rec. 1 = "/.../filename.jpg" + if (pp) *pp = 0; // remove trailing quote + pp = buff+1; // and leading quote + for (ii = 0; ii < ss_Nfiles; ii++) // search collection for matching image + if (strEqu(pp,ss_imagetab[ii].imagefile)) break; + if (ii == ss_Nfiles) { // image not in collection, ignore + fgets_trim(buff,300,fid,1); // discard rec. 2 + continue; // next image + } + + pp = fgets_trim(buff,300,fid,1); // rec. 2 = preferences + if (! pp) goto format_error; + nn = sscanf(buff,"%31s %d %d %d %d %d %d %d ",tranname,&n1,&n2,&n3,&n4,&n5,&n6,&n7); + if (nn != 8) goto format_error; + strncpy0(ss_imagetab[ii].tranname,tranname,32); + ss_imagetab[ii].Ftone = n1; + ss_imagetab[ii].bzsecs = n2; + ss_imagetab[ii].zoom = n3; + ss_imagetab[ii].zsteps = n4; + ss_imagetab[ii].cenx = n5; + ss_imagetab[ii].ceny = n6; + ss_imagetab[ii].azsecs = n7; + } + } + + fclose(fid); + + for (ii = jj = 0; ii < SSNF; ii++) { // initialize list of enabled + if (ss_trantab[ii].enabled) { // transition types + ss_Tused[jj] = ii; + jj++; + } + } + + ss_Nused = jj; // no. enabled transition types + return; + +format_error: + zmessageACK(mWin,0,ZTX("file format error")); + printf("%s \n",buff); + fclose(fid); + return; +} + + +// Save all data for a specific slide show to a slide show preferences file. + +void ss_saveprefs() // v.14.04 +{ + FILE *fid; + char prefsfile[300]; + int ii; + + if (! ss_Nfiles) { + zmessageACK(mWin,0,ZTX("invalid collection")); + return; + } + + snprintf(prefsfile,300,"%s/%s",slideshow_dirk,ss_collname); + fid = fopen(prefsfile,"w"); // open slide show prefs file + if (! fid) { + zmessageACK(mWin,0,strerror(errno)); + return; + } + + fprintf(fid,"overall:\n %d %d %d %d \"%s\" \n", + ss_secs, ss_cliplim, ss_showcaps, ss_random, ss_musicfile); + + fprintf(fid,"transitions:\n"); + + for (ii = 0; ii < SSNF; ii++) // transition1: tranname 1 2 10 + fprintf(fid,"%s %d %d %d \n", ss_trantab[ii].tranname, + ss_trantab[ii].enabled, ss_trantab[ii].slowdown, + ss_trantab[ii].preference); + + fprintf(fid,"images:\n"); + + for (ii = 0; ii < ss_Nfiles; ii++) { + fprintf(fid,"\"%s\"\n",ss_imagetab[ii].imagefile); + fprintf(fid,"%s %d %d %d %d %d %d %d \n", + ss_imagetab[ii].tranname, ss_imagetab[ii].Ftone, + ss_imagetab[ii].bzsecs, + ss_imagetab[ii].zoom, ss_imagetab[ii].zsteps, + ss_imagetab[ii].cenx, ss_imagetab[ii].ceny, + ss_imagetab[ii].azsecs); + } + + fclose(fid); + + return; +} + + +// Show next slide when time is up or user navigates with arrow keys. +// Cycles every 0.1 seconds when slide show is active. + +int ss_timerfunc(void *) // v.14.04 +{ + int ii, jj; + char buff[300]; + + if (checkpend("all")) return 0; // conflict, quit + + if (ss_escape || cTab != tabF) { + if (ss_pxbold) g_object_unref(ss_pxbold); // free memory + if (ss_pxbnew) g_object_unref(ss_pxbnew); + ss_pxbold = ss_pxbnew = 0; + win_unfullscreen(); // restore old window size, menu etc. + Fslideshow = 0; // reset flags + Fblankwindow = 0; + Fblowup = 0; + ss_escape = 0; + m_slideshow(0,0); // return to slide show dialog + return 0; // stop the timer + } + + if (ss_spacebar) { // pause/resume + ss_spacebar = 0; + ss_blank = 0; + if (strEqu(ss_state,"pause")) ss_state = "next"; + else ss_state = "pause"; + ss_timer = get_seconds(); // next image immediately + return 1; + } + + if (ss_Bkey) { // blank/unblank screen + ss_Bkey = 0; + ss_blank = 1 - ss_blank; + if (ss_blank) ss_blankwindow(); + else ss_instant(); + ss_state = "pause"; + return 1; + } + + if (ss_Larrow) { // go back one image + ss_Larrow = 0; + ss_Fnext--; + if (ss_Fnext < 0) ss_Fnext = ss_Nfiles - 1; + + ii = ss_Fnext; + ss_oldfile = ss_newfile; // old file = new + if (ss_pxbold) g_object_unref(ss_pxbold); + ss_pxbold = ss_pxbnew; // old pixbuf = new + ss_rsold = ss_rsnew; + ss_newfile = ss_imagetab[ii].imagefile; // new new file + ss_pxbnew = ss_loadpxb(ss_newfile); // new new pixbuf from new new file + if (! ss_pxbnew) return 0; // failure + ss_rsnew = gdk_pixbuf_get_rowstride(ss_pxbnew); // row stride + + ss_instant(); + ss_blank = 0; + ss_state = "pause"; + return 1; + } + + if (ss_Rarrow) { // go forward one image + ss_Rarrow = 0; + ss_Fnext++; + if (ss_Fnext >= ss_Nfiles) ss_Fnext = 0; + + ii = ss_Fnext; + ss_oldfile = ss_newfile; // old file = new + if (ss_pxbold) g_object_unref(ss_pxbold); + ss_pxbold = ss_pxbnew; // old pixbuf = new + ss_rsold = ss_rsnew; + ss_newfile = ss_imagetab[ii].imagefile; // new new file + ss_pxbnew = ss_loadpxb(ss_newfile); // new new pixbuf from new new file + if (! ss_pxbnew) return 0; // failure + ss_rsnew = gdk_pixbuf_get_rowstride(ss_pxbnew); // row stride + + ss_instant(); + ss_blank = 0; + ss_state = "pause"; + return 1; + } + + if (strEqu(ss_state,"pause")) return 1; // do nothing + + if (strEqu(ss_state,"first")) { // first image + ss_Fnext--; // make next image = same + ss_state = "next"; + ss_timer = get_seconds(); + } + + if (strEqu(ss_state,"next")) // next image (or first) + { + if (get_seconds() < ss_timer) return 1; // wait for my time + + ss_Fnext++; // set next image to show + if (ss_Fnext >= ss_Nfiles) ss_Fnext = 0; + + ii = ss_Fnext; + ss_oldfile = ss_newfile; // old file = new + if (ss_pxbold) g_object_unref(ss_pxbold); + ss_pxbold = ss_pxbnew; // old pixbuf = new + ss_rsold = ss_rsnew; + ss_newfile = ss_imagetab[ii].imagefile; // new new file + ss_pxbnew = ss_loadpxb(ss_newfile); // new new pixbuf from new new file + if (! ss_pxbnew) return 0; // failure + ss_rsnew = gdk_pixbuf_get_rowstride(ss_pxbnew); // row stride + + if (! ss_pxbold) ss_instant(); // no prior image, use instant transition + else { + jj = ss_nextrans(); // select next transition type + ss_slowdown = ss_trantab[jj].slowdown; // set slowdown factor for transition + ss_trantab[jj].func(); // call transition function + } + + if (Fcaptions) ss_captions(); // show captions/comments on image + + if (ss_imagetab[ii].Ftone) { // play tone if specified v.14.04 + snprintf(buff,300,"paplay %s/slideshow-tone.oga",slideshow_dirk); + shell_quiet(buff); + } + + ss_state = "bzwait"; + ss_timer = get_seconds() + ss_imagetab[ii].bzsecs; + return 1; + } + + if (strEqu(ss_state,"bzwait")) { + if (get_seconds() < ss_timer) return 1; // wait for my time + ii = ss_Fnext; + ss_zoom = ss_imagetab[ii].zoom; // zoom % size increase + ss_zsteps = ss_imagetab[ii].zsteps; // zoom steps + ss_cenx = ss_imagetab[ii].cenx; // target location for final center + ss_ceny = ss_imagetab[ii].ceny; // (0-100% of image, 50/50 = middle) + if (ss_zoom) ss_zoomin(); + ss_state = "azwait"; + ss_timer = get_seconds() + ss_imagetab[ii].azsecs; + return 1; + } + + if (strEqu(ss_state,"azwait")) { + if (get_seconds() < ss_timer) return 1; // wait for my time + ss_state = "sswait"; + ss_timer = get_seconds() + ss_secs; + return 1; + } + + if (strEqu(ss_state,"sswait")) { + if (get_seconds() < ss_timer) return 1; // wait for my time + ss_state = "next"; + return 1; + } + + return 1; +} + + +// select next transision type to use +// mode = sequential: use each enabled transition type in sequence +// mode = random: exclude recently used, choose random from remaining + +int ss_nextrans() +{ + int ii, jj, maxii, maxjj, next; + float maxrank, rank; + + ii = ss_Fnext; + if (strNeq(ss_imagetab[ii].tranname,"next")) { // image transition not "next" + for (jj = 0; jj < SSNF; jj++) + if (strEqu(ss_trantab[jj].tranname,ss_imagetab[ii].tranname)) break; + if (jj < SSNF) { + next = jj; // assigned transition type + for (ii = ss_Nused - 1; ii > 0; ii--) // >> most recently used + ss_Tlast[ii] = ss_Tlast[ii-1]; + ss_Tlast[0] = next; + return next; + } + } + + if (ss_Nused < 5 || ss_random == 0) // few enabled transition types { // or sequential mode ss_Tnext++; if (ss_Tnext == ss_Nused) ss_Tnext = 0; // select transition types sequentially next = ss_Tused[ss_Tnext]; } - else // select transition types randomly v.14.03 + else // select transition types randomly { maxrank = 0; maxii = 0; @@ -3421,7 +3631,7 @@ if (ss_Tused[ii] == ss_Tlast[jj]) break; if (jj < maxjj) continue; jj = ss_Tused[ii]; - rank = ss_Trantab[jj].preference * drandz(); // rank = preference * random value + rank = ss_trantab[jj].preference * drandz(); // rank = preference * random value if (rank > maxrank) { maxrank = rank; // remember highest rank maxii = ii; @@ -3480,6 +3690,8 @@ pango_layout_set_text(pangolayout,text,-1); // add text to layout pango_layout_get_pixel_size(pangolayout,&ww,&hh); + ss_cr = gdk_cairo_create(gdkWin); + cairo_set_line_width(ss_cr,1); cairo_set_source_rgb(ss_cr,1,1,1); // draw white background cairo_rectangle(ss_cr,10,10,ww,hh); @@ -3489,6 +3701,7 @@ cairo_set_source_rgb(ss_cr,0,0,0); pango_cairo_show_layout(ss_cr,pangolayout); + cairo_destroy(ss_cr); return; } @@ -3500,77 +3713,80 @@ GdkPixbuf * ss_loadpxb(char *file) // v.14.02 { GdkPixbuf *pxbin, *pxbtemp, *pxbout; - int fww, fhh, cc; + int ww1, hh1, ww2, hh2, cc; int Iorgx, Iorgy, Worgx, Worgy; - float Rimage, Rwindow, Rdelta; + float Rm, Rw, dR; int px, py, px1, py1, px2, py2; uint8 *pixels1, *pixels2, *pix1, *pix2; int rs1, rs2, nch1; GError *gerror = 0; - + pxbin = gdk_pixbuf_new_from_file(file,&gerror); // load image file into pixbuf if (! pxbin) { zmessageACK(mWin,0,"%s",gerror->message); return 0; } - fww = gdk_pixbuf_get_width(pxbin); // image dimensions - fhh = gdk_pixbuf_get_height(pxbin); + ww1 = gdk_pixbuf_get_width(pxbin); // image dimensions + hh1 = gdk_pixbuf_get_height(pxbin); + + ww2 = ss_ww; // window dimensions + hh2 = ss_hh; - Rimage = 1.0 * fww / fhh; // image width/height ratio - Rwindow = 1.0 * ss_ww / ss_hh; // window width/height ratio - Rdelta = fabsf(Rimage - Rwindow) / Rwindow; // discrepancy ratio - - if (Rdelta <= 0.01 * ss_cliplimit) { // discrepancy within user limit - if (Rwindow >= Rimage) { - fww = ss_ww; // height will be clipped - fhh = fww / Rimage; + Rm = 1.0 * ww1 / hh1; // image width/height ratio + Rw = 1.0 * ww2 / hh2; // window width/height ratio + dR = fabsf(Rm - Rw) / Rw; // discrepancy ratio + + if (dR <= 0.01 * ss_cliplim) { // discrepancy within user limit + if (Rw >= Rm) { + ww1 = ww2; // height will be clipped + hh1 = ww1 / Rm; } else { - fhh = ss_hh; // width will be clipped - fww = fhh * Rimage; + hh1 = hh2; // width will be clipped + ww1 = hh1 * Rm; } } else { // discrepancy too great - if (Rwindow >= Rimage) { - fhh = ss_hh; // ratio image to fit in window - fww = fhh * Rimage; + if (Rw >= Rm) { + hh1 = hh2; // ratio image to fit in window + ww1 = hh1 * Rm; } else { - fww = ss_ww; - fhh = fww / Rimage; + ww1 = ww2; + hh1 = ww1 / Rm; } } - pxbtemp = gdk_pixbuf_scale_simple(pxbin,fww,fhh,BILINEAR); // rescale image + pxbtemp = gdk_pixbuf_scale_simple(pxbin,ww1,hh1,BILINEAR); // rescale image g_object_unref(pxbin); - Iorgx = (fww - ss_ww) / 2.0; // top left corner of image to copy from + Iorgx = (ww1 - ww2) / 2.0; // top left corner of image to copy from if (Iorgx < 0) Iorgx = 0; - Iorgy = (fhh - ss_hh) / 2.0; + Iorgy = (hh1 - hh2) / 2.0; if (Iorgy < 0) Iorgy = 0; - Worgx = (ss_ww - fww) / 2.0; // top left corner of window to copy to + Worgx = (ww2 - ww1) / 2.0; // top left corner of window to copy to if (Worgx < 0) Worgx = 0; - Worgy = (ss_hh - fhh) / 2.0; + Worgy = (hh2 - hh1) / 2.0; if (Worgy < 0) Worgy = 0; - if (ss_ww < fww) fww = ss_ww; // copy width - if (ss_hh < fhh) fhh = ss_hh; // copy height + if (ww2 < ww1) ww1 = ww2; // copy width + if (hh2 < hh1) hh1 = hh2; // copy height pixels1 = gdk_pixbuf_get_pixels(pxbtemp); // input pixels location rs1 = gdk_pixbuf_get_rowstride(pxbtemp); // row stride nch1 = gdk_pixbuf_get_n_channels(pxbtemp); // colors (1 or 3 channels) - pxbout = gdk_pixbuf_new(GDKRGB,0,8,ss_ww,ss_hh); // create output pixbuf = window size + pxbout = gdk_pixbuf_new(GDKRGB,0,8,ww2,hh2); // create output pixbuf = window size pixels2 = gdk_pixbuf_get_pixels(pxbout); // pixels location rs2 = gdk_pixbuf_get_rowstride(pxbout); // row stride - cc = rs2 * ss_hh; // clear output pixels black + cc = rs2 * hh2; // clear output pixels black memset(pixels2,0,cc); - for (py = 0; py < fhh; py++) // copy image to output pixmap - for (px = 0; px < fww; px++) // and center the image + for (py = 0; py < hh1; py++) // copy image to output pixmap + for (px = 0; px < ww1; px++) // and center the image { px1 = px + Iorgx; py1 = py + Iorgy; @@ -3592,55 +3808,27 @@ } -// extract base name from image file name -// base name is file name without directory, version, extension - -char * ss_basename(char *file) -{ - char *pp1, *pp2, *pp3; - - pp1 = strrchr(file,'/'); // skip over directory if present - if (pp1) file = pp1 + 1; - pp1 = strdup(file); - pp2 = strrchr(pp1,'.'); // look for .ext - if (! pp2) return pp1; - *pp2 = 0; // strip it off - pp3 = pp2 - 4; - if (! strnEqu(pp3,".v",2)) return pp1; // look for version .v00 to .v99 - if (pp3[2] < '0' || pp3[2] > '9') return pp1; - if (pp3[3] < '0' || pp3[3] > '9') return pp1; - *pp3 = 0; // strip it off - return pp1; -} - - // write black to entire window void ss_blankwindow() -{ +{ + ss_cr = gdk_cairo_create(gdkWin); gdk_cairo_set_source_rgba(ss_cr,&GDKblack); cairo_paint(ss_cr); + cairo_destroy(ss_cr); gdk_flush(); return; } -// test for escape key and kill current transition now - -int ss_kill() // v.14.03 -{ - zmainloop(); - if (ss_escape) return 1; - return 0; -} - - // instant transition (also used for keyboard arrow keys) void ss_instant() -{ +{ + ss_cr = gdk_cairo_create(gdkWin); gdk_cairo_set_source_pixbuf(ss_cr,ss_pxbnew,0,0); cairo_paint(ss_cr); + cairo_destroy(ss_cr); gdk_flush(); return; } @@ -3656,6 +3844,7 @@ uint8 *pixels1, *pixels2, *pixels3; uint8 *pix1, *pix2, *pix3; + ss_cr = gdk_cairo_create(gdkWin); pxbmix = gdk_pixbuf_copy(ss_pxbold); rs = gdk_pixbuf_get_rowstride(pxbmix); @@ -3666,8 +3855,6 @@ iinc = 10.0 / (1 + ss_slowdown / 2.0); // slowdown factor v.14.01 if (iinc < 1) iinc = 1; - if (ss_fadefast) iinc = 10; // v.14.03 - for (ii = 0; ii <= 100; ii += iinc) { newpart = 0.01 * ii; @@ -3691,10 +3878,10 @@ cairo_paint(ss_cr); gdk_flush(); // avoid jerky output (Ubuntu 13.04) v.13.05 } - if (ss_kill()) break; // v.14.03 } g_object_unref(pxbmix); + cairo_destroy(ss_cr); return; } @@ -3708,6 +3895,7 @@ float delay = 1.0 * ss_slowdown / ss_ww; // v.14.01 uint8 *pixels, *pix3; + ss_cr = gdk_cairo_create(gdkWin); pixels = gdk_pixbuf_get_pixels(ss_pxbnew); for (px = 0; px < ss_ww-4; px += 4) // 4-wide v.13.09 @@ -3719,9 +3907,9 @@ g_object_unref(pixbuf); gdk_flush(); // avoid jerky output (Ubuntu 13.04) v.13.05 zsleep(delay); - if (ss_kill()) break; // v.14.03 } + cairo_destroy(ss_cr); return; } @@ -3735,6 +3923,7 @@ float delay = 1.0 * ss_slowdown / ss_hh; // v.14.01 uint8 *pixels, *pix3; + ss_cr = gdk_cairo_create(gdkWin); pixels = gdk_pixbuf_get_pixels(ss_pxbnew); for (py = 0; py < ss_hh-2; py += 4) // 4-deep v.13.09 @@ -3746,9 +3935,9 @@ g_object_unref(pixbuf); gdk_flush(); // avoid jerky output (Ubuntu 13.04) v.13.05 zsleep(delay); - if (ss_kill()) break; // v.14.03 } + cairo_destroy(ss_cr); return; } @@ -3764,6 +3953,7 @@ int louversize = ss_hh / Nlouvers; float delay = 1.0 / louversize * (1 + ss_slowdown / 2.0); // v.14.01 + ss_cr = gdk_cairo_create(gdkWin); pixels = gdk_pixbuf_get_pixels(ss_pxbnew); for (py1 = 0; py1 < louversize; py1++) // y-row within each louver @@ -3781,9 +3971,9 @@ gdk_flush(); // avoid jerky output (Ubuntu 13.04) v.13.05 zsleep(delay); - if (ss_kill()) break; // v.14.03 } + cairo_destroy(ss_cr); return; } @@ -3799,6 +3989,7 @@ int boxww, boxhh; float delay; + ss_cr = gdk_cairo_create(gdkWin); pixels = gdk_pixbuf_get_pixels(ss_pxbnew); Ncol = 20; // 20 columns @@ -3836,9 +4027,9 @@ gdk_flush(); // avoid jerky output (Ubuntu 13.04) v.13.05 zsleep(delay); - if (ss_kill()) break; // v.14.03 } + cairo_destroy(ss_cr); return; } @@ -3854,6 +4045,7 @@ int step, Nsteps = 200; float delay = 1.0 / Nsteps * (1 + ss_slowdown / 2.0); // v.14.01 + ss_cr = gdk_cairo_create(gdkWin); pixels = gdk_pixbuf_get_pixels(ss_pxbnew); for (step = 1; step < Nsteps; step++) @@ -3896,68 +4088,11 @@ gdk_flush(); // avoid jerky output (Ubuntu 13.04) v.13.05 zsleep(delay); - if (ss_kill()) break; // v.14.03 } gdk_cairo_set_source_pixbuf(ss_cr,ss_pxbnew,0,0); // v.14.03 cairo_paint(ss_cr); - - return; -} - - -// An ellipse opens up from the center and expands outward - -void ss_ellipse() -{ - GdkPixbuf *pixbuf; - uint8 *pixels, *pix3; - int step, Nsteps = 100; - int px1, py1, ww; - float delay = 0.1 / Nsteps; - float a, b, a2, b2, px, py, px2, py2; - float ww2 = ss_ww / 2, hh2 = ss_hh / 2; - - delay = delay * (1 + ss_slowdown / 4.0); // v.14.01 - - pixels = gdk_pixbuf_get_pixels(ss_pxbnew); - - for (step = 1; step < 1.4 * Nsteps; step++) - { - a = ww2 * step / Nsteps; // ellipse a and b constants - b = a * ss_hh / ss_ww; // from tiny to >> image size - a2 = a * a; - b2 = b * b; - - for (py = -b; py <= +b; py += 3) // py from top of ellipse to bottom - { - while (py < -(hh2-2)) py += 3; - if (py > hh2-2) break; - py2 = py * py; - px2 = a2 * (1.0 - py2 / b2); // corresponding px value, - px = sqrt(px2); // (+/- from center of ellipse) - if (px > ww2) px = ww2; - ww = 2 * px; // length of line thru ellipse - if (ww < 2) continue; - px1 = ww2 - px; // relocate origin - py1 = py + hh2; - if (px1 + ww > ss_ww) px1 = ss_ww - ww; // insurance - if (py1 + 3 > ss_hh) py1 = ss_hh - 3; - pix3 = pixels + py1 * ss_rsnew + px1 * 3; - pixbuf = gdk_pixbuf_new_from_data(pix3,GDKRGB,0,8,ww,3,ss_rsnew,0,0); - gdk_cairo_set_source_pixbuf(ss_cr,pixbuf,px1,py1); - cairo_paint(ss_cr); - g_object_unref(pixbuf); - } - - gdk_flush(); // avoid jerky output (Ubuntu 13.04) v.13.05 - zsleep(delay); - if (ss_kill()) break; // v.14.03 - } - - gdk_cairo_set_source_pixbuf(ss_cr,ss_pxbnew,0,0); // v.14.03 - cairo_paint(ss_cr); - + cairo_destroy(ss_cr); return; } @@ -3967,20 +4102,21 @@ void ss_radar() { GdkPixbuf *pixbuf; - int px = 0, py = 0, Npx, Npy, Np = 12; // smaller values make compiz jerky + int px = 0, py = 0, Npx, Npy, Np = 10; float R, Rmax, T, Tmax, dT, delay; float cosT, sinT; float ww2 = ss_ww / 2, hh2 = ss_hh / 2; uint8 *pixels, *pix3; + ss_cr = gdk_cairo_create(gdkWin); pixels = gdk_pixbuf_get_pixels(ss_pxbnew); Rmax = sqrt(ww2 * ww2 + hh2 * hh2); - Tmax = pi; + Tmax = PI; dT = 0.6 * asinf(Np / Rmax); delay = 0.001 * (ss_slowdown / 2.0); // v.14.01 - for (T = 0; T < Tmax; T += dT) + for (T = 0; T < Tmax + dT; T += dT) { cosT = cosf(T); sinT = sinf(T); @@ -4007,9 +4143,9 @@ } zsleep(delay); - if (ss_kill()) break; // v.14.03 } + cairo_destroy(ss_cr); return; } @@ -4024,6 +4160,7 @@ int ii, px, py, ww, ww2; uint8 *pixels, *pix3; + ss_cr = gdk_cairo_create(gdkWin); pixels = gdk_pixbuf_get_pixels(ss_pxbnew); twidth = ss_ww / nteeth; @@ -4076,13 +4213,67 @@ } } } - - if (ss_kill()) break; // v.14.03 } gdk_cairo_set_source_pixbuf(ss_cr,ss_pxbnew,0,0); // v.14.03 cairo_paint(ss_cr); + cairo_destroy(ss_cr); + return; +} + + +// An ellipse opens up from the center and expands outward + +void ss_ellipse() +{ + GdkPixbuf *pixbuf; + uint8 *pixels, *pix3; + int step, Nsteps = 100; + int px1, py1, ww; + float delay = 0.1 / Nsteps; + float a, b, a2, b2, px, py, px2, py2; + float ww2 = ss_ww / 2, hh2 = ss_hh / 2; + + delay = delay * (1 + ss_slowdown / 4.0); // v.14.01 + ss_cr = gdk_cairo_create(gdkWin); + pixels = gdk_pixbuf_get_pixels(ss_pxbnew); + + for (step = 1; step < 1.4 * Nsteps; step++) + { + a = ww2 * step / Nsteps; // ellipse a and b constants + b = a * ss_hh / ss_ww; // from tiny to >> image size + a2 = a * a; + b2 = b * b; + + for (py = -b; py <= +b; py += 3) // py from top of ellipse to bottom + { + while (py < -(hh2-2)) py += 3; + if (py > hh2-2) break; + py2 = py * py; + px2 = a2 * (1.0 - py2 / b2); // corresponding px value, + px = sqrt(px2); // (+/- from center of ellipse) + if (px > ww2) px = ww2; + ww = 2 * px; // length of line thru ellipse + if (ww < 2) continue; + px1 = ww2 - px; // relocate origin + py1 = py + hh2; + if (px1 + ww > ss_ww) px1 = ss_ww - ww; // insurance + if (py1 + 3 > ss_hh) py1 = ss_hh - 3; + pix3 = pixels + py1 * ss_rsnew + px1 * 3; + pixbuf = gdk_pixbuf_new_from_data(pix3,GDKRGB,0,8,ww,3,ss_rsnew,0,0); + gdk_cairo_set_source_pixbuf(ss_cr,pixbuf,px1,py1); + cairo_paint(ss_cr); + g_object_unref(pixbuf); + } + + gdk_flush(); // avoid jerky output (Ubuntu 13.04) v.13.05 + zsleep(delay); + } + + gdk_cairo_set_source_pixbuf(ss_cr,ss_pxbnew,0,0); // v.14.03 + cairo_paint(ss_cr); + cairo_destroy(ss_cr); return; } @@ -4099,6 +4290,7 @@ uint8 *pix2, *pix3 = 0; float dtime; + ss_cr = gdk_cairo_create(gdkWin); pixels2 = gdk_pixbuf_get_pixels(ss_pxbnew); // source image pxbmix = gdk_pixbuf_new(GDKRGB,0,8,ss_ww,ss_hh); // destination image @@ -4148,14 +4340,13 @@ dtime = dtime * (1.0 + ss_slowdown); // v.14.01 zsleep(dtime); gdk_flush(); - if (ss_kill()) break; // v.14.03 } gdk_cairo_set_source_pixbuf(ss_cr,ss_pxbnew,0,0); // fill bits that are still missing v.14.02 cairo_paint(ss_cr); - gdk_flush(); - g_object_unref(pxbmix); + cairo_destroy(ss_cr); + gdk_flush(); return; } @@ -4174,6 +4365,7 @@ delay = delay * (1 + ss_slowdown / 2.0); // v.14.01 + ss_cr = gdk_cairo_create(gdkWin); pixels = gdk_pixbuf_get_pixels(ss_pxbnew); for (bx = 0; bx < ss_ww/2; bx++) // bx = 0 ... ww/2 @@ -4194,9 +4386,9 @@ gdk_flush(); zsleep(delay); - if (ss_kill()) break; // v.14.03 } + cairo_destroy(ss_cr); return; } @@ -4220,8 +4412,8 @@ GdkPixbuf *pxbmix; float R, step, stepx = 1, Nsteps = 40; int ii; - - Nsteps = Nsteps * (1.0 + ss_slowdown / 2.0); + + ss_cr = gdk_cairo_create(gdkWin); pixels1 = gdk_pixbuf_get_pixels(ss_pxbold); // source images pixels2 = gdk_pixbuf_get_pixels(ss_pxbnew); @@ -4230,6 +4422,8 @@ rsmix = gdk_pixbuf_get_rowstride(pxbmix); pixels3 = gdk_pixbuf_get_pixels(pxbmix); + Nsteps = Nsteps * (1.0 + ss_slowdown / 2.0); + for (step = 0; step < Nsteps; step += stepx) { R = 1.0 * step / Nsteps; @@ -4254,18 +4448,12 @@ start_detached_thread(ss_rotate_thread1,&Nval[ii]); } - while (true) - { - for (ii = 0; ii < Nwt; ii++) - if (tbusy[ii]) break; - if (ii == Nwt) break; - zsleep(0.001); - } + for (ii = 0; ii < Nwt; ii++) + while(tbusy[ii]) zsleep(0.001); gdk_cairo_set_source_pixbuf(ss_cr,pxbmix,0,0); cairo_paint(ss_cr); gdk_flush(); - if (ss_kill()) break; // v.14.03 } for (step = 0; step < Nsteps; step += stepx) @@ -4292,21 +4480,16 @@ start_detached_thread(ss_rotate_thread2,&Nval[ii]); } - while (true) - { - for (ii = 0; ii < Nwt; ii++) - if (tbusy[ii]) break; - if (ii == Nwt) break; - zsleep(0.001); - } + for (ii = 0; ii < Nwt; ii++) + while(tbusy[ii]) zsleep(0.001); gdk_cairo_set_source_pixbuf(ss_cr,pxbmix,0,0); cairo_paint(ss_cr); gdk_flush(); - if (ss_kill()) break; // v.14.03 } g_object_unref(pxbmix); + cairo_destroy(ss_cr); return; } @@ -4383,54 +4566,170 @@ // slowly zoom-in on the image (Ken Burns effect) -void ss_kenburns() // v.14.03 +void ss_zoomin() // v.14.04 { - ss_fadefast = 1; // rapid fade-in - ss_fadein(); - ss_fadefast = 0; + float zoom = 0.01 * ss_zoom; // zoom %, 0.0 to 1.0 = 2x + float cx = 0.01 * ss_cenx; // zoom target, 0.5/0.5 = image midpoint + float cy = 0.01 * ss_ceny; + float nn, Nsteps = ss_zsteps; GdkPixbuf *pxb1, *pxb2, *pxb3; - int nn, ww1, hh1, ww2, hh2, px2, py2; - int step = 5 - ss_slowdown; // compromise speed and smoothness + GError *gerror = 0; + float Rm, Rw, dR; + int ww1, hh1, ww2, hh2, ww3, hh3; + int px1, py1, px2, py2, px3, py3; + int px4, py4, px5, py5; + int Iorgx, Iorgy, Worgx, Worgy; + int rs1, nch1, rs2, cc; + uint8 *pixs1, *pixs2, *pix1, *pix2; + + pxb1 = gdk_pixbuf_new_from_file(ss_newfile,&gerror); + if (! pxb1) { + zmessageACK(mWin,0,gerror->message); + return; + } - if (step < 1) step = 1; - pxb1 = ss_pxbnew; - if (! pxb1) return; - ww1 = gdk_pixbuf_get_width(pxb1); + ww1 = gdk_pixbuf_get_width(pxb1); // image dimensions hh1 = gdk_pixbuf_get_height(pxb1); - for (nn = 0; nn < 0.15 * ww1; nn += step) + ww2 = ss_ww; // window dimensions + hh2 = ss_hh; + +/*** + ww1 = ww1 * (1 + 0.5 * zoom); ///////////// causes dual-speed gdk_pixbuf_scale_simple() + hh1 = hh1 * (1 + 0.5 * zoom); + ww2 = ww2 * (1 + 0.5 * zoom); + hh2 = hh2 * (1 + 0.5 * zoom); +***/ + + Rm = 1.0 * ww1 / hh1; // image width/height ratio + Rw = 1.0 * ww2 / hh2; // window width/height ratio + dR = fabsf(Rm - Rw) / Rw; // discrepancy ratio + + if (dR <= 0.01 * ss_cliplim) { // discrepancy is within user limit + if (Rw >= Rm) { + ww1 = ww2; // width fits window + hh1 = ww1 / Rm; // height will be more + } + else { + hh1 = hh2; // height fits window + ww1 = hh1 * Rm; // width will be more + } + } + else { // discrepancy is too great + if (Rw >= Rm) { + hh1 = hh2; // height fits window + ww1 = hh1 * Rm; // width will be less + } + else { + ww1 = ww2; // width fits window + hh1 = ww1 / Rm; // height will be less + } + } + + cx = cx * ww1; // zoom center target position + cy = cy * hh1; + + pxb2 = gdk_pixbuf_scale_simple(pxb1,ww1,hh1,BILINEAR); // rescaled image + g_object_unref(pxb1); + pxb1 = pxb2; + + Iorgx = (ww1 - ww2) / 2.0; // top left corner of image to copy from + if (Iorgx < 0) Iorgx = 0; + Iorgy = (hh1 - hh2) / 2.0; + if (Iorgy < 0) Iorgy = 0; + + Worgx = (ww2 - ww1) / 2.0; // top left corner of image to copy to + if (Worgx < 0) Worgx = 0; + Worgy = (hh2 - hh1) / 2.0; + if (Worgy < 0) Worgy = 0; + + if (ww2 < ww1) ww1 = ww2; // copy width + if (hh2 < hh1) hh1 = hh2; // copy height + + pixs1 = gdk_pixbuf_get_pixels(pxb1); // input pixels location + rs1 = gdk_pixbuf_get_rowstride(pxb1); // row stride + nch1 = gdk_pixbuf_get_n_channels(pxb1); // colors (1 or 3 channels) + + pxb2 = gdk_pixbuf_new(GDKRGB,0,8,ww2,hh2); // output pixbuf matching window w/h + pixs2 = gdk_pixbuf_get_pixels(pxb2); // pixels location + rs2 = gdk_pixbuf_get_rowstride(pxb2); // row stride + + cc = rs2 * hh2; // clear output image black + memset(pixs2,0,cc); + + for (int py = 0; py < hh1; py++) // copy input image to output image + for (int px = 0; px < ww1; px++) // and center the image { - ww2 = ww1 - nn - nn - 1; - hh2 = ww2 * hh1 / ww1 - 1; - px2 = (ww1 - ww2) / 2; - py2 = (hh1 - hh2) / 2; - pxb2 = gdk_pixbuf_new_subpixbuf(pxb1,px2,py2,ww2,hh2); // increasingly smaller part of new image - if (! pxb2) return; + px1 = px + Iorgx; + py1 = py + Iorgy; + px2 = px + Worgx; + py2 = py + Worgy; + pix1 = pixs1 + py1 * rs1 + px1 * nch1; + pix2 = pixs2 + py2 * rs2 + px2 * 3; + if (nch1 > 2) { + pix2[0] = pix1[0]; + pix2[1] = pix1[1]; + pix2[2] = pix1[2]; + } + else pix2[0] = pix2[1] = pix2[2] = pix1[0]; + } + + g_object_unref(pxb1); // pxb1 = input image, clipped + pxb1 = pxb2; // or with added margins + + ww1 = ww2; // input image size = window size + hh1 = hh2; + + ww2 = ww2 / (1.0 + zoom); // final zoomed image size + hh2 = hh2 / (1.0 + zoom); // (will expand to window size) + + cx = cx - Iorgx + Worgx; // zoom target center, adjusted + cy = cy - Iorgy + Worgy; // for clipping and margins + + px2 = cx - ww2/2; // upper left corner of final + py2 = cy - hh2/2; // image segment to display + + if (px2 + ww2 > ww1) px2 = ww1 - ww2; // shift final image segment + if (px2 < 0) px2 = 0; // to stay within image bounds + if (py2 + hh2 > hh1) py2 = hh1 - hh2; + if (py2 < 0) py2 = 0; + + px4 = px2 + ww2; // lower right corner of + py4 = py2 + hh2; // final image segment + + ss_cr = gdk_cairo_create(gdkWin); + + for (nn = 0; nn < Nsteps; nn++) // loop reducing image segment + { + px3 = px2 * nn / Nsteps; // px3/py3 from 0/0 to px2/py2 + py3 = py2 * nn / Nsteps; + px5 = ww1 - (ww1 - px4) * nn / Nsteps; // px5/py5 from ww1/hh1 to px4/py4 + py5 = hh1 - (hh1 - py4) * nn / Nsteps; + ww3 = px5 - px3; // ww3/hh3 from ww1/hh1 to ww2/hh2 + hh3 = py5 - py3; + + pxb2 = gdk_pixbuf_new_subpixbuf(pxb1,px3,py3,ww3,hh3); // smaller image segment to display pxb3 = gdk_pixbuf_scale_simple(pxb2,ss_ww,ss_hh,BILINEAR); // scale up to window size - if (! pxb3) return; + gdk_cairo_set_source_pixbuf(ss_cr,pxb3,0,0); // paint cairo_paint(ss_cr); gdk_flush(); - g_object_unref(pxb2); - g_object_unref(pxb3); - if (ss_kill()) break; // v.14.03 - } - - pxb1 = ss_pxbnew; // replace new image with final - nn = 0.15 * ww1; // zoomed version - ww2 = ww1 - nn - nn - 1; - hh2 = ww2 * hh1 / ww1 - 1; - px2 = (ww1 - ww2) / 2; - py2 = (hh1 - hh2) / 2; - pxb2 = gdk_pixbuf_new_subpixbuf(pxb1,px2,py2,ww2,hh2); - if (! pxb2) return; - pxb3 = gdk_pixbuf_scale_simple(pxb2,ss_ww,ss_hh,BILINEAR); - if (! pxb3) return; - ss_pxbnew = pxb3; - g_object_unref(pxb1); - g_object_unref(pxb2); + + if (nn + 1 < Nsteps) { // not done yet + g_object_unref(pxb2); + g_object_unref(pxb3); + continue; + } + + g_object_unref(ss_pxbnew); + ss_pxbnew = pxb3; // retain final zoomed image + g_object_unref(pxb2); // for next transition + g_object_unref(pxb1); + break; + } + cairo_destroy(ss_cr); return; } @@ -4728,12 +5027,12 @@ if (delinput) { // delete input file remove(infile); - delete_search_index(infile); // remove from search index + delete_image_index(infile); // remove from image index } if (! err) { - load_filemeta(outfile); // update search index for output file - update_search_index(outfile); + load_filemeta(outfile); // update image index for output file + update_image_index(outfile); } free(outfile); @@ -5083,7 +5382,7 @@ exif_copy(rawfile,outfile,0,0,0); // copy metadata from RAW file v.13.02 load_filemeta(outfile); - update_search_index(outfile); + update_image_index(outfile); write_popup_text("write",outfile); // write output file to log window free(outfile); @@ -5285,82 +5584,91 @@ // create or update brightness histogram graph -int winhistoRGBW[4] = { 0, 0, 0, 1 }; -GtkWidget *winhistoH = 0, *winhistoB = 0; +namespace brdist_names +{ + GtkWidget *drawwin_dist, *drawwin_scale; // brightness distribution graph widgets + int RGBW[4] = { 0, 0, 0, 1 }; // " colors: red/green/blue/white (all) +} + -void m_histogram(GtkWidget *, cchar *menu) // menu function v.13.02 +// menu function + +void m_brdist(GtkWidget *, cchar *menu) // menu function v.13.02 { - int histogram_dialog_event(zdialog *zd, cchar *event); - void histogram_draw(GtkWidget *drawin, cairo_t *cr, int); + using namespace brdist_names; + + int brdist_dialog_event(zdialog *zd, cchar *event); - GtkWidget *frH, *frB; + GtkWidget *frdist, *frscale; zdialog *zd; if (! Fpxb) return; if (menu && strEqu(menu,"kill")) { // v.13.05 - if (zdhistogram) zdialog_destroy(zdhistogram); - zdhistogram = 0; + if (zdbrdist) zdialog_destroy(zdbrdist); + zdbrdist = 0; return; } - if (zdhistogram) { // dialog already present - gtk_widget_queue_draw(winhistoH); // refresh drawing windows + if (zdbrdist) { // dialog already present + gtk_widget_queue_draw(drawwin_dist); // refresh drawing windows return; } - if (menu) F1_help_topic = "brightness_histogram"; + if (menu) F1_help_topic = "brdist"; zd = zdialog_new(ZTX("Brightness Distribution"),mWin,null); - zdialog_add_widget(zd,"frame","frH","dialog"); // frames for 2 drawing areas - zdialog_add_widget(zd,"frame","frB","dialog"); - frH = zdialog_widget(zd,"frH"); - frB = zdialog_widget(zd,"frB"); - - winhistoH = gtk_drawing_area_new(); // histogram drawing area - gtk_container_add(GTK_CONTAINER(frH),winhistoH); - gtk_widget_set_size_request(winhistoH,300,200); - G_SIGNAL(winhistoH,"draw",histogram_draw,0); - - winhistoB = gtk_drawing_area_new(); // brightness scale under histogram - gtk_container_add(GTK_CONTAINER(frB),winhistoB); - gtk_widget_set_size_request(winhistoB,300,12); - G_SIGNAL(winhistoB,"draw",draw_brightscale,0); + zdialog_add_widget(zd,"frame","frdist","dialog",0,"expand"); // frames for 2 drawing areas + zdialog_add_widget(zd,"frame","frscale","dialog"); + frdist = zdialog_widget(zd,"frdist"); + frscale = zdialog_widget(zd,"frscale"); + + drawwin_dist = gtk_drawing_area_new(); // histogram drawing area + gtk_container_add(GTK_CONTAINER(frdist),drawwin_dist); + G_SIGNAL(drawwin_dist,"draw",brdist_drawgraph,RGBW); + + drawwin_scale = gtk_drawing_area_new(); // brightness scale under histogram + gtk_container_add(GTK_CONTAINER(frscale),drawwin_scale); + gtk_widget_set_size_request(drawwin_scale,300,12); + G_SIGNAL(drawwin_scale,"draw",brdist_drawscale,0); zdialog_add_widget(zd,"hbox","hbcolors","dialog"); + zdialog_add_widget(zd,"check","all","hbcolors",Ball,"space=5"); zdialog_add_widget(zd,"check","red","hbcolors",Bred,"space=5"); zdialog_add_widget(zd,"check","green","hbcolors",Bgreen,"space=5"); zdialog_add_widget(zd,"check","blue","hbcolors",Bblue,"space=5"); - zdialog_add_widget(zd,"check","white","hbcolors",Bwhite,"space=5"); - zdialog_stuff(zd,"red",winhistoRGBW[0]); - zdialog_stuff(zd,"green",winhistoRGBW[1]); - zdialog_stuff(zd,"blue",winhistoRGBW[2]); - zdialog_stuff(zd,"white",winhistoRGBW[3]); + zdialog_stuff(zd,"red",RGBW[0]); + zdialog_stuff(zd,"green",RGBW[1]); + zdialog_stuff(zd,"blue",RGBW[2]); + zdialog_stuff(zd,"all",RGBW[3]); - zdialog_run(zd,histogram_dialog_event,"save"); + zdialog_resize(zd,300,250); + zdialog_run(zd,brdist_dialog_event,"save"); - zdhistogram = zd; + zdbrdist = zd; return; } // dialog event and completion function -int histogram_dialog_event(zdialog *zd, cchar *event) +int brdist_dialog_event(zdialog *zd, cchar *event) { + using namespace brdist_names; + if (zd->zstat) { zdialog_free(zd); - zdhistogram = 0; + zdbrdist = 0; return 0; } - if (strstr("red green blue white",event)) { // update desired colors - zdialog_fetch(zd,"red",winhistoRGBW[0]); - zdialog_fetch(zd,"green",winhistoRGBW[1]); - zdialog_fetch(zd,"blue",winhistoRGBW[2]); - zdialog_fetch(zd,"white",winhistoRGBW[3]); - gtk_widget_queue_draw(winhistoH); // refresh drawing window + if (strstr("all red green blue",event)) { // update chosen colors + zdialog_fetch(zd,"red",RGBW[0]); + zdialog_fetch(zd,"green",RGBW[1]); + zdialog_fetch(zd,"blue",RGBW[2]); + zdialog_fetch(zd,"all",RGBW[3]); + gtk_widget_queue_draw(drawwin_dist); // refresh drawing window } return 0; @@ -5369,22 +5677,22 @@ // draw the histogram and the brightness scale underneath -void histogram_draw(GtkWidget *drawin, cairo_t *cr, int) // v.13.02 +void brdist_drawgraph(GtkWidget *drawin, cairo_t *cr, int *rgbw) // v.14.04 { - int bin, Nbins = 256, brdist[256][4]; // 256 bins, R/G/B/all + int bin, Nbins = 85, brdist[85][4]; // bin count, R/G/B/all int px, py, dx, dy; int ww, hh, winww, winhh; int ii, rgb, maxdist, bright; float *pixf, pixg[3]; uint8 *pixi; - if (! zdhistogram) return; if (! Fpxb) return; + if (rgbw[0]+rgbw[1]+rgbw[2]+rgbw[3] == 0) return; - winww = gtk_widget_get_allocated_width(drawin); // drawing window size + winww = gtk_widget_get_allocated_width(drawin); // drawing window size winhh = gtk_widget_get_allocated_height(drawin); - for (bin = 0; bin < Nbins; bin++) // clear brightness distribution + for (bin = 0; bin < Nbins; bin++) // clear brightness distribution for (rgb = 0; rgb < 4; rgb++) brdist[bin][rgb] = 0; @@ -5393,68 +5701,68 @@ ww = Fpxb->ww; hh = Fpxb->hh; - for (ii = 0; ii < ww * hh; ii++) // overhaul v.13.05 + for (ii = 0; ii < ww * hh; ii++) // overhaul v.13.05 { - if (sa_stat == 3 && ! sa_pixmap[ii]) continue; // stay within active select area + if (sa_stat == 3 && ! sa_pixmap[ii]) continue; // stay within active select area - py = ii / ww; // image pixel + py = ii / ww; // image pixel px = ii - ww * py; - dx = Mscale * px - Morgx + Dorgx; // stay within visible window - if (dx < 0 || dx > Dww-1) continue; // for zoomed image + dx = Mscale * px - Morgx + Dorgx; // stay within visible window + if (dx < 0 || dx > Dww-1) continue; // for zoomed image dy = Mscale * py - Morgy + Dorgy; if (dy < 0 || dy > Dhh-1) continue; - if (E3pxm) pixf = PXMpix(E3pxm,px,py); // use active edited image if present - else if (E1pxm) pixf = PXMpix(E1pxm,px,py); // use prior edited image + if (E3pxm) pixf = PXMpix(E3pxm,px,py); // use active edited image if present + else if (E1pxm) pixf = PXMpix(E1pxm,px,py); // use prior edited image else { - pixi = PXBpix(Fpxb,px,py); // use displayed image - pixg[0] = pixi[0]; // convert uint8 RGB to float + pixi = PXBpix(Fpxb,px,py); // use displayed image + pixg[0] = pixi[0]; // convert uint8 RGB to float pixg[1] = pixi[1]; pixg[2] = pixi[2]; pixf = pixg; } - for (rgb = 0; rgb < 3; rgb++) { // get R/G/B brightness levels - bright = pixf[rgb] * Nbins / 256.0; // scale 0 to Nbins-1 + for (rgb = 0; rgb < 3; rgb++) { // get R/G/B brightness levels + bright = pixf[rgb] * Nbins / 256.0; // scale 0 to Nbins-1 if (bright < 0 || bright > 255) { - printz("pixel %d/%d: %.2f %.2f %.2f \n",px,py,pixf[0],pixf[1],pixf[2]); // v.13.10 + printz("pixel %d/%d: %.2f %.2f %.2f \n",px,py,pixf[0],pixf[1],pixf[2]); mutex_unlock(&Fpixmap_lock); return; } ++brdist[bright][rgb]; } - bright = (pixf[0] + pixf[1] + pixf[2]) * 0.333 * Nbins / 256.0; // R+G+B, 0 to Nbins-1 + bright = (pixf[0] + pixf[1] + pixf[2]) * 0.333 * Nbins / 256.0; // R+G+B, 0 to Nbins-1 ++brdist[bright][3]; } mutex_unlock(&Fpixmap_lock); - + maxdist = 0; - for (bin = 1; bin < Nbins-1; bin++) // find max. bin over all RGB - for (rgb = 0; rgb < 3; rgb++) // omit bins 0 and 255 v.13.10 - if (brdist[bin][rgb] > maxdist) // which can be huge + for (bin = 1; bin < Nbins-1; bin++) // find max. bin over all RGB + for (rgb = 0; rgb < 3; rgb++) // omit bins 0 and last + if (brdist[bin][rgb] > maxdist) // which can be huge maxdist = brdist[bin][rgb]; - for (rgb = 0; rgb < 4; rgb++) // R/G/B/all + for (rgb = 0; rgb < 4; rgb++) // R/G/B/white (all) { - if (! winhistoRGBW[rgb]) continue; // not selected for graph + if (! rgbw[rgb]) continue; // color not selected for graph if (rgb == 0) cairo_set_source_rgb(cr,1,0,0); if (rgb == 1) cairo_set_source_rgb(cr,0,1,0); if (rgb == 2) cairo_set_source_rgb(cr,0,0,1); - if (rgb == 3) cairo_set_source_rgb(cr,0,0,0); + if (rgb == 3) cairo_set_source_rgb(cr,0,0,0); // color "white" = R+G+B uses black line - cairo_move_to(cr,0,winhh-1); // start at (0,0) + cairo_move_to(cr,0,winhh-1); // start at (0,0) - for (px = 0; px < winww; px++) // x from 0 to window width + for (px = 0; px < winww; px++) // x from 0 to window width { - bin = Nbins * px / winww; // bin = 0-Nbins for x = 0-width - py = 0.9 * winhh * brdist[bin][rgb] / maxdist; // height of bin in window + bin = Nbins * px / winww; // bin = 0-Nbins for x = 0-width + py = 0.9 * winhh * brdist[bin][rgb] / maxdist; // height of bin in window py = winhh * sqrt(1.0 * py / winhh); py = winhh - py - 1; - cairo_line_to(cr,px,py); // draw line from bin to bin + cairo_line_to(cr,px,py); // draw line from bin to bin } cairo_stroke(cr); @@ -5469,7 +5777,7 @@ // Paint a horizontal stripe drawing area with a color progressing from // black to white. This represents a brightness scale from 0 to 255. -void draw_brightscale(GtkWidget *drawarea, cairo_t *cr, int) +void brdist_drawscale(GtkWidget *drawarea, cairo_t *cr, int *) { int px, ww, hh; float fbright; Binary files /tmp/3XfiINoMYv/fotoxx-14.03/icons/scroll.png and /tmp/9K8oNyXDER/fotoxx-14.04/icons/scroll.png differ diff -Nru fotoxx-14.03/locales/translate-ca.po fotoxx-14.04/locales/translate-ca.po --- fotoxx-14.03/locales/translate-ca.po 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/locales/translate-ca.po 2014-04-01 06:09:31.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: home 2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-01 08:51+0100\n" +"POT-Creation-Date: 2014-04-01 08:04+0200\n" "PO-Revision-Date: 2013-12-30 12:36+0100\n" "Last-Translator: Josep Antoni Miralles Puignau \n" "Language-Team: Catalán, Valenciano <>\n" @@ -21,7 +21,7 @@ msgid "Select Area for Edits" msgstr "Seleccionar àrea per editar" -#: f.area.cc:57 f.retouch.cc:2051 +#: f.area.cc:57 f.retouch.cc:2160 msgid "Press F1 for help" msgstr "Prèmer F1 per ajuda" @@ -65,7 +65,7 @@ msgid "select all matching colors within mouse" msgstr "seleccionar amb el ratolí tots els colors coincidents" -#: f.area.cc:115 f.retouch.cc:2086 +#: f.area.cc:115 f.retouch.cc:2195 msgid "mouse radius" msgstr "radi del ratolí" @@ -157,7 +157,7 @@ msgid "save select area to a file" msgstr "guardar àrea seleccionada en un fitxer" -#: f.bend.cc:72 f.menus.cc:246 +#: f.bend.cc:72 f.menus.cc:208 msgid "Unbend" msgstr "Redreçar" @@ -185,7 +185,7 @@ " Clic en les quatre cantonades d'un àrea tetragonal. Polsar [Aplicar]. \n" " La imatge és deformada per que el tetràgon sigui un rectangle." -#: f.bend.cc:353 f.menus.cc:247 +#: f.bend.cc:353 f.menus.cc:209 msgid "Keystone Correction" msgstr "Correcció de Keystone" @@ -235,7 +235,7 @@ " Múltiples estirades amb el ratolí fins a quedar satisfet. \n" " Quan hagi acabat, seleccionar un altre àrea o prèmer [Fet]." -#: f.bend.cc:1105 f.menus.cc:249 +#: f.bend.cc:1105 f.menus.cc:211 msgid "Warp area" msgstr "Deformar àrea" @@ -257,7 +257,7 @@ " Múltiples empentes del ratolí fins a quedar satisfet. \n" " Quan hagi acabat, polsar [Fet]." -#: f.bend.cc:1520 f.menus.cc:250 +#: f.bend.cc:1520 f.menus.cc:212 msgid "Warp curved" msgstr "Deformar en corba" @@ -265,7 +265,7 @@ msgid "warp span" msgstr "deformar lapse" -#: f.bend.cc:1830 f.menus.cc:251 +#: f.bend.cc:1830 f.menus.cc:213 msgid "Warp linear" msgstr "Deformar lineal" @@ -279,15 +279,15 @@ " Múltiples empentes del ratolí fins a quedar satisfet. \n" " Quan hagi acabat, polsar [Fet]." -#: f.bend.cc:2161 f.menus.cc:252 +#: f.bend.cc:2161 f.menus.cc:214 msgid "Warp affine" msgstr "Deformar afin" -#: f.color.cc:64 f.menus.cc:239 +#: f.color.cc:64 f.menus.cc:201 msgid "Shift Colors" msgstr "Modificar colors" -#: f.color.cc:285 f.menus.cc:240 +#: f.color.cc:285 f.menus.cc:202 msgid "Color Mode" msgstr "Mode de color" @@ -340,8 +340,8 @@ msgid "mouse radius for color sample" msgstr "radi del ratolí per mostra de color" -#: f.color.cc:609 f.color.cc:614 f.file.cc:4220 f.menus.cc:208 f.menus.cc:297 -#: f.menus.cc:433 fotoxx.h:1039 +#: f.color.cc:609 f.color.cc:614 f.file.cc:4222 f.menus.cc:172 f.menus.cc:255 +#: f.menus.cc:349 fotoxx.h:1044 msgid "Open" msgstr "Obrir" @@ -365,11 +365,11 @@ msgid "select source image color first" msgstr "seleccionar primer el color de la imatge d'origen" -#: f.color.cc:872 f.tools.cc:5665 +#: f.color.cc:872 f.tools.cc:5973 msgid "Click image to select pixels." msgstr "Clic en la imatge per seleccionar píxels." -#: f.color.cc:911 f.menus.cc:243 +#: f.color.cc:911 f.menus.cc:205 msgid "Revise RGB" msgstr "Revisar RGB" @@ -397,15 +397,15 @@ msgid "+Blue -Yellow" msgstr "+Blae -Groc" -#: f.color.cc:1382 fotoxx.h:1050 +#: f.color.cc:1382 fotoxx.h:1055 msgid "Red" msgstr "Vermell" -#: f.color.cc:1383 fotoxx.h:1018 +#: f.color.cc:1383 fotoxx.h:1023 msgid "Green" msgstr "Verd" -#: f.color.cc:1384 fotoxx.h:992 +#: f.color.cc:1384 fotoxx.h:997 msgid "Blue" msgstr "Blae" @@ -438,7 +438,7 @@ msgstr "Pintar i deformar imatge" #: f.combine.cc:2831 f.combine.cc:3485 f.combine.cc:4902 f.combine.cc:5801 -#: f.effects.cc:3478 f.menus.cc:60 f.menus.cc:121 +#: f.effects.cc:3546 f.menus.cc:87 msgid "Image" msgstr "Imatge" @@ -506,7 +506,7 @@ msgid "no curve (scanned image)" msgstr "no hi ha corba (imatge escanejada)" -#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:214 f.menus.cc:473 +#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:178 f.menus.cc:386 msgid "Resize" msgstr "Redimensionar" @@ -670,7 +670,7 @@ msgid "Gradual" msgstr "" -#: f.combine.cc:6842 fotoxx.h:1044 +#: f.combine.cc:6842 fotoxx.h:1049 msgid "Power" msgstr "Força" @@ -683,7 +683,7 @@ msgid "Enter text, click/drag on image." msgstr "Introduïr text, clic/arrossegar sobre la imatge" -#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:850 +#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:844 msgid "Text" msgstr "Text" @@ -703,8 +703,8 @@ msgid "shadow" msgstr "ombra" -#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:63 f.menus.cc:124 -#: f.menus.cc:292 fotoxx.h:999 +#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:90 f.menus.cc:251 +#: fotoxx.h:1004 msgid "Color" msgstr "Color" @@ -712,7 +712,7 @@ msgid "Transparency" msgstr "Transparència" -#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1078 +#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1084 msgid "Width" msgstr "Ample" @@ -757,7 +757,7 @@ msgid "black/white" msgstr " negre/blanc" -#: f.effects.cc:989 f.menus.cc:257 +#: f.effects.cc:989 f.menus.cc:219 msgid "Graduated Blur" msgstr "Desenfocament graduat" @@ -825,7 +825,7 @@ msgid "borders" msgstr "vores" -#: f.effects.cc:2474 f.menus.cc:262 +#: f.effects.cc:2474 f.menus.cc:224 msgid "Vignette" msgstr "Vinyetat" @@ -833,48 +833,64 @@ msgid "Add Texture" msgstr "" -#: f.effects.cc:3040 -msgid "Add pattern" +#: f.effects.cc:3043 +msgid "Background Pattern" msgstr "" -#: f.effects.cc:3044 f.menus.cc:264 -msgid "Pattern" +#: f.effects.cc:3047 +msgid "Pattern File:" +msgstr "" + +#: f.effects.cc:3052 +msgid "Geometry" +msgstr "" + +#: f.effects.cc:3053 +msgid "Calculate" +msgstr "" + +#: f.effects.cc:3055 +msgid "Zoom" msgstr "" -#: f.effects.cc:3051 -msgid "Pattern size" +#: f.effects.cc:3066 f.menus.cc:226 +msgid "Pattern" msgstr "" -#: f.effects.cc:3062 f.effects.cc:3066 +#: f.effects.cc:3073 msgid "Overlap" msgstr "" -#: f.effects.cc:3107 +#: f.effects.cc:3080 +msgid "Opacity" +msgstr "" + +#: f.effects.cc:3116 msgid "choose pattern tile" msgstr "" -#: f.effects.cc:3382 +#: f.effects.cc:3450 msgid "Create Mosaic" msgstr "" -#: f.effects.cc:3468 +#: f.effects.cc:3536 msgid "Tile" msgstr "" -#: f.effects.cc:3476 f.menus.cc:259 +#: f.effects.cc:3544 f.menus.cc:221 msgid "Tiles" msgstr "Mosaïc" -#: f.effects.cc:3482 +#: f.effects.cc:3550 msgid "Tile blending" msgstr "" -#: f.effects.cc:3560 +#: f.effects.cc:3628 #, c-format msgid "exceeded max. tiles: %d" msgstr "" -#: f.effects.cc:3575 +#: f.effects.cc:3643 #, c-format msgid "only %d tile images found" msgstr "" @@ -887,7 +903,7 @@ msgid "no more images" msgstr "no hi ha més imatges" -#: f.file.cc:330 f.menus.cc:153 f.menus.cc:482 +#: f.file.cc:330 f.menus.cc:118 f.menus.cc:395 msgid "Open RAW file (ufraw)" msgstr "Obrir fitxer RAW (ufraw)" @@ -944,7 +960,7 @@ "Sobre-escriure arxiu? \n" " %s" -#: f.file.cc:836 f.menus.cc:155 +#: f.file.cc:836 f.menus.cc:120 msgid "Rename Image File" msgstr "Re-anomenar arxiu d'imatge" @@ -952,7 +968,7 @@ msgid "Old Name" msgstr "antic nom" -#: f.file.cc:844 f.tools.cc:4504 +#: f.file.cc:844 f.tools.cc:4803 msgid "New Name" msgstr "nou nom" @@ -1000,7 +1016,7 @@ msgid "new location" msgstr "nova ubicació" -#: f.file.cc:1233 f.tools.cc:4809 +#: f.file.cc:1233 f.tools.cc:5108 msgid "Select directory" msgstr "Seleccionar directori" @@ -1025,7 +1041,7 @@ msgid "(automatic step to next image)" msgstr "(passi automàtic a la nova imatge)" -#: f.file.cc:1457 f.menus.cc:157 +#: f.file.cc:1457 f.menus.cc:122 msgid "Trash Image File" msgstr "Imatge a la paperera" @@ -1071,7 +1087,7 @@ " %s" msgstr "" -#: f.file.cc:2191 f.menus.cc:149 +#: f.file.cc:2191 f.menus.cc:114 msgid "Open Image File" msgstr "Obrir arxiu d'imatge" @@ -1093,103 +1109,107 @@ msgid "file type not supported: %s" msgstr "tipus d'arxiu no suportaat: %s" -#: f.file.cc:4209 f.menus.cc:296 f.menus.cc:432 +#: f.file.cc:4209 f.file.cc:4291 f.menus.cc:360 f.tools.cc:851 +msgid "Scroll" +msgstr "Desplaçar" + +#: f.file.cc:4211 f.menus.cc:254 f.menus.cc:348 msgid "Sync.G" msgstr "Sincr.G" -#: f.file.cc:4221 +#: f.file.cc:4223 msgid "change directory" msgstr "canviar directori" -#: f.file.cc:4229 f.menus.cc:434 +#: f.file.cc:4231 f.menus.cc:350 msgid "GoTo" msgstr "Anar a" -#: f.file.cc:4234 f.menus.cc:437 +#: f.file.cc:4236 f.menus.cc:353 msgid "Sort" msgstr "Ordenar" -#: f.file.cc:4241 f.file.cc:4665 f.file.cc:4666 f.file.cc:4668 f.menus.cc:435 +#: f.file.cc:4243 f.file.cc:4657 f.file.cc:4658 f.file.cc:4660 f.menus.cc:351 msgid "Zoom+" msgstr "Zoom +" -#: f.file.cc:4252 f.file.cc:4667 f.file.cc:4669 f.menus.cc:436 +#: f.file.cc:4254 f.file.cc:4659 f.file.cc:4661 f.menus.cc:352 msgid "Zoom-" msgstr "Zoom -" -#: f.file.cc:4265 f.file.cc:4673 f.menus.cc:442 +#: f.file.cc:4267 f.file.cc:4665 f.menus.cc:358 msgid "Row↑" msgstr "Fila ↑" -#: f.file.cc:4277 f.file.cc:4674 f.menus.cc:443 +#: f.file.cc:4279 f.file.cc:4666 f.menus.cc:359 msgid "Row↓" msgstr "Fila ↓" -#: f.file.cc:4289 f.file.cc:4676 f.menus.cc:438 +#: f.file.cc:4309 f.file.cc:4668 f.menus.cc:354 msgid "First" msgstr "Primera" -#: f.file.cc:4290 f.file.cc:4677 f.menus.cc:439 +#: f.file.cc:4310 f.file.cc:4669 f.menus.cc:355 msgid "Last" msgstr "Última" -#: f.file.cc:4291 f.file.cc:4671 f.file.cc:4678 f.menus.cc:440 +#: f.file.cc:4311 f.file.cc:4663 f.file.cc:4670 f.menus.cc:356 msgid "Page↑" msgstr "Pàgina ↑" -#: f.file.cc:4292 f.file.cc:4672 f.file.cc:4679 f.menus.cc:441 +#: f.file.cc:4312 f.file.cc:4664 f.file.cc:4671 f.menus.cc:357 msgid "Page↓" msgstr "Pàgina ↓" -#: f.file.cc:4342 +#: f.file.cc:4366 msgid "Choose image directory" msgstr "" -#: f.file.cc:4348 f.file.cc:4363 +#: f.file.cc:4372 f.file.cc:4387 msgid "recent" msgstr " recent" -#: f.file.cc:4349 f.file.cc:4368 +#: f.file.cc:4373 f.file.cc:4392 msgid "newest" msgstr "més noves" -#: f.file.cc:4350 f.file.cc:4377 +#: f.file.cc:4374 f.file.cc:4401 msgid "collections" msgstr "col.leccionns" -#: f.file.cc:4423 f.tools.cc:2476 +#: f.file.cc:4449 f.tools.cc:2451 msgid "no collections found" msgstr "no s'han trobat col.leccions" -#: f.file.cc:4430 +#: f.file.cc:4456 msgid "Choose collection" msgstr "Escolliu col.lecció" -#: f.file.cc:4475 +#: f.file.cc:4503 msgid "Gallery Sort" msgstr "Ordenar galeria" -#: f.file.cc:4479 +#: f.file.cc:4507 msgid "File Name" msgstr "Nom d'arxiu" -#: f.file.cc:4480 +#: f.file.cc:4508 msgid "File Mod Date/Time" msgstr "Mode d'arxiu date/hora" -#: f.file.cc:4481 +#: f.file.cc:4509 msgid "Photo Date/Time (EXIF)" msgstr "Data/hora de la foto (EXIF)" -#: f.file.cc:4483 +#: f.file.cc:4511 msgid "ascending" msgstr "ascendent" -#: f.file.cc:4484 +#: f.file.cc:4512 msgid "descending" msgstr " descendent" -#: f.file.cc:5542 fotoxx.h:1061 +#: f.file.cc:5534 fotoxx.h:1067 msgid "Select Files" msgstr "Seleccionar arxius" @@ -1215,7 +1235,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Rotació : arrossegar cantó dret amb el ratolí " -#: f.image.cc:302 f.menus.cc:212 f.menus.cc:472 +#: f.image.cc:302 f.menus.cc:176 f.menus.cc:385 msgid "Trim/Rotate" msgstr "Retallar/Girar" @@ -1231,7 +1251,7 @@ msgid "Lock Ratio" msgstr "Bloquejar proporció" -#: f.image.cc:326 f.tools.cc:2793 +#: f.image.cc:326 msgid "Customize" msgstr "Personalitzar" @@ -1267,7 +1287,7 @@ msgid "Resize Image" msgstr "Redimensionar imatge" -#: f.image.cc:1650 f.menus.cc:215 +#: f.image.cc:1650 f.menus.cc:179 msgid "Flip" msgstr "Voltejar" @@ -1308,1124 +1328,1129 @@ msgid "plugin failed" msgstr "errada de complement" -#: f.menus.cc:56 f.menus.cc:117 -msgid "File" -msgstr "Arxiu" - -#: f.menus.cc:57 f.menus.cc:118 -msgid "Tools" -msgstr "Eines" - -#: f.menus.cc:58 f.menus.cc:119 f.menus.cc:462 -msgid "Metadata" -msgstr "Metadades" - -#: f.menus.cc:59 f.menus.cc:120 -msgid "Areas" -msgstr "Àrees" - -#: f.menus.cc:61 f.menus.cc:122 -msgid "Retouch" -msgstr "Retocar" - -#: f.menus.cc:62 f.menus.cc:123 -msgid "Repair" -msgstr "Reparar" - -#: f.menus.cc:64 f.menus.cc:125 -msgid "Bend" -msgstr "Deformar" - -#: f.menus.cc:65 f.menus.cc:126 -msgid "Effects" -msgstr "Efectes" - -#: f.menus.cc:66 f.menus.cc:127 -msgid "Combine" -msgstr "Combinar" - -#: f.menus.cc:67 f.menus.cc:128 -msgid "Plugins" -msgstr "Complements (Plugins)" - -#: f.menus.cc:68 f.menus.cc:129 fotoxx-14.03.cc:3811 fotoxx.h:1021 -msgid "Help" -msgstr "Ajuda" - -#: f.menus.cc:101 f.menus.cc:290 fotoxx-14.03.cc:3751 +#: f.menus.cc:67 fotoxx-14.04.cc:3775 msgid "Favorite Functions" msgstr "" -#: f.menus.cc:102 +#: f.menus.cc:68 msgid "Open, Save, Trash, Rename, Print" msgstr "Obrir, guardar, esborrar, reanomenar, imprimir" -#: f.menus.cc:103 +#: f.menus.cc:69 msgid "Index Files, Settings, Collections, Batch Funcs ..." msgstr "" -#: f.menus.cc:104 +#: f.menus.cc:70 msgid "Captions, Tags, Ratings, Geotags, Search ... " msgstr "Llegendes, etiquetes, clasificacions, geo-etiquetes, cerques ..." -#: f.menus.cc:105 +#: f.menus.cc:71 msgid "Select image areas to edit, copy and paste" msgstr "Seleccionar àrees de la imatge a editar, copiar i enganxar" -#: f.menus.cc:106 +#: f.menus.cc:72 msgid "Trim/Crop, Rotate, Resize, Add Text" msgstr "Retallar/girar, rotar, redimensionar, afegir text" -#: f.menus.cc:107 +#: f.menus.cc:73 msgid "Improve brightness, contrast, color ..." msgstr "Millorar brillantor, contrast, color ..." -#: f.menus.cc:108 +#: f.menus.cc:74 msgid "Sharpen, Clean, Red-eyes, Paint, Clone ..." msgstr "Enfocar, netejar, ulls vermells, pintar, clonar " -#: f.menus.cc:109 +#: f.menus.cc:75 msgid "White Balance, Color Profile, Color Matching" msgstr "Balanç de blancs, perfil de color, concordància de colors" -#: f.menus.cc:110 +#: f.menus.cc:76 msgid "Fix Perspective, Bend/Warp image ..." msgstr "Corretgir perspectiva, adreçar/deformar imatge ..." -#: f.menus.cc:111 +#: f.menus.cc:77 msgid "Special Effects, Arty Transforms" msgstr "Efectes especials, transformacions artístiques" -#: f.menus.cc:112 +#: f.menus.cc:78 msgid "HDR, HDF, Panorama, Stack, Mashup" msgstr "HDR, HDF, Panorama, Pila, Muntatge" -#: f.menus.cc:113 +#: f.menus.cc:79 msgid "Use other image editors within Fotoxx" msgstr "Utilitzar altres editors d'imatge dintre de Fotoxx" -#: f.menus.cc:114 +#: f.menus.cc:80 msgid "Quick Start, User Guide, Recent Changes ..." msgstr "Inici ràpid, guia d'usuari, canvis recents" -#: f.menus.cc:148 +#: f.menus.cc:83 +msgid "File" +msgstr "Arxiu" + +#: f.menus.cc:84 +msgid "Tools" +msgstr "Eines" + +#: f.menus.cc:85 f.menus.cc:375 +msgid "Metadata" +msgstr "Metadades" + +#: f.menus.cc:86 +msgid "Areas" +msgstr "Àrees" + +#: f.menus.cc:88 +msgid "Retouch" +msgstr "Retocar" + +#: f.menus.cc:89 +msgid "Repair" +msgstr "Reparar" + +#: f.menus.cc:91 +msgid "Bend" +msgstr "Deformar" + +#: f.menus.cc:92 +msgid "Effects" +msgstr "Efectes" + +#: f.menus.cc:93 +msgid "Combine" +msgstr "Combinar" + +#: f.menus.cc:94 +msgid "Plugins" +msgstr "Complements (Plugins)" + +#: f.menus.cc:95 fotoxx-14.04.cc:3835 fotoxx.h:1026 +msgid "Help" +msgstr "Ajuda" + +#: f.menus.cc:113 msgid "New Window" msgstr "Nova finestra" -#: f.menus.cc:148 +#: f.menus.cc:113 msgid "Open another window" msgstr "Obrir una altre finestra" -#: f.menus.cc:149 f.menus.cc:297 +#: f.menus.cc:114 f.menus.cc:255 msgid "Open a new image file" msgstr "Obrir una nova imatge" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open Previous File" msgstr "Obrir arxiu anterior" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open the previously seen file" msgstr "Obrir arxiu vist previament" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Open a recently seen file" msgstr "Obrir un arxiu vist recentment" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Recently Seen Images" msgstr "Imatges vistes recentment " -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Newest Images" msgstr "Imatges més recents" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Open a newly added file" msgstr "Obrir un nou arxiu afegit" -#: f.menus.cc:153 +#: f.menus.cc:118 msgid "Open and edit a camera RAW file" msgstr "Obrir i editar un arxiu de càmera RAW" -#: f.menus.cc:154 f.menus.cc:300 +#: f.menus.cc:119 f.menus.cc:258 msgid "Save modified image file to disk" msgstr "Guardar imatge modificada en el disc" -#: f.menus.cc:154 +#: f.menus.cc:119 msgid "Save to Disk" msgstr "Guardar en el disc" -#: f.menus.cc:155 +#: f.menus.cc:120 msgid "Change the image file name" msgstr "Canvia nom de la imatge" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "Create a blank image" msgstr "Crear una imatge buida" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "New Blank Image" msgstr "Nova imatge buida" -#: f.menus.cc:157 f.menus.cc:301 +#: f.menus.cc:122 f.menus.cc:259 msgid "Move image file to Trash" msgstr "Moure imatge a la paperera" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print Image" msgstr "Imprimir imatge" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print the current image" msgstr "Impprimir la imatge actual" -#: f.menus.cc:159 +#: f.menus.cc:124 msgid "Quit Fotoxx" msgstr "Sortir de Fotoxx" -#: f.menus.cc:161 f.tools.cc:92 f.tools.cc:339 +#: f.menus.cc:126 f.tools.cc:92 f.tools.cc:339 msgid "Index Image Files" msgstr "" -#: f.menus.cc:161 +#: f.menus.cc:126 msgid "Index new files and make thumbnails" msgstr "Indexar nous arxius i fer miniatures" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "Change user preferences" msgstr "Canviar preferències d'usuari" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "User Settings" msgstr "Preferències d'usuari" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Change Keyboard Shortcut Keys" msgstr "Canviar tecles drecera" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Keyboard Shortcuts" msgstr "Tecles drecera" -#: f.menus.cc:164 f.tools.cc:1943 +#: f.menus.cc:129 f.tools.cc:1918 msgid "Manage Collections" msgstr "Administrar col.leccións" -#: f.menus.cc:164 +#: f.menus.cc:129 msgid "Organize images into collections" msgstr "Organitzar imatges en col.leccions" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Convert for a new top directory" msgstr "Convertir per a un nou directori principal" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Move Collections" msgstr "Moure col.leccions" -#: f.menus.cc:166 f.tools.cc:2777 f.tools.cc:2780 +#: f.menus.cc:131 f.tools.cc:2728 msgid "Slide Show" msgstr "Diaporama" -#: f.menus.cc:166 +#: f.menus.cc:131 msgid "Start a slide show" msgstr "Iniciar un diaporama" -#: f.menus.cc:167 f.tools.cc:4497 +#: f.menus.cc:132 f.tools.cc:4796 msgid "Batch Convert" msgstr "Convertir en lot" -#: f.menus.cc:167 +#: f.menus.cc:132 msgid "Rename/convert/resize/move multiple files" msgstr "" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Batch Convert RAW" msgstr "Convertir RAW en lot" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Convert multiple camera RAW files" msgstr "Convertir múltiples arxius de càmera RAW" -#: f.menus.cc:169 -msgid "Brightness Histogram" -msgstr "Histograma" +#: f.menus.cc:134 f.menus.cc:185 f.menus.cc:390 f.retouch.cc:314 +#: f.tools.cc:5620 +msgid "Brightness Distribution" +msgstr "Histograma (distribució de la brillantor)" -#: f.menus.cc:169 +#: f.menus.cc:134 msgid "Show a brightness distribution graph" msgstr "Mostrar histograma (distribució de la brillantor)" -#: f.menus.cc:170 f.menus.cc:480 f.tools.cc:5517 +#: f.menus.cc:135 f.menus.cc:393 f.tools.cc:5825 msgid "Grid Lines" msgstr "Línies de graella" -#: f.menus.cc:170 +#: f.menus.cc:135 msgid "Show or revise grid lines" msgstr "Mostrar o amagar línies de graella" -#: f.menus.cc:171 f.tools.cc:5701 +#: f.menus.cc:136 f.tools.cc:6009 msgid "Show RGB" msgstr "Mostrar RGB" -#: f.menus.cc:171 +#: f.menus.cc:136 msgid "Show RGB colors at mouse click" msgstr "Mostrar colors RGB amb un clic de ratolí" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Dark/Bright Pixels" msgstr "Píxels foscos/brillants" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Highlight darkest and brightest pixels" msgstr "Resaltar els píxels més foscos i més brillants" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Chart to adjust monitor color" msgstr "Carta per ajustar el color del monitor" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Monitor Color" msgstr "Color del monitor" -#: f.menus.cc:174 +#: f.menus.cc:139 msgid "Chart to adjust monitor gamma" msgstr "Carta per ajustar la gamma del monitor" -#: f.menus.cc:174 f.tools.cc:6213 +#: f.menus.cc:139 f.tools.cc:6521 msgid "Monitor Gamma" msgstr "Gamma del monitor" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change Language" msgstr "Canviar idioma" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change the GUI language" msgstr "Canviar idioma de la interfície d'usuari" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Missing Translations" msgstr "Traduccions que falten" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Report missing translations" msgstr "Informe de traduccions que falten" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Create a Gnome menu and launcher" msgstr "Crear un menú i llençadora de Gnome" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Menu and Launcher" msgstr "Menú i llençadora" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn Images to CD/DVD" msgstr "Gravar imatges en un CD/DVD" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn selected image files to CD or DVD" msgstr "Gravar imatges seleccionades en un CD/DVD" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Memory and CPU (to terminal/logfile)" msgstr "Memoria i CPU (al terminal/arxiu de registre)" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Resources" msgstr "Recursos" -#: f.menus.cc:183 f.meta.cc:121 f.meta.cc:1945 +#: f.menus.cc:147 f.meta.cc:121 f.meta.cc:1946 msgid "Edit Metadata" msgstr "Editar metadades" -#: f.menus.cc:183 +#: f.menus.cc:147 msgid "Edit image tags/caption/rating ..." msgstr "Editar etiquetes/llegenda/clasificació de la imatge" -#: f.menus.cc:184 +#: f.menus.cc:148 msgid "Add/remove tags for multiple images" msgstr "Afegir/eliminar etiquetes per múltiples imatges " -#: f.menus.cc:184 f.meta.cc:1547 +#: f.menus.cc:148 f.meta.cc:1547 msgid "Batch Add/Remove Tags" msgstr "Afegir/eliminar etiquetes en lot" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "List a few key metadata items" msgstr "Llistar algunes dades clau de metadades" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "View Metadata (short)" msgstr "Veure metadades (curt)" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "List all metadata items" msgstr "Listar totes les metadades" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "View Metadata (long)" msgstr "Veure metadades (llarg)" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "List captions and comments only" msgstr "Llistar nomès les llegendes i els comentaris" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "View Captions and Comments" msgstr "Veure llegendes i comentaris" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit Any Metadata" msgstr "Editar qualsevol metadada" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit any image metadata" msgstr "Editar qualsevol metadada de la imatge" -#: f.menus.cc:189 f.meta.cc:2039 +#: f.menus.cc:153 f.meta.cc:2040 msgid "Delete Metadata" msgstr "Esborrar metadades" -#: f.menus.cc:189 +#: f.menus.cc:153 msgid "Remove all metadata from an image" msgstr "Eliminar totes les metadades d'una imatge" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "(Toggle) show captions and comments" msgstr "(Canviar) mostra llegendes i comentaris" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "Show Captions on Image" msgstr "Mostrar llegendes a la imatge" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download Geolocations" msgstr "Baixar geo-ubicacions" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download initial geolocation database" msgstr "Baixar bases de dades de geo-ubicació inicial" -#: f.menus.cc:193 f.meta.cc:3023 +#: f.menus.cc:157 f.meta.cc:3027 msgid "Edit Geotags" msgstr "Editar geoetiquetes" -#: f.menus.cc:193 +#: f.menus.cc:157 msgid "Edit image location and geotags" msgstr "Editar ubicació i geoetiquetes de la imatge" -#: f.menus.cc:194 +#: f.menus.cc:158 msgid "Add geotags to multiple images" msgstr "Afegir geo-etiquetes a múltiples imatges" -#: f.menus.cc:194 f.meta.cc:3225 +#: f.menus.cc:158 f.meta.cc:3229 msgid "Batch Add Geotags" msgstr "Afegir geoetiquetes" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Find all images for a location [date]" msgstr "Trobar totes les imatges per una ubicació [data]" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Images by Location/Date" msgstr "Imatges per ubicació/data" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Find images by clicking a world map" msgstr "Trobar imatges clicant en un mapa mundi" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Images by Map Location" msgstr "Imatges per ubicació en un mapa" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Find images meeting select criteria" msgstr "Trobar imatges que compleixin un criteri de seleccio" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Search Images" msgstr "Buscar imatges" -#: f.menus.cc:199 fotoxx.h:1060 +#: f.menus.cc:163 fotoxx.h:1066 msgid "Select" msgstr "Seleccionar" -#: f.menus.cc:199 +#: f.menus.cc:163 msgid "Select object or area for editing" msgstr "Seleccionar objecte o àrea per editar" -#: f.menus.cc:200 fotoxx.h:1062 +#: f.menus.cc:164 fotoxx.h:1068 msgid "Show" msgstr "Mostrar" -#: f.menus.cc:200 +#: f.menus.cc:164 msgid "Show (outline) existing area" msgstr "Mostrar un àrea existent (contorn)" -#: f.menus.cc:201 fotoxx.h:1022 +#: f.menus.cc:165 fotoxx.h:1027 msgid "Hide" msgstr "Ocultar" -#: f.menus.cc:201 +#: f.menus.cc:165 msgid "Hide existing area" msgstr "Ocultar àrea existent" -#: f.menus.cc:202 fotoxx.h:1011 +#: f.menus.cc:166 fotoxx.h:1016 msgid "Enable" msgstr "Activar" -#: f.menus.cc:202 +#: f.menus.cc:166 msgid "Enable area for editing" msgstr "Activar àrea per editar" -#: f.menus.cc:203 fotoxx.h:1006 +#: f.menus.cc:167 fotoxx.h:1011 msgid "Disable" msgstr "Desactivar" -#: f.menus.cc:203 +#: f.menus.cc:167 msgid "Disable area for editing" msgstr "Desactivat àrea per editar" -#: f.menus.cc:204 fotoxx.h:1025 +#: f.menus.cc:168 fotoxx.h:1030 msgid "Invert" msgstr "Invertir" -#: f.menus.cc:204 +#: f.menus.cc:168 msgid "Reverse existing area" msgstr "Invertir àrea existent" -#: f.menus.cc:205 +#: f.menus.cc:169 msgid "Erase existing area" msgstr "Esborrar àrea existent" -#: f.menus.cc:205 fotoxx.h:1074 +#: f.menus.cc:169 fotoxx.h:1080 msgid "Unselect" msgstr "Deseleccionar" -#: f.menus.cc:206 fotoxx.h:1001 +#: f.menus.cc:170 fotoxx.h:1006 msgid "Copy" msgstr "Copiar" -#: f.menus.cc:206 +#: f.menus.cc:170 msgid "Copy an area for later pasting" msgstr "Copiar una àrea per enganxar més tard" -#: f.menus.cc:207 fotoxx.h:1041 +#: f.menus.cc:171 fotoxx.h:1046 msgid "Paste" msgstr "Enganxar" -#: f.menus.cc:207 +#: f.menus.cc:171 msgid "Paste an area into the current image" msgstr "Enganxar una àrea en la imatge actual" -#: f.menus.cc:208 +#: f.menus.cc:172 msgid "Open a file with a saved area" msgstr "Obrir un arxiu amb una àrea guardada" -#: f.menus.cc:209 f.menus.cc:300 fotoxx.h:1057 +#: f.menus.cc:173 f.menus.cc:258 fotoxx.h:1062 msgid "Save" msgstr "Guardar" -#: f.menus.cc:209 +#: f.menus.cc:173 msgid "Save an area to a file" msgstr "Guardar una àrea en un arxiu" -#: f.menus.cc:211 +#: f.menus.cc:175 msgid "Rotate 90 degrees" msgstr "Rotar 90º" -#: f.menus.cc:211 f.menus.cc:474 +#: f.menus.cc:175 f.menus.cc:387 msgid "Rotate 90º" msgstr "Rotar 90º" -#: f.menus.cc:212 +#: f.menus.cc:176 msgid "Trim/Crop margins and/or Rotate" msgstr "Retallar/tallar marges i/o girar" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Auto-Trim" msgstr "Auto-retallar" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Remove margins from warp, panorama, etc." msgstr "Eliminar marges d'una deformació, panorama, etc." -#: f.menus.cc:214 +#: f.menus.cc:178 msgid "Change pixel dimensions" msgstr "Canviar dimensions de píxels" -#: f.menus.cc:215 +#: f.menus.cc:179 msgid "Mirror image horizontally or vertically" msgstr "Enmirallar la imatge horizontalment o verticalment" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Add Text" msgstr "Afegir text" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Write text on image" msgstr "Escriure un text en la imatge" -#: f.menus.cc:218 +#: f.menus.cc:182 msgid "Fast auto enhance that may work OK" msgstr "Auto-millora ràpida" -#: f.menus.cc:218 f.menus.cc:475 +#: f.menus.cc:182 f.menus.cc:388 msgid "Voodoo Enhance" msgstr "Millora automàtica" -#: f.menus.cc:219 +#: f.menus.cc:183 msgid "Adjust brightness, contrast, color" msgstr "Ajustar brillantor, contrast, color" -#: f.menus.cc:219 f.menus.cc:476 f.retouch.cc:265 +#: f.menus.cc:183 f.menus.cc:389 f.retouch.cc:271 msgid "Retouch Combo" msgstr "Retocar llum i color " -#: f.menus.cc:222 +#: f.menus.cc:184 msgid "Add local contrast, enhance details" msgstr "Afegir contrast local, millorar detalls" -#: f.menus.cc:222 f.menus.cc:478 f.retouch.cc:929 +#: f.menus.cc:184 f.menus.cc:391 f.retouch.cc:1039 msgid "Tone Mapping" msgstr "Mapa tonal" -#: f.menus.cc:223 +#: f.menus.cc:185 msgid "Adjust brightness distribution" msgstr "Ajustar distribució de la brillantor" -#: f.menus.cc:223 f.menus.cc:477 f.tools.cc:5314 -msgid "Brightness Distribution" -msgstr "Histograma (distribució de la brillantor)" - -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Brightness Ramp" msgstr "Rampa de brillantor" -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Fix brightness uniformity across image" msgstr "Corretgir la uniformitat de la brillantor per zones de la imatge" -#: f.menus.cc:225 f.retouch.cc:2050 +#: f.menus.cc:187 f.retouch.cc:2159 msgid "Paint Edits" msgstr "Editar pintant" -#: f.menus.cc:225 +#: f.menus.cc:187 msgid "Paint edit function gradually with mouse" msgstr "Funció d'edició pintant gradualment amb el ratolí" -#: f.menus.cc:227 +#: f.menus.cc:188 f.retouch.cc:2390 +msgid "Leverage Edits" +msgstr "Edició per nivells" + +#: f.menus.cc:188 +msgid "Leverage edits by brightness or color" +msgstr "Edició per nivells de brillantor o color" + +#: f.menus.cc:190 msgid "Make the image look sharper" msgstr "Fer que la imatge es vegi més enfocada" -#: f.menus.cc:227 f.repair.cc:79 f.tools.cc:4535 f.tools.cc:4904 +#: f.menus.cc:190 f.repair.cc:79 f.tools.cc:4834 f.tools.cc:5203 msgid "Sharpen" msgstr "Enfocar" -#: f.menus.cc:228 f.repair.cc:1565 +#: f.menus.cc:191 f.repair.cc:1565 msgid "Blur" msgstr "Desenfocar" -#: f.menus.cc:228 +#: f.menus.cc:191 msgid "Make the image look fuzzy" msgstr "Fer que la imatge es vegi desenfocada" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Filter noise from low-light photos" msgstr "Filtrar soroll de fotografíes fetes amb poca llum" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Reduce Noise" msgstr "Reduïr soroll" -#: f.menus.cc:230 +#: f.menus.cc:193 msgid "Remove unwanted objects" msgstr "Eliminar objectes no desitjats" -#: f.menus.cc:230 f.repair.cc:1558 +#: f.menus.cc:193 f.repair.cc:1558 msgid "Smart Erase" msgstr "Esborrat intel.ligent" -#: f.menus.cc:231 +#: f.menus.cc:194 msgid "Fix red-eyes from electronic flash" msgstr "Corretgir ulls vermells produïts per un flash electrònic" -#: f.menus.cc:231 f.menus.cc:479 +#: f.menus.cc:194 f.menus.cc:392 msgid "Red Eyes" msgstr "Ulls vermells" -#: f.menus.cc:232 +#: f.menus.cc:195 msgid "Paint image pixels using the mouse" msgstr "Pintar utilitzant el ratolí" -#: f.menus.cc:232 f.repair.cc:2403 +#: f.menus.cc:195 f.repair.cc:2403 msgid "Paint/Clone" msgstr "Pintar/Clonar" -#: f.menus.cc:233 f.repair.cc:2995 +#: f.menus.cc:196 f.repair.cc:2995 msgid "Remove Dust" msgstr "Retirar pols" -#: f.menus.cc:233 +#: f.menus.cc:196 msgid "Remove dust spots from scanned slides" msgstr "Eliminar pols de diapositives escanejades" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Anti-alias" msgstr "Suavitzar" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Smoothen edges with jaggies" msgstr "Suavitzar vores amb dents de serr" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Fix Color Fringes" msgstr "Corretgir franges de color" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Reduce Chromatic Abberation" msgstr "Reduïr l'aberració cromàtica" -#: f.menus.cc:236 +#: f.menus.cc:199 msgid "Erase known hot and dark pixels" msgstr "Esborrar píxels calents i foscos coneguts" -#: f.menus.cc:236 f.repair.cc:4008 +#: f.menus.cc:199 f.repair.cc:4008 msgid "Fix Stuck Pixels" msgstr "Corretgir píxels retinguts" -#: f.menus.cc:239 +#: f.menus.cc:201 msgid "Shift/convert colors into other colors" msgstr "Canviar/convertir uns colors en altres" -#: f.menus.cc:240 +#: f.menus.cc:202 msgid "Make BW/color, negative/positive, sepia" msgstr "Blanc i negre/color, negatiu/positiu, sèpia" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Color Profile" msgstr "Perfil de color" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Convert to another color profile" msgstr "Convertir a un perfil de color" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match Colors" msgstr "Concordància de colors" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match colors on one image with another" msgstr "Fer concordar colors d'una imatge amb els d'altra" -#: f.menus.cc:243 +#: f.menus.cc:205 msgid "Adjust color in selected image areas" msgstr "Ajustar color en una àrea seleccionada de una imatge" -#: f.menus.cc:244 +#: f.menus.cc:206 msgid "Adjust color using CMYK or RGB values" msgstr "Ajustar color utilitzant valors CMYK o RGB" -#: f.menus.cc:246 +#: f.menus.cc:208 msgid "Remove curvature, esp. panoramas" msgstr "Eliminar corbatura, especialment d'un panorama" -#: f.menus.cc:247 +#: f.menus.cc:209 msgid "Straighten objects seen from an angle" msgstr "Redreçar objectes vistos des d'un angle" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten Book Page" msgstr "Aplanar una pàgina impresa" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten a photographed book page" msgstr "Aplanar una pàgina impresa fotografiada" -#: f.menus.cc:249 +#: f.menus.cc:211 msgid "Distort image areas using the mouse" msgstr "Distorsionar una àrea de una imatge utilitzant el ratolí" -#: f.menus.cc:250 f.menus.cc:251 f.menus.cc:252 +#: f.menus.cc:212 f.menus.cc:213 f.menus.cc:214 msgid "Distort the whole image using the mouse" msgstr "Distorsionar tota la imatge utilitzant el ratolí" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Color Depth" msgstr "Profunditat de color" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Reduce color depth (posterize)" msgstr "Reduïr profunditat de color (posteritzar)" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Convert to pencil sketch" msgstr "Convertir en un esbós a llapis" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Sketch" msgstr " Esbós" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Convert to colored line drawing" msgstr "Convertir a un dibuix de línies acolorides" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Drawing" msgstr "Dibuixar" -#: f.menus.cc:257 +#: f.menus.cc:219 msgid "Graduated Blur depending on contrast" msgstr "Desenfocament graduat depenent del contrast" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Create an embossed or 3D appearance" msgstr "Crear un relleu o aparença 3D" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Embossing" msgstr "Relleu" -#: f.menus.cc:259 +#: f.menus.cc:221 msgid "Convert to square tiles" msgstr "Convertir a rajoles quadrades" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Convertir a punts (efecte Roy Lichtenstein" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Dots" msgstr "Punts" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Convert into a simulated painting" msgstr "Convertir a una pintura simulada" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Painting" msgstr "Pintura" -#: f.menus.cc:262 +#: f.menus.cc:224 msgid "Change brightness or color radially" msgstr "Canviar brillantor o color radialment" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Add texture to an image" msgstr "Afegir textura a una imatge" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Texture" msgstr "Textura" -#: f.menus.cc:264 +#: f.menus.cc:226 msgid "Tile image with a repeating pattern" msgstr "" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Create a mosaic with tiles made from all images" msgstr "" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Mosaic" msgstr "" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "Combine bright/dark images for better detail" msgstr "Combinar imatges fosques/il.luminadas per millorar detalls" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "High Dynamic Range" msgstr "HDR alt rang dinàmic" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "Combine near/far focus images for deeper focus" msgstr "" "Combinar imatges enfocades aprop/lluny per obtenir major profunditat de camp" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "High Depth of Field" msgstr "HDF alta profunditat de camp" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Combine images to erase passing people, etc." msgstr "Combinar imatges per esborrar vianants, cotxes, etc" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Stack / Paint" msgstr "Apilar / Pintar" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Combine noisy images into a low-noise image" msgstr "Combinar imatges amb soroll en imatges amb poc soroll" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Stack / Noise" msgstr "Apilar / Soroll" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Combine images into a panorama" msgstr "Combinar imatges en un panorama" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Panorama" msgstr "Panorama" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Combine images into a vertical panorama" msgstr "Combinar imatges en un panorama vertical" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Vertical Panorama" msgstr "Panorama vertical" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Arrange multiple images on a background image" msgstr "Organitzar múltiples imatges sobre una imatge de fons" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Mashup" msgstr "Muntatge" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Add another image editor to the menu" msgstr "Afegir un altre editor d'imatges al menú" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Edit Plugins" msgstr "Editar complements (Plugins)" -#: f.menus.cc:277 fotoxx-14.03.cc:3777 +#: f.menus.cc:239 fotoxx-14.04.cc:3801 msgid "Quick Start" msgstr "Inici ràpid" -#: f.menus.cc:277 +#: f.menus.cc:239 msgid "Quick Start mini-guide" msgstr "Minni guia d'inici ràpid" -#: f.menus.cc:278 +#: f.menus.cc:240 msgid "Read the user guide" msgstr "Llegir la guia d'usuari" -#: f.menus.cc:278 fotoxx-14.03.cc:3780 +#: f.menus.cc:240 fotoxx-14.04.cc:3804 msgid "User Guide" msgstr "Guia d'usuari" -#: f.menus.cc:279 +#: f.menus.cc:241 msgid "Recent user guide changes" msgstr "Canvis recents a la guia d'usuari" -#: f.menus.cc:279 fotoxx-14.03.cc:3783 +#: f.menus.cc:241 fotoxx-14.04.cc:3807 msgid "User Guide Changes" msgstr "Canvis a la guia d'usuari" -#: f.menus.cc:280 +#: f.menus.cc:242 msgid "Fotoxx updates notification" msgstr "Notificació d'actualitzacions de Fotoxx" -#: f.menus.cc:280 fotoxx-14.03.cc:3786 +#: f.menus.cc:242 fotoxx-14.04.cc:3810 msgid "Program Updates" msgstr "Actualitzacions del programa" -#: f.menus.cc:281 fotoxx-14.03.cc:3792 +#: f.menus.cc:243 fotoxx-14.04.cc:3816 msgid "Edit Functions Summary" msgstr "Resum de les funcions d'edició" -#: f.menus.cc:281 +#: f.menus.cc:243 msgid "Summary of image edit functions" msgstr "Resum de les funcions d'edició d'imatge" -#: f.menus.cc:282 fotoxx-14.03.cc:3789 +#: f.menus.cc:244 fotoxx-14.04.cc:3813 msgid "README" msgstr "LLEGEIX-ME" -#: f.menus.cc:282 +#: f.menus.cc:244 msgid "Technical installation notes" msgstr "Notes tècniques d'instal.lació " -#: f.menus.cc:283 fotoxx-14.03.cc:3795 +#: f.menus.cc:245 fotoxx-14.04.cc:3819 msgid "Change Log" msgstr "Registre de canvis" -#: f.menus.cc:283 +#: f.menus.cc:245 msgid "List updates by Fotoxx version" msgstr "Llistar actualitzacions per versió de Fotoxx" -#: f.menus.cc:284 fotoxx-14.03.cc:3798 +#: f.menus.cc:246 fotoxx-14.04.cc:3822 msgid "Log File" msgstr "Arxiu de registre" -#: f.menus.cc:284 +#: f.menus.cc:246 msgid "View the log file and error messages" msgstr "Veure l'arxiu de registre i missatges d'error" -#: f.menus.cc:285 +#: f.menus.cc:247 msgid "How to do Fotoxx translations" msgstr "Com fer traduccións de Fotoxx" -#: f.menus.cc:285 fotoxx-14.03.cc:3801 +#: f.menus.cc:247 fotoxx-14.04.cc:3825 msgid "Translations" msgstr "Traduccions" -#: f.menus.cc:286 fotoxx-14.03.cc:3804 +#: f.menus.cc:248 fotoxx-14.04.cc:3828 msgid "Home Page" msgstr "Pàgina web de Fotoxx" -#: f.menus.cc:286 +#: f.menus.cc:248 msgid "Show the Fotoxx web page" msgstr "Mostrar la pàgina web de Fotoxx" -#: f.menus.cc:287 fotoxx-14.03.cc:3807 +#: f.menus.cc:249 fotoxx-14.04.cc:3831 msgid "About" msgstr "Sobre Fotoxx " -#: f.menus.cc:287 +#: f.menus.cc:249 msgid "Version, license, contact, credits" msgstr "Versió, llicència, contacte, crèdits" -#: f.menus.cc:290 -msgid "Favs" -msgstr "Favorits" - -#: f.menus.cc:292 +#: f.menus.cc:251 msgid "Color of area borders etc." msgstr "Color de contorns d'àrea etc. " -#: f.menus.cc:293 fotoxx.h:1072 +#: f.menus.cc:252 fotoxx.h:1078 msgid "Undo" msgstr "Desfer" -#: f.menus.cc:293 +#: f.menus.cc:252 msgid "Undo one edit" msgstr "Desfer una edició" -#: f.menus.cc:294 fotoxx.h:1051 +#: f.menus.cc:253 fotoxx.h:1056 msgid "Redo" msgstr "Refer" -#: f.menus.cc:294 +#: f.menus.cc:253 msgid "Redo one edit" msgstr "Refer una edició" -#: f.menus.cc:296 f.menus.cc:432 +#: f.menus.cc:254 f.menus.cc:348 msgid "Set gallery from current image file" msgstr "Establir galeria des de l'imatge actual" -#: f.menus.cc:298 +#: f.menus.cc:256 msgid "Open the previous file" msgstr "Obrir l'arxiu anterior" -#: f.menus.cc:298 fotoxx.h:1046 +#: f.menus.cc:256 fotoxx.h:1051 msgid "Prev" msgstr "Anterior" -#: f.menus.cc:299 fotoxx.h:1034 +#: f.menus.cc:257 fotoxx.h:1039 msgid "Next" msgstr "Següent" -#: f.menus.cc:299 +#: f.menus.cc:257 msgid "Open the next file" msgstr "Obrir el pròxim arxiu" -#: f.menus.cc:301 f.menus.cc:483 fotoxx.h:1068 +#: f.menus.cc:259 f.menus.cc:396 fotoxx.h:1074 msgid "Trash" msgstr "Eliminar" -#: f.menus.cc:344 f.menus.cc:373 +#: f.menus.cc:306 msgid "Run as Fotoxx edit function" msgstr "Obrir com una funció d'edició de Fotoxx" -#: f.menus.cc:412 +#: f.menus.cc:328 msgid "Top" msgstr "Adalt" -#: f.menus.cc:433 +#: f.menus.cc:349 msgid "open another directory" msgstr "obrir un altre directori" -#: f.menus.cc:434 +#: f.menus.cc:350 msgid "go to bookmarked image" msgstr "anar a imatge marcada" -#: f.menus.cc:435 +#: f.menus.cc:351 msgid "increase thumbnail size" msgstr "Augmentar mida de miniatura" -#: f.menus.cc:436 +#: f.menus.cc:352 msgid "reduce thumbnail size" msgstr "reduir mida de miniatura" -#: f.menus.cc:437 +#: f.menus.cc:353 msgid "change sort order" msgstr "canviar criteri d'ordenació" -#: f.menus.cc:438 +#: f.menus.cc:354 msgid "jump to beginning (top)" msgstr "anar al principi (a dalt)" -#: f.menus.cc:439 +#: f.menus.cc:355 msgid "jump to end (bottom)" msgstr "anar al final (a baix)" -#: f.menus.cc:440 +#: f.menus.cc:356 msgid "previous page" msgstr "pàgina anterior" -#: f.menus.cc:441 +#: f.menus.cc:357 msgid "next page" msgstr "pàgina següent" -#: f.menus.cc:442 +#: f.menus.cc:358 msgid "previous row" msgstr "fila anterior" -#: f.menus.cc:443 +#: f.menus.cc:359 msgid "next row" msgstr "fila següent" -#: f.menus.cc:461 +#: f.menus.cc:360 +msgid "slow scroll" +msgstr "" + +#: f.menus.cc:374 msgid "Popup Image" msgstr "" -#: f.menus.cc:463 fotoxx.h:1054 +#: f.menus.cc:376 fotoxx.h:1059 msgid "Rename" msgstr "Canviar el nom" -#: f.menus.cc:464 +#: f.menus.cc:377 msgid "Copy to Location" msgstr "Copiar a la ubicació" -#: f.menus.cc:465 +#: f.menus.cc:378 msgid "Move to Location" msgstr "Moure a la ubicació" -#: f.menus.cc:466 +#: f.menus.cc:379 msgid "Copy to Clipboard" msgstr "Copiar al portapapers" -#: f.menus.cc:467 +#: f.menus.cc:380 msgid "Remove from Collection" msgstr "Elkiminar de la col.lecció" -#: f.menus.cc:468 +#: f.menus.cc:381 msgid "Cut to Image Cache" msgstr " Tallar a la cache d'imatge" -#: f.menus.cc:469 +#: f.menus.cc:382 msgid "Copy to Image Cache" msgstr "Copiar a la cache d'imatge " -#: f.menus.cc:470 +#: f.menus.cc:383 msgid "Paste Image Cache Here (clear)" msgstr "Enganxar aquí cache d'imatge (esborrar) " -#: f.menus.cc:471 +#: f.menus.cc:384 msgid "Paste Image Cache Here (keep)" msgstr "Enganxar aquí cache d'imatge (guardar) " -#: f.menus.cc:481 +#: f.menus.cc:394 msgid "Select Area" msgstr "Select Area" @@ -2434,7 +2459,7 @@ msgid "Rating: %c (stars)" msgstr "Classificació : %c (estrelles)" -#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1939 f.meta.cc:3036 f.meta.cc:3311 +#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1940 f.meta.cc:3040 f.meta.cc:3315 msgid "file type cannot have metadata" msgstr "" @@ -2486,7 +2511,7 @@ msgid "Recent Tags" msgstr "etiquetes recents" -#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4267 +#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4271 msgid "Defined Tags" msgstr "etiquetes definides" @@ -2506,7 +2531,7 @@ msgid "time is invalid" msgstr "hora no vàlida" -#: f.meta.cc:532 fotoxx.h:1029 +#: f.meta.cc:532 fotoxx.h:1034 msgid "Manage Tags" msgstr "Gestionar etiquetes" @@ -2522,11 +2547,11 @@ msgid "tag" msgstr "etiqueta" -#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1474 +#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1449 msgid "file not found" msgstr "arxiu no trobat" -#: f.meta.cc:1552 f.meta.cc:3257 f.tools.cc:4501 f.tools.cc:4966 +#: f.meta.cc:1552 f.meta.cc:3261 f.tools.cc:4800 f.tools.cc:5265 msgid "0 files selected" msgstr "0 arxius seleccionats" @@ -2551,7 +2576,7 @@ msgid "specify files and tags" msgstr "especificar arxius i etiquetes" -#: f.meta.cc:1788 f.meta.cc:3369 f.tools.cc:4800 f.tools.cc:5185 +#: f.meta.cc:1788 f.meta.cc:3373 f.tools.cc:5099 f.tools.cc:5484 #, c-format msgid "%d files selected" msgstr "%d arxius seleccionats" @@ -2560,11 +2585,11 @@ msgid "View Metadata" msgstr "Veure metadades" -#: f.meta.cc:1903 +#: f.meta.cc:1904 msgid "Caption: \n" msgstr "Llegenda : \n" -#: f.meta.cc:1905 +#: f.meta.cc:1906 msgid "" "\n" "Comment: \n" @@ -2572,23 +2597,23 @@ "\n" "Comentari : \n" -#: f.meta.cc:1949 +#: f.meta.cc:1950 msgid "key name" msgstr "nom de clau" -#: f.meta.cc:1951 +#: f.meta.cc:1952 msgid "key value" msgstr "valor de clau" -#: f.meta.cc:2041 fotoxx.h:985 +#: f.meta.cc:2042 fotoxx.h:990 msgid "All" msgstr "Tot" -#: f.meta.cc:2042 +#: f.meta.cc:2043 msgid "One Key:" msgstr "Una clau:" -#: f.meta.cc:2222 +#: f.meta.cc:2223 #, c-format msgid "" "Download geotags data (8 megabytes). \n" @@ -2599,48 +2624,40 @@ "Desar a %s \n" "Procedir?" -#: f.meta.cc:2261 +#: f.meta.cc:2262 msgid "download failed" msgstr "la descàrrega ha fallat" -#: f.meta.cc:2292 fotoxx-14.03.cc:1079 -msgid "Location from World Map" -msgstr "Ubicació des d'un mapa mundial" - -#: f.meta.cc:2294 -msgid "Loading world map" -msgstr "Carregant mapa mundial" - -#: f.meta.cc:2304 f.meta.cc:2449 +#: f.meta.cc:2298 f.meta.cc:2445 msgid "please download geolocations data" msgstr "si us plau, descarregar dades de geo-ubicacions" -#: f.meta.cc:2309 +#: f.meta.cc:2304 msgid "Loading geolocations" msgstr "Carregant geo-ubicacions" -#: f.meta.cc:2737 f.meta.cc:3209 f.meta.cc:3477 +#: f.meta.cc:2741 f.meta.cc:3213 f.meta.cc:3481 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "latitud/longitud errònia: %s %s" -#: f.meta.cc:3024 +#: f.meta.cc:3028 msgid "Geocoding web service courtesy of" msgstr "Servei web de geo-codis cortesia de" -#: f.meta.cc:3045 f.meta.cc:3259 f.meta.cc:4772 +#: f.meta.cc:3049 f.meta.cc:3263 f.meta.cc:4778 msgid "city" msgstr "ciutat" -#: f.meta.cc:3048 f.meta.cc:3262 f.meta.cc:4775 +#: f.meta.cc:3052 f.meta.cc:3266 f.meta.cc:4781 msgid "country" msgstr "pais" -#: f.meta.cc:3120 f.meta.cc:3390 +#: f.meta.cc:3124 f.meta.cc:3394 msgid "city not found" msgstr "ciutat no trobada" -#: f.meta.cc:3455 +#: f.meta.cc:3459 msgid "" "data is incomplete \n" " proceed?" @@ -2648,139 +2665,139 @@ "les dades són incompletas \n" " procedir?" -#: f.meta.cc:3481 f.tools.cc:4844 +#: f.meta.cc:3485 f.tools.cc:5143 msgid "no files selected" msgstr "no hi han arxius seleccionats" -#: f.meta.cc:3513 +#: f.meta.cc:3517 msgid "choose city" msgstr "escollir ciutat" -#: f.meta.cc:3599 +#: f.meta.cc:3603 msgid "not found" msgstr "no trobada" -#: f.meta.cc:3600 +#: f.meta.cc:3604 msgid "city and country required" msgstr "és necessari ciutat i pais" -#: f.meta.cc:3692 +#: f.meta.cc:3696 msgid "Report Geotag Groups" msgstr "Informe de grups de geoetiquetes" -#: f.meta.cc:3693 +#: f.meta.cc:3697 msgid "Group by country" msgstr "Agrupar per pais" -#: f.meta.cc:3694 +#: f.meta.cc:3698 msgid "Group by country/city" msgstr "Agrupar per pais/ciutat" -#: f.meta.cc:3695 +#: f.meta.cc:3699 msgid "Group by country/city/date" msgstr "Agrupar pais/ciutat/data" -#: f.meta.cc:3698 +#: f.meta.cc:3702 msgid "Combine within" msgstr "Conbinar dins de" -#: f.meta.cc:3700 +#: f.meta.cc:3704 msgid "days" msgstr "dies" -#: f.meta.cc:3815 +#: f.meta.cc:3819 msgid "geotag groups" msgstr "grups de geo-etiquetes" -#: f.meta.cc:4043 +#: f.meta.cc:4047 msgid "search range (km)" msgstr "buscar rang (km)" -#: f.meta.cc:4116 +#: f.meta.cc:4120 msgid "No matching images found" msgstr "No s'han trobat imatges coincidents" -#: f.meta.cc:4202 +#: f.meta.cc:4206 msgid "Search Image Metadata" msgstr "Buscar metadades de la imatge" -#: f.meta.cc:4206 +#: f.meta.cc:4210 msgid "images to search:" msgstr "imatges a buscar:" -#: f.meta.cc:4207 +#: f.meta.cc:4211 msgid "all" msgstr "tot" -#: f.meta.cc:4208 +#: f.meta.cc:4212 msgid "current set only" msgstr "omés selecció actual" -#: f.meta.cc:4211 +#: f.meta.cc:4215 msgid "matching images:" msgstr "imatges coïncidents" -#: f.meta.cc:4212 +#: f.meta.cc:4216 msgid "new set" msgstr "nova selecció" -#: f.meta.cc:4213 +#: f.meta.cc:4217 msgid "add to set" msgstr "afegir a la selecció" -#: f.meta.cc:4214 +#: f.meta.cc:4218 msgid "remove" msgstr "eliminar" -#: f.meta.cc:4217 +#: f.meta.cc:4221 msgid "report type:" msgstr "" -#: f.meta.cc:4218 +#: f.meta.cc:4222 msgid "gallery" msgstr "" -#: f.meta.cc:4219 +#: f.meta.cc:4223 msgid "metadata" msgstr "" -#: f.meta.cc:4225 +#: f.meta.cc:4229 msgid "date range" msgstr "rand de dates" -#: f.meta.cc:4226 +#: f.meta.cc:4230 msgid "stars range" msgstr "rang d'estrelles" -#: f.meta.cc:4227 +#: f.meta.cc:4231 msgid "search tags" msgstr "buscar etiquetes" -#: f.meta.cc:4228 +#: f.meta.cc:4232 msgid "search text" msgstr "buscar text" -#: f.meta.cc:4229 +#: f.meta.cc:4233 msgid "search files" msgstr "buscar arxius" -#: f.meta.cc:4234 +#: f.meta.cc:4238 msgid "(yyyymmdd)" msgstr "(aaaammdd)" -#: f.meta.cc:4240 +#: f.meta.cc:4244 msgid "all/any" msgstr "tot/qualsevol" -#: f.meta.cc:4259 +#: f.meta.cc:4263 msgid "other criteria" msgstr "altres criteris" -#: f.meta.cc:4263 +#: f.meta.cc:4267 msgid "other" msgstr "altre" -#: f.meta.cc:4398 +#: f.meta.cc:4402 msgid "" "to remove images from current set, \n" "search current set" @@ -2788,7 +2805,7 @@ "per eliminar imatges de laa selecció actual, \n" "buscar en la selecció actual" -#: f.meta.cc:4405 +#: f.meta.cc:4409 msgid "" "to add images to current set, \n" "search all images" @@ -2796,28 +2813,28 @@ "per afegir imatges a la selecció actual, \n" "buscar en totes les imatges" -#: f.meta.cc:4632 +#: f.meta.cc:4636 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "imatges afegides: %d eliminades: %d nova quantitat: %d" -#: f.meta.cc:4635 +#: f.meta.cc:4639 msgid "no changes made" msgstr "no s'han fet canvis" -#: f.meta.cc:4769 +#: f.meta.cc:4775 msgid "Add Geotags Search Criteria" msgstr "Afegir criteris de cerca de geoetiquetes" -#: f.meta.cc:4788 +#: f.meta.cc:4794 msgid "range (km)" msgstr "rang (km)" -#: f.meta.cc:4881 +#: f.meta.cc:4885 msgid "error in latitude/longitude/range" msgstr "error em latitud/longitud/rang" -#: f.meta.cc:4946 +#: f.meta.cc:4950 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2825,19 +2842,19 @@ "Sempre s'informa d'aquests detalls: \n" "data, estrelles, etiquetes, llegenda, comentari" -#: f.meta.cc:4970 +#: f.meta.cc:4974 msgid "Additional Items for Report" msgstr "Detalls addicionals per a l'informe" -#: f.meta.cc:4976 +#: f.meta.cc:4980 msgid "Keyword" msgstr "Paraula clau" -#: f.meta.cc:4983 +#: f.meta.cc:4987 msgid "Match Criteria" msgstr "Criteri de coincidència" -#: f.meta.cc:5554 f.tools.cc:300 +#: f.meta.cc:5558 f.tools.cc:300 msgid "image index is missing" msgstr "Necessari índex d'imatges\t" @@ -2881,7 +2898,7 @@ "1. Arrossegar el ratolí per seleccionar. \n" "2. Esborrar. 3. Repetir. " -#: f.repair.cc:1563 fotoxx.h:1048 +#: f.repair.cc:1563 fotoxx.h:1053 msgid "Radius" msgstr "Radi" @@ -3002,87 +3019,95 @@ msgid "Stuck Pixels file" msgstr "Arxiu de píxels defectuosos" -#: f.repair.cc:4203 +#: f.repair.cc:4203 f.tools.cc:3380 msgid "file format error" msgstr "error de format d'arxiu" -#: f.retouch.cc:292 fotoxx.h:993 +#: f.retouch.cc:292 +msgid "Amplifier" +msgstr "" + +#: f.retouch.cc:293 fotoxx.h:998 msgid "Brightness" msgstr "Brillantor" -#: f.retouch.cc:293 fotoxx.h:1000 +#: f.retouch.cc:294 fotoxx.h:1005 msgid "Contrast" msgstr "Contrast" -#: f.retouch.cc:294 +#: f.retouch.cc:295 msgid "Low Color" msgstr "Color -" -#: f.retouch.cc:295 +#: f.retouch.cc:296 msgid "Warmer" msgstr "Càlid" -#: f.retouch.cc:296 +#: f.retouch.cc:297 msgid "Dark Areas" msgstr "Ombres" -#: f.retouch.cc:304 f.retouch.cc:305 f.retouch.cc:306 +#: f.retouch.cc:306 +msgid "Max." +msgstr "" + +#: f.retouch.cc:307 f.retouch.cc:308 f.retouch.cc:309 msgid "High" msgstr "+" -#: f.retouch.cc:307 +#: f.retouch.cc:310 msgid "Cooler" msgstr "Fred" -#: f.retouch.cc:308 +#: f.retouch.cc:311 msgid "Bright" msgstr "Llums" -#: f.retouch.cc:311 +#: f.retouch.cc:317 msgid "Click for white balance or black level" msgstr "Clic per balanç de blanc o punt negre" -#: f.retouch.cc:957 +#: f.retouch.cc:1067 msgid "low" msgstr "baix" -#: f.retouch.cc:959 +#: f.retouch.cc:1069 msgid "high" msgstr "alt" -#: f.retouch.cc:962 +#: f.retouch.cc:1072 msgid "Amplify" msgstr "Ampliar" -#: f.retouch.cc:1301 +#: f.retouch.cc:1411 msgid "Adjust Brightness Distribution" msgstr "Ajustar histograma" -#: f.retouch.cc:1339 +#: f.retouch.cc:1449 msgid "Flatten" msgstr "Aplanar" -#: f.retouch.cc:1340 +#: f.retouch.cc:1450 msgid "Deband" msgstr "Eliminar bandes" -#: f.retouch.cc:1341 +#: f.retouch.cc:1451 msgid "Darken" msgstr "Enfosquir" -#: f.retouch.cc:1342 +#: f.retouch.cc:1452 msgid "Brighten" msgstr "Aclarar" -#: f.retouch.cc:1675 +#: f.retouch.cc:1784 msgid "Ramp brightness across image" msgstr "Rampa de brillantor a través de la imatge" -#: f.retouch.cc:2052 f.tools.cc:5777 +#: f.retouch.cc:2161 f.retouch.cc:2398 f.tools.cc:6085 msgid "Edit function must be active" msgstr "La funció d'editar pintant ha d'estar activada" -#: f.retouch.cc:2060 fotoxx-14.03.cc:3108 +#: f.retouch.cc:2169 fotoxx-14.04.cc:3132 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -3090,14 +3115,26 @@ "Àrea seleccionada no pot ser guardada.\n" "Continuar?" -#: f.retouch.cc:2089 +#: f.retouch.cc:2198 msgid "power: center" msgstr "força: centre" -#: f.retouch.cc:2094 +#: f.retouch.cc:2203 msgid "reset area" msgstr "reiniciar àrea" +#: f.retouch.cc:2391 +msgid "Edit Function Amplifier" +msgstr "Amplificador de la funció d'edició" + +#: f.retouch.cc:2427 +msgid "minimum" +msgstr "mínim" + +#: f.retouch.cc:2429 +msgid "maximum" +msgstr "màxim" + #: f.tools.cc:95 msgid "Top Image Directories" msgstr "Directoris superiors d'imatges" @@ -3153,152 +3190,136 @@ msgid "COMPLETED" msgstr "COMPLETAT" -#: f.tools.cc:818 +#: f.tools.cc:817 msgid "Settings" msgstr "Ajustos" -#: f.tools.cc:821 +#: f.tools.cc:820 msgid "Startup Display" msgstr "Pantalla d'inici" -#: f.tools.cc:823 +#: f.tools.cc:822 msgid "Recent Files Gallery" msgstr "Galeria d'arxius recents" -#: f.tools.cc:825 +#: f.tools.cc:824 msgid "Newest Files Gallery" msgstr "Galeria d'arxius nous" -#: f.tools.cc:827 +#: f.tools.cc:826 msgid "Previous Gallery" msgstr "" -#: f.tools.cc:829 +#: f.tools.cc:828 msgid "Previous Image" msgstr "" -#: f.tools.cc:831 +#: f.tools.cc:830 msgid "Blank Window" msgstr "Finestra buida" -#: f.tools.cc:833 +#: f.tools.cc:832 msgid "Directory Gallery" msgstr "Galeria de directoris" -#: f.tools.cc:837 +#: f.tools.cc:836 msgid "Image File" msgstr "Arxiu d'imatges" -#: f.tools.cc:844 -msgid "Menu Style" -msgstr "Estil de menú" - -#: f.tools.cc:845 -msgid "Classic" -msgstr "Clàssic" - -#: f.tools.cc:846 -msgid "Vertical" -msgstr "Vertical" - -#: f.tools.cc:849 +#: f.tools.cc:843 msgid "Toolbar Style" msgstr "Estil de la barra d'eines" -#: f.tools.cc:851 +#: f.tools.cc:845 msgid "Icons" msgstr "Iconas" -#: f.tools.cc:852 +#: f.tools.cc:846 msgid "Both" msgstr "Els dos" -#: f.tools.cc:855 +#: f.tools.cc:849 msgid "Image Pan" msgstr "Moviment de la imatge" -#: f.tools.cc:856 +#: f.tools.cc:850 msgid "Drag" msgstr "Arrossegar" -#: f.tools.cc:857 -msgid "Scroll" -msgstr "Desplaçar" - -#: f.tools.cc:858 +#: f.tools.cc:852 msgid "Magnified" msgstr "Ampliada" -#: f.tools.cc:867 +#: f.tools.cc:861 msgid "Default JPEG quality" msgstr "qualitat JPEG per defecte" -#: f.tools.cc:871 +#: f.tools.cc:865 msgid "Zooms for 200%" msgstr "Zooms per 200%" -#: f.tools.cc:875 +#: f.tools.cc:869 msgid "RAW command" msgstr "Comandament RAW" -#: f.tools.cc:879 +#: f.tools.cc:873 msgid "RAW file types" msgstr "Tipus d'arxius RAW" -#: f.tools.cc:1027 +#: f.tools.cc:1016 msgid "startup directory is invalid" msgstr "directori d'inici no és vàlid" -#: f.tools.cc:1035 +#: f.tools.cc:1024 msgid "startup file is invalid" msgstr "arxiu d'inici no és vàlid" -#: f.tools.cc:1130 +#: f.tools.cc:1105 msgid "Select startup directory" msgstr "Seleccionar directori d'inici" -#: f.tools.cc:1138 +#: f.tools.cc:1113 msgid "Select startup image file" msgstr "Seleccionarimatge d'inici" -#: f.tools.cc:1176 +#: f.tools.cc:1151 msgid "Click list position. Click thumbnail to add." msgstr "Clic una posició de la llista. Clic una miniatura per afegir" -#: f.tools.cc:1201 f.tools.cc:1418 +#: f.tools.cc:1176 f.tools.cc:1393 msgid "Edit Bookmarks" msgstr "Editar marcadors" -#: f.tools.cc:1349 +#: f.tools.cc:1324 msgid "unable to save bookmarks file" msgstr "no puc guardar arxiu de marcadors" -#: f.tools.cc:1418 +#: f.tools.cc:1393 msgid "Go To Bookmark" msgstr "Anar a un marcador" -#: f.tools.cc:1563 +#: f.tools.cc:1538 msgid "Edit KB Shortcuts" msgstr "Editar tecles drecera" -#: f.tools.cc:1568 +#: f.tools.cc:1543 msgid "shortcut key:" msgstr "tecla drecera" -#: f.tools.cc:1569 +#: f.tools.cc:1544 msgid "(enter key)" msgstr "" -#: f.tools.cc:1695 +#: f.tools.cc:1670 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Reservada, no es pot utilitzar" -#: f.tools.cc:1826 +#: f.tools.cc:1801 msgid "unable to save KB-shortcuts file" msgstr "no es pot guardar arxiu de tecles drecera" -#: f.tools.cc:1914 +#: f.tools.cc:1889 msgid "" "Right-click collection thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -3306,280 +3327,313 @@ "Clic dret en una miniatira de col.lecció per tallar/copiar \n" " a la caché, inserir des de la caché, o esborrar" -#: f.tools.cc:1955 +#: f.tools.cc:1930 msgid "Start a new collection, add images" msgstr "Començar una nova col.lecció, afegir imatges" -#: f.tools.cc:1957 +#: f.tools.cc:1932 msgid "New collection from current gallery" msgstr "Nova col.lecció des de la galeria actual" -#: f.tools.cc:1959 +#: f.tools.cc:1934 msgid "Collection to view or edit" msgstr "Col.lecció per veure o editar" -#: f.tools.cc:1961 +#: f.tools.cc:1936 msgid "Select images, add to cache" msgstr "Seleccionar imatges, afegir a la cache" -#: f.tools.cc:1963 +#: f.tools.cc:1938 msgid "Clear image cache" msgstr "Netejar cache d'imatge" -#: f.tools.cc:1964 +#: f.tools.cc:1939 msgid "(0 images)" msgstr "(0 imatges)" -#: f.tools.cc:1966 +#: f.tools.cc:1941 msgid "Delete a collection" msgstr "Esborrar una col.lecció" -#: f.tools.cc:1987 +#: f.tools.cc:1962 msgid "New Collection" msgstr "Nova col.lecció" -#: f.tools.cc:1988 +#: f.tools.cc:1963 msgid "Choose Collection" msgstr "Escollir col.lecció" -#: f.tools.cc:1989 +#: f.tools.cc:1964 msgid "Delete Collection" msgstr "Esborrar col.lecció" -#: f.tools.cc:1990 +#: f.tools.cc:1965 #, c-format msgid "(%d images)" msgstr "(%d imatges)" -#: f.tools.cc:1991 +#: f.tools.cc:1966 #, c-format msgid "%d images remaining in cache" msgstr "%d imatges encara en caché" -#: f.tools.cc:2025 f.tools.cc:2064 +#: f.tools.cc:2000 f.tools.cc:2039 msgid "New collection created" msgstr "Nova col.lecció creada" -#: f.tools.cc:2031 +#: f.tools.cc:2006 msgid "gallery is empty" msgstr "la galeria està buida" -#: f.tools.cc:2105 +#: f.tools.cc:2080 #, c-format msgid "delete %s ?" msgstr "esborrar %s ?" -#: f.tools.cc:2461 +#: f.tools.cc:2436 msgid "all collections" msgstr "tates les colleccions" -#: f.tools.cc:2495 +#: f.tools.cc:2470 msgid "Move Collection" msgstr "Moure col.leccions" -#: f.tools.cc:2497 +#: f.tools.cc:2472 msgid "collection name" msgstr "nom de col.lecció" -#: f.tools.cc:2500 +#: f.tools.cc:2475 msgid "old path segment" msgstr "antiga branca de directori" -#: f.tools.cc:2503 +#: f.tools.cc:2478 msgid "new path segment" msgstr "nova branca de directori" -#: f.tools.cc:2592 +#: f.tools.cc:2567 msgid "Replace Collection?" msgstr "Substituir collecció?" -#: f.tools.cc:2708 +#: f.tools.cc:2694 msgid "Press ESC to exit slide show" msgstr "Prémer ESC per sortir del diaporama" -#: f.tools.cc:2709 -msgid "last versions" -msgstr "últimes versions" - -#: f.tools.cc:2713 +#: f.tools.cc:2696 msgid "instant" msgstr "instantània" -#: f.tools.cc:2714 +#: f.tools.cc:2697 msgid "fade-in" msgstr "fusió endins" -#: f.tools.cc:2715 +#: f.tools.cc:2698 msgid "roll-right" msgstr "enrotllar a la dreta" -#: f.tools.cc:2716 +#: f.tools.cc:2699 msgid "roll-down" msgstr "enrotllar abaix" -#: f.tools.cc:2717 +#: f.tools.cc:2700 msgid "venetian" msgstr "persiana" -#: f.tools.cc:2718 +#: f.tools.cc:2701 msgid "grate" msgstr "enreixat" -#: f.tools.cc:2719 +#: f.tools.cc:2702 msgid "rectangle" msgstr "rectangle" -#: f.tools.cc:2720 +#: f.tools.cc:2703 msgid "radar" msgstr "radar" -#: f.tools.cc:2721 +#: f.tools.cc:2704 msgid "jaws" msgstr "dents" -#: f.tools.cc:2722 +#: f.tools.cc:2705 msgid "ellipse" msgstr "elipsi" -#: f.tools.cc:2723 +#: f.tools.cc:2706 msgid "raindrops" msgstr "gotes de pluja" -#: f.tools.cc:2724 +#: f.tools.cc:2707 msgid "doubledoor" msgstr "doble porta" -#: f.tools.cc:2725 +#: f.tools.cc:2708 msgid "rotate" msgstr "" -#: f.tools.cc:2787 -msgid "Pause List" -msgstr "Llistar pauses" - -#: f.tools.cc:2794 -msgid "transitions" -msgstr "transicions" +#: f.tools.cc:2739 +msgid "Clip Limit" +msgstr "Límit de sequencia" -#: f.tools.cc:2796 -msgid "seconds" -msgstr "segons" +#: f.tools.cc:2741 +msgid "Show Captions" +msgstr "" -#: f.tools.cc:2800 -msgid "Clip Limit (%)" -msgstr "Límit de sequencia (%)" +#: f.tools.cc:2744 +msgid "Music File" +msgstr "Arxiu de Música" -#: f.tools.cc:2802 -msgid "show captions" +#: f.tools.cc:2749 +msgid "Customize:" msgstr "" -#: f.tools.cc:2805 -msgid "music file" -msgstr "arxiu de música" +#: f.tools.cc:2750 +msgid "transitions" +msgstr "transicions" + +#: f.tools.cc:2751 +msgid "image files" +msgstr "" -#: f.tools.cc:2820 f.tools.cc:2828 f.tools.cc:2956 f.tools.cc:2979 -#: f.tools.cc:2992 +#: f.tools.cc:2759 f.tools.cc:2880 #, c-format msgid "%d images" msgstr "%d imatges" -#: f.tools.cc:2854 -msgid "no image files selected" -msgstr "no seleccionats arxius d'imatge" +#: f.tools.cc:2781 f.tools.cc:2847 f.tools.cc:2875 f.tools.cc:2937 +#: f.tools.cc:3033 f.tools.cc:3189 f.tools.cc:3236 f.tools.cc:3253 +#: f.tools.cc:3396 +msgid "invalid collection" +msgstr "col.lecció no vàlida" -#: f.tools.cc:2945 f.tools.cc:2968 +#: f.tools.cc:2860 msgid "open collection" msgstr "obrir col.lectió" -#: f.tools.cc:3013 +#: f.tools.cc:2900 msgid "Select music file or playlist" msgstr "Seleccionar arxiu de música o lista de reproducció" -#: f.tools.cc:3046 -msgid "invalid collection" -msgstr "col.lecció no vàlida" - -#: f.tools.cc:3061 f.tools.cc:3131 -msgid "empty collection" -msgstr "col.lecció buida" - -#: f.tools.cc:3167 +#: f.tools.cc:2917 msgid "select random (if 5+ enabled)" msgstr "" -#: f.tools.cc:3186 +#: f.tools.cc:2941 msgid "Transition Preferences" msgstr "Preferències de transició" -#: f.tools.cc:3196 +#: f.tools.cc:2950 msgid "transition" msgstr "transició" -#: f.tools.cc:3197 +#: f.tools.cc:2951 msgid "enabled" msgstr "habilitada" -#: f.tools.cc:3198 +#: f.tools.cc:2952 msgid "slowdown" msgstr "ralentitzar" -#: f.tools.cc:3199 +#: f.tools.cc:2953 msgid "preference" msgstr "preferència" -#: f.tools.cc:4506 +#: f.tools.cc:3037 +msgid "Image Preferences" +msgstr "" + +#: f.tools.cc:3041 f.tools.cc:3090 f.tools.cc:3202 +msgid "Image File:" +msgstr "Arxiu d'imatges:" + +#: f.tools.cc:3044 +msgid "Play tone" +msgstr "" + +#: f.tools.cc:3046 +msgid "Transition" +msgstr "" + +#: f.tools.cc:3051 f.tools.cc:3071 +msgid "+Seconds" +msgstr "" + +#: f.tools.cc:3053 +msgid "before zoom" +msgstr "" + +#: f.tools.cc:3056 +msgid "Zoom size %" +msgstr "" + +#: f.tools.cc:3059 +msgid "Steps" +msgstr "" + +#: f.tools.cc:3063 +msgid "Zoom center" +msgstr "" + +#: f.tools.cc:3073 +msgid "after zoom" +msgstr "" + +#: f.tools.cc:3075 +msgid "next" +msgstr "següent" + +#: f.tools.cc:4805 msgid "base" msgstr "inici" -#: f.tools.cc:4508 +#: f.tools.cc:4807 msgid "adder" msgstr "increment" -#: f.tools.cc:4512 +#: f.tools.cc:4811 msgid "New Location" msgstr "Nova ubicació" -#: f.tools.cc:4517 +#: f.tools.cc:4816 msgid "New File Type" msgstr "Nou tipus d'arxiu" -#: f.tools.cc:4521 f.tools.cc:4529 +#: f.tools.cc:4820 f.tools.cc:4828 msgid "no change" msgstr "sense canvis" -#: f.tools.cc:4524 +#: f.tools.cc:4823 msgid "max. Width" msgstr "Ample màx." -#: f.tools.cc:4527 fotoxx.h:1020 +#: f.tools.cc:4826 fotoxx.h:1025 msgid "Height" msgstr "Alçada" -#: f.tools.cc:4532 f.tools.cc:4905 +#: f.tools.cc:4831 f.tools.cc:5204 msgid "Delete Originals" msgstr "Esborrar originals" -#: f.tools.cc:4533 f.tools.cc:4902 +#: f.tools.cc:4832 f.tools.cc:5201 msgid "Copy Metadata" msgstr "Copiar metadades" -#: f.tools.cc:4534 f.tools.cc:4903 +#: f.tools.cc:4833 f.tools.cc:5202 msgid "Upright" msgstr "Adressar" -#: f.tools.cc:4626 +#: f.tools.cc:4925 msgid "file already exists" msgstr "ja existeix l'arxiu" -#: f.tools.cc:4634 +#: f.tools.cc:4933 msgid "file type not supported" msgstr "tipus d'arxiu no suportat" -#: f.tools.cc:4703 +#: f.tools.cc:5002 msgid "cannot create new file" msgstr "no es pot crear un nou arxiu" -#: f.tools.cc:4854 +#: f.tools.cc:5153 msgid "" "new name/base/adder unreasonable\n" " e.g. newname ### 100 10" @@ -3587,117 +3641,117 @@ "nou nom/inici/increment no raonable\n" "p.e. nounom ### 100 10" -#: f.tools.cc:4877 +#: f.tools.cc:5176 #, c-format msgid "max. size %d x %d is not reasonable" msgstr "max. mida %d x %d no és raonable" -#: f.tools.cc:4896 +#: f.tools.cc:5195 #, c-format msgid "Convert %d image files" msgstr "Convertir %d imatges" -#: f.tools.cc:4897 +#: f.tools.cc:5196 msgid "Rename to" msgstr "Re-anomenar com" -#: f.tools.cc:4898 +#: f.tools.cc:5197 msgid "Convert to" msgstr "Convertir a" -#: f.tools.cc:4899 +#: f.tools.cc:5198 msgid "Resize within" msgstr "Redimmensionar dins de" -#: f.tools.cc:4900 +#: f.tools.cc:5199 msgid "Output to" msgstr "Sortida com" -#: f.tools.cc:4906 +#: f.tools.cc:5205 msgid "PROCEED?" -msgstr "" +msgstr "PROCEDIR?" -#: f.tools.cc:4938 +#: f.tools.cc:5237 msgid "Batch Convert RAW Files" msgstr "Convertir arxius RAW en lot" -#: f.tools.cc:4969 +#: f.tools.cc:5268 msgid "output file type" msgstr "tipus d'arxiu de sortida" -#: f.tools.cc:4981 +#: f.tools.cc:5280 msgid "white balance" msgstr "balanç de blancs" -#: f.tools.cc:4982 +#: f.tools.cc:5281 msgid "interpolation" msgstr "interpolació" -#: f.tools.cc:4983 +#: f.tools.cc:5282 msgid "color space" msgstr "espai de color" -#: f.tools.cc:4984 +#: f.tools.cc:5283 msgid "gamma curve" msgstr "corba gamma" -#: f.tools.cc:4987 +#: f.tools.cc:5286 msgid "camera" msgstr "càmera" -#: f.tools.cc:4988 +#: f.tools.cc:5287 msgid "fixed" msgstr "corretgit" -#: f.tools.cc:4989 +#: f.tools.cc:5288 msgid "calculated" msgstr "calculat" -#: f.tools.cc:5006 +#: f.tools.cc:5305 msgid "default" msgstr "per defecte" -#: f.tools.cc:5012 +#: f.tools.cc:5311 msgid "defaults" msgstr "per defecte" -#: f.tools.cc:5526 +#: f.tools.cc:5834 msgid "x-spacing" msgstr "espaiat X" -#: f.tools.cc:5527 +#: f.tools.cc:5835 msgid "x-count" msgstr "compte X" -#: f.tools.cc:5528 +#: f.tools.cc:5836 msgid "x-enable" msgstr "habilitar X" -#: f.tools.cc:5534 +#: f.tools.cc:5842 msgid "y-spacing" msgstr "espaiat Y" -#: f.tools.cc:5535 +#: f.tools.cc:5843 msgid "y-count" msgstr "compta Y" -#: f.tools.cc:5536 +#: f.tools.cc:5844 msgid "y-enable" msgstr "habilitar Y" -#: f.tools.cc:5984 +#: f.tools.cc:6292 msgid "Darkest and Brightest Pixels" msgstr "Píxels més foscos i més brillants" -#: f.tools.cc:6007 +#: f.tools.cc:6315 msgid "Dark Limit" msgstr "Límit de foscor" -#: f.tools.cc:6008 +#: f.tools.cc:6316 msgid "Bright Limit" msgstr "Límit de brillantor" -#: f.tools.cc:6115 +#: f.tools.cc:6423 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3705,31 +3759,31 @@ "la brillantor ha de mostrar una rampa gradual \n" "extenent-se fina a les vores." -#: f.tools.cc:6272 +#: f.tools.cc:6580 msgid "Available Translations" msgstr "Traduccions disponibles" -#: f.tools.cc:6276 +#: f.tools.cc:6584 msgid "Set Language" msgstr "Seleccionar idioma" -#: f.tools.cc:6364 +#: f.tools.cc:6672 msgid "Make Launcher" msgstr "Crear un llençador" -#: fotoxx-14.03.cc:312 +#: fotoxx-14.04.cc:309 msgid "Tab F: image file view/edit" msgstr "Pestanya F : veure/editar imatges" -#: fotoxx-14.03.cc:321 +#: fotoxx-14.04.cc:318 msgid "Tab G: image gallery" msgstr "Pestanya G : galeria d'imatges" -#: fotoxx-14.03.cc:330 +#: fotoxx-14.04.cc:327 msgid "Tab W: world map" msgstr "Pestanya W : mapa mundial" -#: fotoxx-14.03.cc:447 +#: fotoxx-14.04.cc:441 msgid "" "First time Fotoxx startup. \n" "Latest version: http://www.kornelix.com/fotoxx \n" @@ -3739,59 +3793,63 @@ "Darrera versió : http://www.kornelix.com/fotoxx \n" "Començarà el procés de sincronització (caldrà algun temps) \n" -#: fotoxx-14.03.cc:492 +#: fotoxx-14.04.cc:488 msgid "Please install missing programs:" msgstr "Si us plau instal.leu programas requerits:" -#: fotoxx-14.03.cc:901 +#: fotoxx-14.04.cc:904 msgid "(reduced)" msgstr "(reduït)" -#: fotoxx-14.03.cc:902 +#: fotoxx-14.04.cc:905 msgid "area active" msgstr "àrea activa" -#: fotoxx-14.03.cc:903 +#: fotoxx-14.04.cc:906 msgid "dialog open" msgstr "dialog obert" -#: fotoxx-14.03.cc:904 +#: fotoxx-14.04.cc:907 msgid "function busy" msgstr "funció treballant" -#: fotoxx-14.03.cc:905 +#: fotoxx-14.04.cc:908 msgid "file index busy" msgstr "indexat d'arxius treballant" -#: fotoxx-14.03.cc:906 +#: fotoxx-14.04.cc:909 msgid "menu locked" msgstr "menú bloquejat" -#: fotoxx-14.03.cc:953 +#: fotoxx-14.04.cc:956 msgid "edits" msgstr "edicions" -#: fotoxx-14.03.cc:999 +#: fotoxx-14.04.cc:1002 msgid "Kill active dialog?" msgstr "Tancar diàleg actiu?" -#: fotoxx-14.03.cc:2768 +#: fotoxx-14.04.cc:1082 +msgid "Location from World Map" +msgstr "Ubicació des d'un mapa mundial" + +#: fotoxx-14.04.cc:2792 msgid "Exceed 50 anchor points" msgstr "Excedits punts d'anclatge" -#: fotoxx-14.03.cc:2951 +#: fotoxx-14.04.cc:2975 msgid "load curve from a file" msgstr "carregar corba des d'un arxiu" -#: fotoxx-14.03.cc:3026 +#: fotoxx-14.04.cc:3050 msgid "save curve to a file" msgstr "guardar corba en un arxiu" -#: fotoxx-14.03.cc:3101 +#: fotoxx-14.04.cc:3125 msgid "Too many edits, please save image" msgstr "Massa edicions, si us plau guardeu la imatge" -#: fotoxx-14.03.cc:3116 +#: fotoxx-14.04.cc:3140 msgid "" "Select area not active.\n" "Continue?" @@ -3799,288 +3857,292 @@ "Àrea seleccionada no activa.\n" "Continuar?" -#: fotoxx-14.03.cc:3503 +#: fotoxx-14.04.cc:3527 msgid "This action will discard changes\n" msgstr "Aquesta acció descartarà els canvis\n" -#: fotoxx-14.03.cc:3504 fotoxx.h:1026 +#: fotoxx-14.04.cc:3528 fotoxx.h:1031 msgid "Keep" msgstr "Guardar" -#: fotoxx-14.03.cc:3505 +#: fotoxx-14.04.cc:3529 msgid "Discard" msgstr "Descartar" -#: fotoxx-14.03.cc:3519 fotoxx-14.03.cc:3539 +#: fotoxx-14.04.cc:3543 fotoxx-14.04.cc:3563 msgid "prior function active" msgstr "funció anterior activa" -#: fotoxx.h:983 +#: fotoxx.h:988 msgid "Add" msgstr "Afegir" -#: fotoxx.h:984 +#: fotoxx.h:989 msgid "Add All" msgstr "Afegir tot" -#: fotoxx.h:986 +#: fotoxx.h:991 msgid "Amount" msgstr "Quantitat" -#: fotoxx.h:987 +#: fotoxx.h:992 msgid "Angle" msgstr "Angle" -#: fotoxx.h:988 +#: fotoxx.h:993 msgid "Apply" msgstr "Aplicar" -#: fotoxx.h:989 +#: fotoxx.h:994 msgid "Autocomplete" msgstr "Autocompletar" -#: fotoxx.h:990 +#: fotoxx.h:995 msgid "Black" msgstr "Negre" -#: fotoxx.h:991 +#: fotoxx.h:996 msgid "Blend Width" msgstr "Barrejar per ample" -#: fotoxx.h:994 +#: fotoxx.h:999 msgid "Browse" msgstr "Examinar" -#: fotoxx.h:995 +#: fotoxx.h:1000 msgid "Cancel" msgstr "Cancel.lar" -#: fotoxx.h:996 +#: fotoxx.h:1001 msgid "center" msgstr "centre" -#: fotoxx.h:997 +#: fotoxx.h:1002 msgid "Choose" msgstr "Escollir" -#: fotoxx.h:998 +#: fotoxx.h:1003 msgid "Clear" msgstr "Esborrar" -#: fotoxx.h:1002 +#: fotoxx.h:1007 msgid "Create" -msgstr "" +msgstr "Crear" -#: fotoxx.h:1003 +#: fotoxx.h:1008 msgid "Curve File:" msgstr "Arxiu de corba:" -#: fotoxx.h:1004 +#: fotoxx.h:1009 msgid "Cut" msgstr "Tallar" -#: fotoxx.h:1005 +#: fotoxx.h:1010 msgid "Delete" msgstr "Esborrar" -#: fotoxx.h:1007 -msgid "Bdist" -msgstr "Histograma" +#: fotoxx.h:1012 +msgid "Dist" +msgstr "" -#: fotoxx.h:1008 +#: fotoxx.h:1013 msgid "Done" msgstr "Fet" -#: fotoxx.h:1009 +#: fotoxx.h:1014 msgid "edge" msgstr "vora" -#: fotoxx.h:1010 +#: fotoxx.h:1015 msgid "Edit" msgstr "Editar" -#: fotoxx.h:1012 +#: fotoxx.h:1017 msgid "Erase" msgstr "Esborrar" -#: fotoxx.h:1013 +#: fotoxx.h:1018 msgid "Fetch" msgstr "Extreure" -#: fotoxx.h:1014 +#: fotoxx.h:1019 msgid "Find" msgstr "Trobar" -#: fotoxx.h:1015 +#: fotoxx.h:1020 msgid "Finish" msgstr "Acabar" -#: fotoxx.h:1016 +#: fotoxx.h:1021 msgid "Font" msgstr "Tipus de lletra" -#: fotoxx.h:1017 +#: fotoxx.h:1022 msgid "Geotags" msgstr "Geo-etiquetes" -#: fotoxx.h:1019 +#: fotoxx.h:1024 msgid "Grid" msgstr "Graella" -#: fotoxx.h:1023 +#: fotoxx.h:1028 msgid "Images" msgstr " imatges" -#: fotoxx.h:1024 +#: fotoxx.h:1029 msgid "Insert" msgstr "Insertar" -#: fotoxx.h:1027 +#: fotoxx.h:1032 msgid "limit" msgstr "limit" -#: fotoxx.h:1028 +#: fotoxx.h:1033 msgid "Make" msgstr "Fer" -#: fotoxx.h:1030 +#: fotoxx.h:1035 msgid "Map" msgstr "Mapa" -#: fotoxx.h:1031 +#: fotoxx.h:1036 msgid "Max" msgstr "Max" -#: fotoxx.h:1032 +#: fotoxx.h:1037 msgid "Negative" msgstr "Negatiu" -#: fotoxx.h:1033 +#: fotoxx.h:1038 msgid "New" msgstr "Nou" -#: fotoxx.h:1035 zfuncs.cc:8589 +#: fotoxx.h:1040 zfuncs.cc:8589 msgid "No" msgstr "No" -#: fotoxx.h:1036 +#: fotoxx.h:1041 msgid "no images" msgstr "sense imatges" -#: fotoxx.h:1037 +#: fotoxx.h:1042 msgid "no selection" msgstr "sense selecció" -#: fotoxx.h:1038 +#: fotoxx.h:1043 msgid "OK" msgstr "OK" -#: fotoxx.h:1040 +#: fotoxx.h:1045 msgid "Open RAW File" msgstr "Obrir arxiu RAW" -#: fotoxx.h:1042 +#: fotoxx.h:1047 msgid "Pause" msgstr "Pausa" -#: fotoxx.h:1043 +#: fotoxx.h:1048 msgid "Percent" msgstr "Percentatge" -#: fotoxx.h:1045 +#: fotoxx.h:1050 msgid "Presets" msgstr "Predefinits" -#: fotoxx.h:1047 +#: fotoxx.h:1052 msgid "Proceed" msgstr "Procedir" -#: fotoxx.h:1049 +#: fotoxx.h:1054 msgid "range" msgstr "rang" -#: fotoxx.h:1052 +#: fotoxx.h:1057 msgid "Reduce" msgstr "Reduïr" -#: fotoxx.h:1053 +#: fotoxx.h:1058 msgid "Remove" msgstr "Eliminar" -#: fotoxx.h:1055 +#: fotoxx.h:1060 msgid "Reset" msgstr "Restablir" -#: fotoxx.h:1056 +#: fotoxx.h:1061 msgid "Rotate" msgstr "Rotar" -#: fotoxx.h:1058 +#: fotoxx.h:1063 msgid "Unknown file type, save as tiff/jpeg/png to edit" msgstr "Tipus d'arxiu desconegut, guardar com a TIFF/JPEG/PNG per editar" -#: fotoxx.h:1059 +#: fotoxx.h:1064 msgid "Search" msgstr "Buscar" -#: fotoxx.h:1063 +#: fotoxx.h:1065 +msgid "Seconds" +msgstr "Segons" + +#: fotoxx.h:1069 msgid "Size" msgstr "Tamany" -#: fotoxx.h:1064 +#: fotoxx.h:1070 msgid "Start" msgstr "Començar" -#: fotoxx.h:1065 +#: fotoxx.h:1071 msgid "Strength" msgstr "Força" -#: fotoxx.h:1066 +#: fotoxx.h:1072 msgid "Threshold" msgstr "Llindar" -#: fotoxx.h:1067 +#: fotoxx.h:1073 #, c-format msgid "exceed %d files" msgstr "excedeix %d arxius" -#: fotoxx.h:1069 +#: fotoxx.h:1075 msgid "Trim" msgstr "Retallar" -#: fotoxx.h:1070 +#: fotoxx.h:1076 msgid "Undo All" msgstr "Desfer-ho tot" -#: fotoxx.h:1071 +#: fotoxx.h:1077 msgid "Undo Last" msgstr "Desfer l'últim" -#: fotoxx.h:1073 +#: fotoxx.h:1079 msgid "Unfinish" msgstr "No acabat" -#: fotoxx.h:1075 +#: fotoxx.h:1081 msgid "View" msgstr "Veure" -#: fotoxx.h:1076 +#: fotoxx.h:1082 msgid "Web" msgstr "Web" -#: fotoxx.h:1077 +#: fotoxx.h:1083 msgid "White" msgstr "Blanc" -#: fotoxx.h:1079 +#: fotoxx.h:1085 msgid "x-offset" msgstr "desplaçament X" -#: fotoxx.h:1080 +#: fotoxx.h:1086 msgid "y-offset" msgstr "desplaçament Y" -#: fotoxx.h:1081 zfuncs.cc:8589 +#: fotoxx.h:1087 zfuncs.cc:8589 msgid "Yes" msgstr "Si" @@ -4124,7 +4186,7 @@ #: zfuncs.cc:9056 msgid "create folder" -msgstr "create folder" +msgstr "" #: zfuncs.cc:9064 msgid "hidden" @@ -4235,384 +4297,5 @@ msgid "add parameter" msgstr "afegir paràmetre" -#~ msgid "Favorites Menu" -#~ msgstr "Menú de favorits" - -#~ msgid "Leverage Edits" -#~ msgstr "Edició per nivells" - -#~ msgid "Leverage edits by brightness or color" -#~ msgstr "Edició per nivells de brillantor o color" - -#~ msgid "create" -#~ msgstr "crear" - -#~ msgid "delete" -#~ msgstr "esborrar" - -#~ msgid "Edit Function Amplifier" -#~ msgstr "Amplificador de la funció d'edició" - -#~ msgid "minimum" -#~ msgstr "mínim" - -#~ msgid "maximum" -#~ msgstr "màxim" - -#~ msgid "Thumbnail Directory" -#~ msgstr "Directori de miniatures" - -#~ msgid "location is not a valid directory" -#~ msgstr "la ubicació no és un directori vàlid" - -#~ msgid "Adjust White Balance" -#~ msgstr "Ajustar balanç de blancs" - -#~ msgid "Click white or gray image location" -#~ msgstr "Clic en un lloc blanc o gris de la imatge" - -#~ msgid "reduce" -#~ msgstr "reduïr" - -#~ msgid "outline threshold" -#~ msgstr "contorns de llindar." - -#~ msgid "outline width" -#~ msgstr "ample de contorn" - -#~ msgid "image brightness" -#~ msgstr "brillantor de la imatge" - -#~ msgid "portrait" -#~ msgstr "retrat" - -#~ msgid "landscape" -#~ msgstr "paisatge" - -#~ msgid "customize" -#~ msgstr "personalitzar" - -#~ msgid "Brightness/Contrast/Color" -#~ msgstr "Brillantor/Contrast/Color" - -#~ msgid "Adjust contrast using a gamma curve" -#~ msgstr "Ajustar contrast utilitzan una corba gamma" - -#~ msgid "Gamma Curves" -#~ msgstr "Corbes gamma" - -#~ msgid "Click on a white/gray area to fix color tint" -#~ msgstr "Clicar en una àrea blanca o gris per corretgir dominant de color" - -#~ msgid "White Balance" -#~ msgstr "Balanç de blancs" - -#~ msgid "Brightness/Color" -#~ msgstr "Brillantor / Color / Saturació" - -#~ msgid "edge detection" -#~ msgstr "deteció de vores" - -#~ msgid "cycles" -#~ msgstr "cicles" - -#~ msgid "small-steps" -#~ msgstr "poc a poc" - -#~ msgid "Saturation" -#~ msgstr "Saturació" - -#~ msgid " reset 1 " -#~ msgstr " reiniciar 1 " - -#~ msgid "reset all" -#~ msgstr "reiniciar tot" - -#~ msgid "previous" -#~ msgstr "anterior" - -#~ msgid "adjust image gamma" -#~ msgstr "ajustar gamma de la imatge" - -#~ msgid "arrow keys" -#~ msgstr "tecles de fletxa" - -#~ msgid "curve file is invalid" -#~ msgstr "arxiu de corba no és vàlid" - -#~ msgid "curve file has different no. of curves" -#~ msgstr "l'arxiu de corbes té un nombre diferent de corbes" - -#~ msgid "histogram" -#~ msgstr "histograma" - -#~ msgid "open folder" -#~ msgstr "obrir carpeta" - -#~ msgid "choose" -#~ msgstr "escollir" - -#~ msgid "open" -#~ msgstr "obrir" - -#~ msgid "search index missing" -#~ msgstr "necessari índex de cerca" - -#~ msgid "file sync active" -#~ msgstr "sincronització d'arxius activa" - -#~ msgid "file sync busy" -#~ msgstr "sincronitzación d'arxius en curs" - -#~ msgid "edits: %d" -#~ msgstr "edicions: %d" - -#~ msgid "" -#~ "\n" -#~ " and delete originals" -#~ msgstr "" -#~ "\n" -#~ " i esborrar originals" - -#~ msgid "" -#~ "copy files? (max. %d x %d) \n" -#~ " to location %s" -#~ msgstr "" -#~ "copiar arxius? (max. %d x %d) \n" -#~ " a la ubicació %s" - -#~ msgid "" -#~ "copy files? \n" -#~ " to location %s" -#~ msgstr "" -#~ "copiar arxius? \n" -#~ "a la ubicació %s" - -#~ msgid "overwrite files? (max. %d x %d)" -#~ msgstr "sobre-escriure arxius (max. %d x %d)?" - -#~ msgid "overwrite files?" -#~ msgstr "sobre-escriure arxius?" - -#~ msgid "upright rotation" -#~ msgstr "rotación vertical" - -#~ msgid "delete metadata" -#~ msgstr "esborrar metadades" - -#~ msgid "move to location" -#~ msgstr "moure a la ubicació" - -#~ msgid "copy to location" -#~ msgstr "copiar a la ubicació" - -#~ msgid "overwrite" -#~ msgstr "sobre-escriure" - -#~ msgid "max. width" -#~ msgstr "max. amplada" - -#~ msgid "new file type" -#~ msgstr "nou tipus d'arxiu" - -#~ msgid "base name / sequence / increment not reasonable" -#~ msgstr "nom base / sequència / increment not raonable" - -#~ msgid "Rename failed:" -#~ msgstr "Re-anomenament ha fallat:" - -#~ msgid "new file already exists:" -#~ msgstr "ja existeix el nou arxiu:" - -#~ msgid "increment" -#~ msgstr "increment" - -#~ msgid "starting sequence" -#~ msgstr "iniciar sequència" - -#~ msgid "new base name" -#~ msgstr "nou nom base" - -#~ msgid "Show hidden files" -#~ msgstr "Mostrar arxius ocults" - -#~ msgid "KILLED" -#~ msgstr "ABORTAT" - -#~ msgid "files found in current index recs: %d \n" -#~ msgstr "arxius trobats en els registres de l'actual índex: %d \n" - -#~ msgid "merging old and new index records" -#~ msgstr "barrejant els registres d'índex antic i nou" - -#~ msgid "found %d image files \n" -#~ msgstr "trobats %d arxius d'imatge \n" - -#~ msgid "too many image files" -#~ msgstr "massa arxius d'imatge" - -#~ msgid "find all image files and build index records" -#~ msgstr "trobar totes les imatges i construïr registres d'índex" - -#~ msgid "%d current index records found \n" -#~ msgstr "%d registres de l'índex actuals trobats \n" - -#~ msgid "rebuild search index" -#~ msgstr "reconstruïr índes de cerca" - -#~ msgid "no search index file is in use" -#~ msgstr "cap arxiu índex de cerca en ús" - -#~ msgid "%d thumbnails created, %d errors \n" -#~ msgstr "%d miniatures creades, %d errors \n" - -#~ msgid "create missing and update stale thumbnails" -#~ msgstr "crear miniatures perdudes i actualitzar les fetes malbé" - -#~ msgid "%d orphan thumbnails deleted \n" -#~ msgstr "%d miniatures òrfenes esborradas \n" - -#~ msgid "delete orphan thumbnails" -#~ msgstr "esborrar miniatures órfenes" - -#~ msgid "delete all thumbnails" -#~ msgstr "esborrar totes les miniatures" - -#~ msgid "Synchronize Files (may need some time)" -#~ msgstr "Sincronitzar arxius (pot necessitar bastant temps)" - -#~ msgid "thumbnail directory cannot be under top directory" -#~ msgstr "" -#~ "el directori de miniartures no pot estar sota el directori principal" - -#~ msgid "select a thumbnail option" -#~ msgstr "seleccionar una opció de miniatures" - -#~ msgid "directory is invalid" -#~ msgstr "el directori és invalid" - -#~ msgid "File sync is necessary. Cancel anyway?" -#~ msgstr "És necessari sincronitzar arxius. cancel.lar de totes totes?" - -#~ msgid "Initialize Everything" -#~ msgstr "Inicialitzar-ho tot" - -#~ msgid "Use Directory" -#~ msgstr "Utilitzar directori" - -#~ msgid "Use hidden directories with images" -#~ msgstr "Utilitzar directoris ocults amb les imatges" - -#~ msgid "None (galleries are slow)" -#~ msgstr "Cap (galeries són lentes)" - -#~ msgid "Thumbnail Options:" -#~ msgstr "Opcions de miniatures:" - -#~ msgid "(if NO, metadata functions are disabled)" -#~ msgstr "(si NO, les funcions de metadades estàn deshabilitades)" - -#~ msgid "Use file sync function (recommended)" -#~ msgstr "Utilitzar funció de sincronització d'arxius (recomenat)" - -#~ msgid "file sync not needed" -#~ msgstr "no necesària sincronització d'arxius" - -#~ msgid "file sync disabled" -#~ msgstr "desactivada la sincronització d'arxius" - -#~ msgid "new/modified files are present" -#~ msgstr "hi han arxius nous7modificats" - -#~ msgid "last file sync time is unknown" -#~ msgstr "data de l'última sincronització d'arxius és desconeguda" - -#~ msgid "no search index file is present" -#~ msgstr "no hi ha cap arxiu índex de cerques" - -#~ msgid "thumbnail directory is invalid" -#~ msgstr "directori de miniatures no és vàlid" - -#~ msgid "top image directory is invalid" -#~ msgstr "el directoriprincipal d'imatges no és vàlid" - -#~ msgid "" -#~ "Synchronize Files makes gallery windows fast \n" -#~ "and enables metadata functions to work correctly.\n" -#~ msgstr "" -#~ "Sincronitzar arxius fa que la galería d'imatges sigui més ràpida \n" -#~ "i facilita el treball correcte de les funcions de metadades.\n" - -#~ msgid "click for white balance or black level" -#~ msgstr "Balanç de blancs o punt negre" - -#~ msgid "bright" -#~ msgstr "Llums" - -#~ msgid "cooler" -#~ msgstr "més fred" - -#~ msgid "dark areas" -#~ msgstr "Ombres" - -#~ msgid "warmer" -#~ msgstr "Càlid" - -#~ msgid "low color" -#~ msgstr "Color -" - -#~ msgid "" -#~ "Metadata index is missing.\n" -#~ "Use Tools > Synchronize Files." -#~ msgstr "" -#~ "Necessari index de matadades.\n" -#~ "Utilitzi Eines > Sincronitzar arxius." - -#~ msgid "Convert resize, move multiple files" -#~ msgstr "Convertir, redimensionar, moure múltiples arxius" - -#~ msgid "Rename multiple image files" -#~ msgstr "Reanomenar múltiples imatges" - -#~ msgid "Batch Rename" -#~ msgstr "Re-anomenar en lot" - -#~ msgid "Synchronize Files" -#~ msgstr "Sincronitzar arxius" - -#~ msgid "Synch Files, Settings, Collections, Batch Funcs ..." -#~ msgstr "Sincronitzar arxius, ajustos, coleccions, funcions de lot ..." - -#~ msgid "no top image directory defined" -#~ msgstr "directori principal d'imatges no està definit" - -#~ msgid "" -#~ "warning: real memory %d MB < required %d MB \n" -#~ "response time may become very long \n" -#~ msgstr "" -#~ "atenció: memòria real %d MB < requerida %d MB \n" -#~ "el temps de resposta pot ser molt llarg \n" - -#~ msgid "select random" -#~ msgstr "selecció aleatòria" - -#~ msgid "page-flip" -#~ msgstr "voltejar pàgina" - -#~ msgid "shift-left" -#~ msgstr "majúscula esquerra" - -#~ msgid "(enter keys)" -#~ msgstr " (introduïr tecles" - -#~ msgid "Previous Image Viewed" -#~ msgstr "Imatge vista anterior" - -#~ msgid "invalid thumbnails directory: %s" -#~ msgstr "directori de miniatures invàlid: %s" - -#~ msgid "Edit translations while using Fotoxx" -#~ msgstr "Editar traduccions mentre utilitza Fotoxx" - -#~ msgid "Edit Translations" -#~ msgstr "Editar traduccions" +#~ msgid "Transition:" +#~ msgstr "Transició:" diff -Nru fotoxx-14.03/locales/translate-de.po fotoxx-14.04/locales/translate-de.po --- fotoxx-14.03/locales/translate-de.po 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/locales/translate-de.po 2014-04-01 06:09:31.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: fotoxx 6.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-01 08:51+0100\n" +"POT-Creation-Date: 2014-04-01 08:04+0200\n" "PO-Revision-Date: 2009-03-06 09:57+0100\n" "Language-Team: German\n" "Language: de\n" @@ -20,7 +20,7 @@ msgid "Select Area for Edits" msgstr "Ausschnitt für Bearbeitung auswählen" -#: f.area.cc:57 f.retouch.cc:2051 +#: f.area.cc:57 f.retouch.cc:2160 msgid "Press F1 for help" msgstr "F1 für Hilfe drucken" @@ -64,7 +64,7 @@ msgid "select all matching colors within mouse" msgstr "Alle übereinstimmenden Farben in Maus selektieren" -#: f.area.cc:115 f.retouch.cc:2086 +#: f.area.cc:115 f.retouch.cc:2195 msgid "mouse radius" msgstr "Mausradius" @@ -156,7 +156,7 @@ msgid "save select area to a file" msgstr "Ausschnitt in Datei speichern" -#: f.bend.cc:72 f.menus.cc:246 +#: f.bend.cc:72 f.menus.cc:208 msgid "Unbend" msgstr "Entkrümmen" @@ -184,7 +184,7 @@ " Die vier Ecken eines Tetragonalbereich anklicken. [Anwenden] drücken. \n" " Das Tetragon wird zu einem geraden Rechteck verzogen." -#: f.bend.cc:353 f.menus.cc:247 +#: f.bend.cc:353 f.menus.cc:209 msgid "Keystone Correction" msgstr "Schlussstein-Korrektur" @@ -234,7 +234,7 @@ " Mehrmals ziehen/strecken bis zum erwünschten Ergebniss. \n" " Wenn fertig, anderen Ausschnitt wählen oder [Fertig] drücken." -#: f.bend.cc:1105 f.menus.cc:249 +#: f.bend.cc:1105 f.menus.cc:211 msgid "Warp area" msgstr "Ausschnitt Krümmen" @@ -256,7 +256,7 @@ " Mehrmals ziehen bis zufriedenstellend. \n" " Wenn fertig, [Fertig] drücken." -#: f.bend.cc:1520 f.menus.cc:250 +#: f.bend.cc:1520 f.menus.cc:212 msgid "Warp curved" msgstr "Gebogen krümmen" @@ -264,7 +264,7 @@ msgid "warp span" msgstr "Krümmen-Spannweite" -#: f.bend.cc:1830 f.menus.cc:251 +#: f.bend.cc:1830 f.menus.cc:213 msgid "Warp linear" msgstr "Linear krümmen" @@ -278,15 +278,15 @@ " Mehrmals ziehen bis zufriedengestellt. \n" " Wenn fertig, [Fertig] drücken." -#: f.bend.cc:2161 f.menus.cc:252 +#: f.bend.cc:2161 f.menus.cc:214 msgid "Warp affine" msgstr "Affine krümmen" -#: f.color.cc:64 f.menus.cc:239 +#: f.color.cc:64 f.menus.cc:201 msgid "Shift Colors" msgstr "Farben verschieben" -#: f.color.cc:285 f.menus.cc:240 +#: f.color.cc:285 f.menus.cc:202 msgid "Color Mode" msgstr "Farb-Modus" @@ -339,8 +339,8 @@ msgid "mouse radius for color sample" msgstr "Mausradius für Farbauswahl" -#: f.color.cc:609 f.color.cc:614 f.file.cc:4220 f.menus.cc:208 f.menus.cc:297 -#: f.menus.cc:433 fotoxx.h:1039 +#: f.color.cc:609 f.color.cc:614 f.file.cc:4222 f.menus.cc:172 f.menus.cc:255 +#: f.menus.cc:349 fotoxx.h:1044 msgid "Open" msgstr "Öffnen" @@ -364,11 +364,11 @@ msgid "select source image color first" msgstr "Farbe vom Quellbild zuerst wählen" -#: f.color.cc:872 f.tools.cc:5665 +#: f.color.cc:872 f.tools.cc:5973 msgid "Click image to select pixels." msgstr "Bild anklicken zum Pixeln auswählen" -#: f.color.cc:911 f.menus.cc:243 +#: f.color.cc:911 f.menus.cc:205 msgid "Revise RGB" msgstr "RGB revidieren" @@ -396,15 +396,15 @@ msgid "+Blue -Yellow" msgstr "+Blau -Gelb" -#: f.color.cc:1382 fotoxx.h:1050 +#: f.color.cc:1382 fotoxx.h:1055 msgid "Red" msgstr "Rot" -#: f.color.cc:1383 fotoxx.h:1018 +#: f.color.cc:1383 fotoxx.h:1023 msgid "Green" msgstr "Grün" -#: f.color.cc:1384 fotoxx.h:992 +#: f.color.cc:1384 fotoxx.h:997 msgid "Blue" msgstr "Blau" @@ -437,7 +437,7 @@ msgstr "Bild malen und krümmen" #: f.combine.cc:2831 f.combine.cc:3485 f.combine.cc:4902 f.combine.cc:5801 -#: f.effects.cc:3478 f.menus.cc:60 f.menus.cc:121 +#: f.effects.cc:3546 f.menus.cc:87 msgid "Image" msgstr "Bild" @@ -505,7 +505,7 @@ msgid "no curve (scanned image)" msgstr "Keine Kurve (gescanntes Bild)" -#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:214 f.menus.cc:473 +#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:178 f.menus.cc:386 msgid "Resize" msgstr "Größe verändern" @@ -669,7 +669,7 @@ msgid "Gradual" msgstr "Stufenweise" -#: f.combine.cc:6842 fotoxx.h:1044 +#: f.combine.cc:6842 fotoxx.h:1049 msgid "Power" msgstr "Stärke" @@ -682,7 +682,7 @@ msgid "Enter text, click/drag on image." msgstr "Text eingeben, anklicken/schleppen am Bild." -#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:850 +#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:844 msgid "Text" msgstr "Text" @@ -702,8 +702,8 @@ msgid "shadow" msgstr "Shatten" -#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:63 f.menus.cc:124 -#: f.menus.cc:292 fotoxx.h:999 +#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:90 f.menus.cc:251 +#: fotoxx.h:1004 msgid "Color" msgstr "Farbe" @@ -711,7 +711,7 @@ msgid "Transparency" msgstr "Transparenz" -#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1078 +#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1084 msgid "Width" msgstr "Breite" @@ -756,7 +756,7 @@ msgid "black/white" msgstr "schwarzweiß" -#: f.effects.cc:989 f.menus.cc:257 +#: f.effects.cc:989 f.menus.cc:219 msgid "Graduated Blur" msgstr "Gestaffelte Verwischen" @@ -824,7 +824,7 @@ msgid "borders" msgstr "Ränder" -#: f.effects.cc:2474 f.menus.cc:262 +#: f.effects.cc:2474 f.menus.cc:224 msgid "Vignette" msgstr "Vignette" @@ -832,48 +832,64 @@ msgid "Add Texture" msgstr "Textur addieren" -#: f.effects.cc:3040 -msgid "Add pattern" -msgstr "Muster zufügen" +#: f.effects.cc:3043 +msgid "Background Pattern" +msgstr "Hintergrund Muster" + +#: f.effects.cc:3047 +msgid "Pattern File:" +msgstr "Musterdatei" + +#: f.effects.cc:3052 +msgid "Geometry" +msgstr "Abmaße" + +#: f.effects.cc:3053 +msgid "Calculate" +msgstr "Rechnen" + +#: f.effects.cc:3055 +msgid "Zoom" +msgstr "Zoom" -#: f.effects.cc:3044 f.menus.cc:264 +#: f.effects.cc:3066 f.menus.cc:226 msgid "Pattern" msgstr "Muster" -#: f.effects.cc:3051 -msgid "Pattern size" -msgstr "Mustergröße" - -#: f.effects.cc:3062 f.effects.cc:3066 +#: f.effects.cc:3073 msgid "Overlap" msgstr "Überschneidung" -#: f.effects.cc:3107 +#: f.effects.cc:3080 +msgid "Opacity" +msgstr "Opazität" + +#: f.effects.cc:3116 msgid "choose pattern tile" msgstr "Musterkachel wählen" -#: f.effects.cc:3382 +#: f.effects.cc:3450 msgid "Create Mosaic" msgstr "Mosaik erstellen" -#: f.effects.cc:3468 +#: f.effects.cc:3536 msgid "Tile" msgstr "Kachel" -#: f.effects.cc:3476 f.menus.cc:259 +#: f.effects.cc:3544 f.menus.cc:221 msgid "Tiles" msgstr "Kacheln" -#: f.effects.cc:3482 +#: f.effects.cc:3550 msgid "Tile blending" msgstr "Kacheln einblenden" -#: f.effects.cc:3560 +#: f.effects.cc:3628 #, c-format msgid "exceeded max. tiles: %d" msgstr "Max. Kacheln überschritten: %d" -#: f.effects.cc:3575 +#: f.effects.cc:3643 #, c-format msgid "only %d tile images found" msgstr "Nur %d Kachelbilder gefunden" @@ -886,7 +902,7 @@ msgid "no more images" msgstr "keine Bilder mehr" -#: f.file.cc:330 f.menus.cc:153 f.menus.cc:482 +#: f.file.cc:330 f.menus.cc:118 f.menus.cc:395 msgid "Open RAW file (ufraw)" msgstr "RAW-Datei öffnen (ufraw)" @@ -943,7 +959,7 @@ "Datei überschreiben? \n" " %s" -#: f.file.cc:836 f.menus.cc:155 +#: f.file.cc:836 f.menus.cc:120 msgid "Rename Image File" msgstr "Bilddatei umbenennen" @@ -951,7 +967,7 @@ msgid "Old Name" msgstr "Vorheriger Name" -#: f.file.cc:844 f.tools.cc:4504 +#: f.file.cc:844 f.tools.cc:4803 msgid "New Name" msgstr "Neuer Name" @@ -999,7 +1015,7 @@ msgid "new location" msgstr "Neue Speicherstelle" -#: f.file.cc:1233 f.tools.cc:4809 +#: f.file.cc:1233 f.tools.cc:5108 msgid "Select directory" msgstr "Bildverzeichnis wählen" @@ -1024,7 +1040,7 @@ msgid "(automatic step to next image)" msgstr "(automatisch zum nächsten Bild)" -#: f.file.cc:1457 f.menus.cc:157 +#: f.file.cc:1457 f.menus.cc:122 msgid "Trash Image File" msgstr "Bilddatei in den Abfall" @@ -1072,7 +1088,7 @@ "Verzeichnis erstellen? \n" " %s" -#: f.file.cc:2191 f.menus.cc:149 +#: f.file.cc:2191 f.menus.cc:114 msgid "Open Image File" msgstr "Bilddatei öffnen" @@ -1094,103 +1110,107 @@ msgid "file type not supported: %s" msgstr "Dateityp nicht unterstützt: %s" -#: f.file.cc:4209 f.menus.cc:296 f.menus.cc:432 +#: f.file.cc:4209 f.file.cc:4291 f.menus.cc:360 f.tools.cc:851 +msgid "Scroll" +msgstr "Scrollen" + +#: f.file.cc:4211 f.menus.cc:254 f.menus.cc:348 msgid "Sync.G" msgstr "Sync.G" -#: f.file.cc:4221 +#: f.file.cc:4223 msgid "change directory" msgstr "Verzeichnis wechseln" -#: f.file.cc:4229 f.menus.cc:434 +#: f.file.cc:4231 f.menus.cc:350 msgid "GoTo" msgstr "GehZu" -#: f.file.cc:4234 f.menus.cc:437 +#: f.file.cc:4236 f.menus.cc:353 msgid "Sort" msgstr "Sortieren" -#: f.file.cc:4241 f.file.cc:4665 f.file.cc:4666 f.file.cc:4668 f.menus.cc:435 +#: f.file.cc:4243 f.file.cc:4657 f.file.cc:4658 f.file.cc:4660 f.menus.cc:351 msgid "Zoom+" msgstr "Zoom+" -#: f.file.cc:4252 f.file.cc:4667 f.file.cc:4669 f.menus.cc:436 +#: f.file.cc:4254 f.file.cc:4659 f.file.cc:4661 f.menus.cc:352 msgid "Zoom-" msgstr "Zoom-" -#: f.file.cc:4265 f.file.cc:4673 f.menus.cc:442 +#: f.file.cc:4267 f.file.cc:4665 f.menus.cc:358 msgid "Row↑" msgstr "Reihe↑" -#: f.file.cc:4277 f.file.cc:4674 f.menus.cc:443 +#: f.file.cc:4279 f.file.cc:4666 f.menus.cc:359 msgid "Row↓" msgstr "Reihe↓" -#: f.file.cc:4289 f.file.cc:4676 f.menus.cc:438 +#: f.file.cc:4309 f.file.cc:4668 f.menus.cc:354 msgid "First" msgstr "Erste" -#: f.file.cc:4290 f.file.cc:4677 f.menus.cc:439 +#: f.file.cc:4310 f.file.cc:4669 f.menus.cc:355 msgid "Last" msgstr "Letzte" -#: f.file.cc:4291 f.file.cc:4671 f.file.cc:4678 f.menus.cc:440 +#: f.file.cc:4311 f.file.cc:4663 f.file.cc:4670 f.menus.cc:356 msgid "Page↑" msgstr "Seite↑" -#: f.file.cc:4292 f.file.cc:4672 f.file.cc:4679 f.menus.cc:441 +#: f.file.cc:4312 f.file.cc:4664 f.file.cc:4671 f.menus.cc:357 msgid "Page↓" msgstr "Seite↓" -#: f.file.cc:4342 +#: f.file.cc:4366 msgid "Choose image directory" msgstr "Bild-Verzeichnis wählen" -#: f.file.cc:4348 f.file.cc:4363 +#: f.file.cc:4372 f.file.cc:4387 msgid "recent" msgstr "kürzlich" -#: f.file.cc:4349 f.file.cc:4368 +#: f.file.cc:4373 f.file.cc:4392 msgid "newest" msgstr "neueste" -#: f.file.cc:4350 f.file.cc:4377 +#: f.file.cc:4374 f.file.cc:4401 msgid "collections" msgstr "Sammlungen" -#: f.file.cc:4423 f.tools.cc:2476 +#: f.file.cc:4449 f.tools.cc:2451 msgid "no collections found" msgstr "Keine Sammlung gefunden" -#: f.file.cc:4430 +#: f.file.cc:4456 msgid "Choose collection" msgstr "Sammlung wählen" -#: f.file.cc:4475 +#: f.file.cc:4503 msgid "Gallery Sort" msgstr "Galerie-Sortierung" -#: f.file.cc:4479 +#: f.file.cc:4507 msgid "File Name" msgstr "Dateinamen" -#: f.file.cc:4480 +#: f.file.cc:4508 msgid "File Mod Date/Time" msgstr "Dateiänderungs-Datum/Zeit" -#: f.file.cc:4481 +#: f.file.cc:4509 msgid "Photo Date/Time (EXIF)" msgstr "Foto Datum/Zeit (EXIF)" -#: f.file.cc:4483 +#: f.file.cc:4511 msgid "ascending" msgstr "aufsteigend" -#: f.file.cc:4484 +#: f.file.cc:4512 msgid "descending" msgstr "absteigend" -#: f.file.cc:5542 fotoxx.h:1061 +#: f.file.cc:5534 fotoxx.h:1067 msgid "Select Files" msgstr "Dateien auswählen" @@ -1214,7 +1234,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Geringe Drehung: rechten Rand mit der Maus ziehen" -#: f.image.cc:302 f.menus.cc:212 f.menus.cc:472 +#: f.image.cc:302 f.menus.cc:176 f.menus.cc:385 msgid "Trim/Rotate" msgstr "Schneiden/Drehen" @@ -1230,7 +1250,7 @@ msgid "Lock Ratio" msgstr "Seitenverhältniss fixieren" -#: f.image.cc:326 f.tools.cc:2793 +#: f.image.cc:326 msgid "Customize" msgstr "Anpassen" @@ -1266,7 +1286,7 @@ msgid "Resize Image" msgstr "Bildgröße verändern" -#: f.image.cc:1650 f.menus.cc:215 +#: f.image.cc:1650 f.menus.cc:179 msgid "Flip" msgstr "Spiegeln" @@ -1307,1123 +1327,1128 @@ msgid "plugin failed" msgstr "Plug-in fehlgeschlagen" -#: f.menus.cc:56 f.menus.cc:117 -msgid "File" -msgstr "Datei" - -#: f.menus.cc:57 f.menus.cc:118 -msgid "Tools" -msgstr "Werkzeuge" - -#: f.menus.cc:58 f.menus.cc:119 f.menus.cc:462 -msgid "Metadata" -msgstr "Metadaten" - -#: f.menus.cc:59 f.menus.cc:120 -msgid "Areas" -msgstr "Ausschnitt" - -#: f.menus.cc:61 f.menus.cc:122 -msgid "Retouch" -msgstr "Retuschieren" - -#: f.menus.cc:62 f.menus.cc:123 -msgid "Repair" -msgstr "Ausbessern" - -#: f.menus.cc:64 f.menus.cc:125 -msgid "Bend" -msgstr "Biegen" - -#: f.menus.cc:65 f.menus.cc:126 -msgid "Effects" -msgstr "Effekte" - -#: f.menus.cc:66 f.menus.cc:127 -msgid "Combine" -msgstr "Verbund" - -#: f.menus.cc:67 f.menus.cc:128 -msgid "Plugins" -msgstr "Plugins" - -#: f.menus.cc:68 f.menus.cc:129 fotoxx-14.03.cc:3811 fotoxx.h:1021 -msgid "Help" -msgstr "Hilfe" - -#: f.menus.cc:101 f.menus.cc:290 fotoxx-14.03.cc:3751 +#: f.menus.cc:67 fotoxx-14.04.cc:3775 msgid "Favorite Functions" msgstr "Favoriten Funktionen" -#: f.menus.cc:102 +#: f.menus.cc:68 msgid "Open, Save, Trash, Rename, Print" msgstr "Öffnen, Speichern, Papierkorb, Umbenennen, Drucken" -#: f.menus.cc:103 +#: f.menus.cc:69 msgid "Index Files, Settings, Collections, Batch Funcs ..." msgstr "Dateien indizieren, Einstellungen, Sammlungen, Stapelfunktionen ..." -#: f.menus.cc:104 +#: f.menus.cc:70 msgid "Captions, Tags, Ratings, Geotags, Search ... " msgstr "Titeln, Tags, Bewertungen, Geotags, Suchen ..." -#: f.menus.cc:105 +#: f.menus.cc:71 msgid "Select image areas to edit, copy and paste" msgstr "Bildausschnitte wählen zum Bearbeiten, Kopieren, Einfügen" -#: f.menus.cc:106 +#: f.menus.cc:72 msgid "Trim/Crop, Rotate, Resize, Add Text" msgstr "Schneiden, Drehen, Skalieren, Texte zufügen" -#: f.menus.cc:107 +#: f.menus.cc:73 msgid "Improve brightness, contrast, color ..." msgstr "Helligkeit, Kontrast, Farben ... verbessern" -#: f.menus.cc:108 +#: f.menus.cc:74 msgid "Sharpen, Clean, Red-eyes, Paint, Clone ..." msgstr "Schärfen, Säubern, Rote-Augen, Malen, Klonen ..." -#: f.menus.cc:109 +#: f.menus.cc:75 msgid "White Balance, Color Profile, Color Matching" msgstr "Weissabgleich, Farbraum, Farben anpassen" -#: f.menus.cc:110 +#: f.menus.cc:76 msgid "Fix Perspective, Bend/Warp image ..." msgstr "Perspektive verbessern, Bild entkrümmen ..." -#: f.menus.cc:111 +#: f.menus.cc:77 msgid "Special Effects, Arty Transforms" msgstr "Trickeffekte, kunstlerisch Verwandlungen" -#: f.menus.cc:112 +#: f.menus.cc:78 msgid "HDR, HDF, Panorama, Stack, Mashup" msgstr "HDR, HDF, Panorama, Stack, Mashup" -#: f.menus.cc:113 +#: f.menus.cc:79 msgid "Use other image editors within Fotoxx" msgstr "Andere Bildbearbeitungs-Programmen in Fotoxx Menus integrieren" -#: f.menus.cc:114 +#: f.menus.cc:80 msgid "Quick Start, User Guide, Recent Changes ..." msgstr "Schnellstart, Benutzeranweisung, neueste Änderungen ..." -#: f.menus.cc:148 +#: f.menus.cc:83 +msgid "File" +msgstr "Datei" + +#: f.menus.cc:84 +msgid "Tools" +msgstr "Werkzeuge" + +#: f.menus.cc:85 f.menus.cc:375 +msgid "Metadata" +msgstr "Metadaten" + +#: f.menus.cc:86 +msgid "Areas" +msgstr "Ausschnitt" + +#: f.menus.cc:88 +msgid "Retouch" +msgstr "Retuschieren" + +#: f.menus.cc:89 +msgid "Repair" +msgstr "Ausbessern" + +#: f.menus.cc:91 +msgid "Bend" +msgstr "Biegen" + +#: f.menus.cc:92 +msgid "Effects" +msgstr "Effekte" + +#: f.menus.cc:93 +msgid "Combine" +msgstr "Verbund" + +#: f.menus.cc:94 +msgid "Plugins" +msgstr "Plugins" + +#: f.menus.cc:95 fotoxx-14.04.cc:3835 fotoxx.h:1026 +msgid "Help" +msgstr "Hilfe" + +#: f.menus.cc:113 msgid "New Window" msgstr "Neues Fenster" -#: f.menus.cc:148 +#: f.menus.cc:113 msgid "Open another window" msgstr "Neues Bild-Fenster aufmachen" -#: f.menus.cc:149 f.menus.cc:297 +#: f.menus.cc:114 f.menus.cc:255 msgid "Open a new image file" msgstr "Neue Bilddatei öffnen" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open Previous File" msgstr "Vorherige Bilddatei öffnen" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open the previously seen file" msgstr "Die vorher gesehene Bilddatei öffnen" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Open a recently seen file" msgstr "Eine kürzliche gesehene Bilddatei öffnen" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Recently Seen Images" msgstr "kürzlich gesehene Bilder" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Newest Images" msgstr "Neueste Bilder" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Open a newly added file" msgstr "neu eingefügte Datei öffnen" -#: f.menus.cc:153 +#: f.menus.cc:118 msgid "Open and edit a camera RAW file" msgstr "RAW-Datei öffnen und bearbeiten" -#: f.menus.cc:154 f.menus.cc:300 +#: f.menus.cc:119 f.menus.cc:258 msgid "Save modified image file to disk" msgstr "Geänderte Bilddatei auf Festplatte speichern" -#: f.menus.cc:154 +#: f.menus.cc:119 msgid "Save to Disk" msgstr "Auf Festplatte speichern" -#: f.menus.cc:155 +#: f.menus.cc:120 msgid "Change the image file name" msgstr "Bilddateinamen ändern" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "Create a blank image" msgstr "Leerbild erstellen" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "New Blank Image" msgstr "Neues Leerbild" -#: f.menus.cc:157 f.menus.cc:301 +#: f.menus.cc:122 f.menus.cc:259 msgid "Move image file to Trash" msgstr "Bilddatei in den Abfall schieben" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print Image" msgstr "Bilddatei drucken" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print the current image" msgstr "Aktuelles Bild drucken" -#: f.menus.cc:159 +#: f.menus.cc:124 msgid "Quit Fotoxx" msgstr "Fotoxx beenden" -#: f.menus.cc:161 f.tools.cc:92 f.tools.cc:339 +#: f.menus.cc:126 f.tools.cc:92 f.tools.cc:339 msgid "Index Image Files" msgstr "Bilddateien Indizieren" -#: f.menus.cc:161 +#: f.menus.cc:126 msgid "Index new files and make thumbnails" msgstr "Neue Dateien indizieren und Thumbnails erstellen" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "Change user preferences" msgstr "Benutzereinstellungen ändern" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "User Settings" msgstr "Benutzereinstellungen" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Change Keyboard Shortcut Keys" msgstr "Tastatur-Schnelltasten bearbeiten" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Keyboard Shortcuts" msgstr "Schnelltasten" -#: f.menus.cc:164 f.tools.cc:1943 +#: f.menus.cc:129 f.tools.cc:1918 msgid "Manage Collections" msgstr "Sammlungen verwalten" -#: f.menus.cc:164 +#: f.menus.cc:129 msgid "Organize images into collections" msgstr "Bilder in Sammlungen organizieren" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Convert for a new top directory" msgstr "Für ein neues oberstes Verzeichnis konvertieren" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Move Collections" msgstr "Sammlungen versetzen" -#: f.menus.cc:166 f.tools.cc:2777 f.tools.cc:2780 +#: f.menus.cc:131 f.tools.cc:2728 msgid "Slide Show" msgstr "Dia-Show" -#: f.menus.cc:166 +#: f.menus.cc:131 msgid "Start a slide show" msgstr "Dia-Show starten" -#: f.menus.cc:167 f.tools.cc:4497 +#: f.menus.cc:132 f.tools.cc:4796 msgid "Batch Convert" msgstr "Bilder Stapel konvertieren" -#: f.menus.cc:167 +#: f.menus.cc:132 msgid "Rename/convert/resize/move multiple files" msgstr "Bilddateien umbenennen/konvertieren/skalieren/versetzen" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Batch Convert RAW" msgstr "RAW Bilder Stapel konvertieren" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Convert multiple camera RAW files" msgstr "Mehrere RAW-Dateien konvertieren" -#: f.menus.cc:169 -msgid "Brightness Histogram" -msgstr "Helligkeits-Histogramm" +#: f.menus.cc:134 f.menus.cc:185 f.menus.cc:390 f.retouch.cc:314 +#: f.tools.cc:5620 +msgid "Brightness Distribution" +msgstr "Helligkeitsverteilung" -#: f.menus.cc:169 +#: f.menus.cc:134 msgid "Show a brightness distribution graph" msgstr "Helligkeitsverteilungs-Grafik darstellen" -#: f.menus.cc:170 f.menus.cc:480 f.tools.cc:5517 +#: f.menus.cc:135 f.menus.cc:393 f.tools.cc:5825 msgid "Grid Lines" msgstr "Gitterlinien" -#: f.menus.cc:170 +#: f.menus.cc:135 msgid "Show or revise grid lines" msgstr "Gitterlinien zeigen oder ändern" -#: f.menus.cc:171 f.tools.cc:5701 +#: f.menus.cc:136 f.tools.cc:6009 msgid "Show RGB" msgstr "RGB-Werte zeigen" -#: f.menus.cc:171 +#: f.menus.cc:136 msgid "Show RGB colors at mouse click" msgstr "RGB-Werte auf Maus-klick zeigen" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Dark/Bright Pixels" msgstr "Dunkel/hell Pixeln" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Highlight darkest and brightest pixels" msgstr "Dunkelste und hellste Pixeln hervorheben" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Chart to adjust monitor color" msgstr "Grafik um Monitor-Farben einzustellen" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Monitor Color" msgstr "Monitor Farbgrafik" -#: f.menus.cc:174 +#: f.menus.cc:139 msgid "Chart to adjust monitor gamma" msgstr "Grafik um Monitor-Gamma einzustellen" -#: f.menus.cc:174 f.tools.cc:6213 +#: f.menus.cc:139 f.tools.cc:6521 msgid "Monitor Gamma" msgstr "Bildschirm-Gamma" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change Language" msgstr "Sprache wechseln" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change the GUI language" msgstr "GUI Sprache wechseln" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Missing Translations" msgstr "Fehlende Übersetzungen" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Report missing translations" msgstr "Fehlende Übersetzungen auflisten" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Create a Gnome menu and launcher" msgstr "Gnome Menu und Starter erstellen" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Menu and Launcher" msgstr "Menu und Starter" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn Images to CD/DVD" msgstr "Bilder auf CD/DVD brennen" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn selected image files to CD or DVD" msgstr "Ausgewählte Bilddateien auf CD oder DVD brennen" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Memory and CPU (to terminal/logfile)" msgstr "Speicher und CPU (zu Terminal/Logdatei)" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Resources" msgstr "Ressourcen" -#: f.menus.cc:183 f.meta.cc:121 f.meta.cc:1945 +#: f.menus.cc:147 f.meta.cc:121 f.meta.cc:1946 msgid "Edit Metadata" msgstr "Metadata bearbeiten" -#: f.menus.cc:183 +#: f.menus.cc:147 msgid "Edit image tags/caption/rating ..." msgstr "Bild Tags, Titel, Bewertung ... verarbeiten" -#: f.menus.cc:184 +#: f.menus.cc:148 msgid "Add/remove tags for multiple images" msgstr "Tags in mehreren Bilder zuweisen/entfernen" -#: f.menus.cc:184 f.meta.cc:1547 +#: f.menus.cc:148 f.meta.cc:1547 msgid "Batch Add/Remove Tags" msgstr "Tags zuweisen/entfernen Stapelbetrieb" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "List a few key metadata items" msgstr "Wichtigste Metadaten auflisten" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "View Metadata (short)" msgstr "Metadaten ansehen (kurz)" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "List all metadata items" msgstr "Alle Metadaten auflisten" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "View Metadata (long)" msgstr "Metadaten ansehen (lang)" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "List captions and comments only" msgstr "Nur Titel und Kommentare auflisten" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "View Captions and Comments" msgstr "Titel und Kommentare zeigen" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit Any Metadata" msgstr "Beliebige Metadaten bearbeiten" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit any image metadata" msgstr "Beliebige Bild-Metadaten bearbeiten" -#: f.menus.cc:189 f.meta.cc:2039 +#: f.menus.cc:153 f.meta.cc:2040 msgid "Delete Metadata" msgstr "Metadata löschen" -#: f.menus.cc:189 +#: f.menus.cc:153 msgid "Remove all metadata from an image" msgstr "Alle Metadaten vom Bild entfernen" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "(Toggle) show captions and comments" msgstr "(Knebel) Titel und Kommentare zeigen" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "Show Captions on Image" msgstr "Titel am Bild zeigen" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download Geolocations" msgstr "Geolocations herunterladen" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download initial geolocation database" msgstr "Anfangs-Geolocations-Datenbank herunterladen" -#: f.menus.cc:193 f.meta.cc:3023 +#: f.menus.cc:157 f.meta.cc:3027 msgid "Edit Geotags" msgstr "Geotags bearbeiten" -#: f.menus.cc:193 +#: f.menus.cc:157 msgid "Edit image location and geotags" msgstr "Bild Ort und Geotag verarbeiten" -#: f.menus.cc:194 +#: f.menus.cc:158 msgid "Add geotags to multiple images" msgstr "Geotags mehreren Bilder zufügen" -#: f.menus.cc:194 f.meta.cc:3225 +#: f.menus.cc:158 f.meta.cc:3229 msgid "Batch Add Geotags" msgstr "Geotags zu Bilder addieren" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Find all images for a location [date]" msgstr "Alle Bilder für einen Ort [Datum] finden" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Images by Location/Date" msgstr "Bilder nach Ort/Datum" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Find images by clicking a world map" msgstr "Bilder finden durch Klicken auf einen Weltkarte-Ort" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Images by Map Location" msgstr "Bilder von einem Weltkarte-Ort" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Find images meeting select criteria" msgstr "Bilder nach Auswahlkriterien finden" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Search Images" msgstr "Bilddatei durchsuchen" -#: f.menus.cc:199 fotoxx.h:1060 +#: f.menus.cc:163 fotoxx.h:1066 msgid "Select" msgstr "Auswählen" -#: f.menus.cc:199 +#: f.menus.cc:163 msgid "Select object or area for editing" msgstr "Ausschnitt zum Bearbeiten auswählen" -#: f.menus.cc:200 fotoxx.h:1062 +#: f.menus.cc:164 fotoxx.h:1068 msgid "Show" msgstr "Zeigen" -#: f.menus.cc:200 +#: f.menus.cc:164 msgid "Show (outline) existing area" msgstr "Aktuellen Ausschnitt zeigen (umranden)" -#: f.menus.cc:201 fotoxx.h:1022 +#: f.menus.cc:165 fotoxx.h:1027 msgid "Hide" msgstr "Ausblenden" -#: f.menus.cc:201 +#: f.menus.cc:165 msgid "Hide existing area" msgstr "Aktuellen Ausschnitt ausblenden" -#: f.menus.cc:202 fotoxx.h:1011 +#: f.menus.cc:166 fotoxx.h:1016 msgid "Enable" msgstr "Aktivieren" -#: f.menus.cc:202 +#: f.menus.cc:166 msgid "Enable area for editing" msgstr "Ausschnitt zum Bearbeiten aktivieren" -#: f.menus.cc:203 fotoxx.h:1006 +#: f.menus.cc:167 fotoxx.h:1011 msgid "Disable" msgstr "Ausschalten" -#: f.menus.cc:203 +#: f.menus.cc:167 msgid "Disable area for editing" msgstr "Ausschnitt ausschalten" -#: f.menus.cc:204 fotoxx.h:1025 +#: f.menus.cc:168 fotoxx.h:1030 msgid "Invert" msgstr "Invertieren" -#: f.menus.cc:204 +#: f.menus.cc:168 msgid "Reverse existing area" msgstr "Aktuellen Ausschnitt ins Gegenteil verkehren" -#: f.menus.cc:205 +#: f.menus.cc:169 msgid "Erase existing area" msgstr "Aktuellen Ausschnitt löschen" -#: f.menus.cc:205 fotoxx.h:1074 +#: f.menus.cc:169 fotoxx.h:1080 msgid "Unselect" msgstr "Deselektieren" -#: f.menus.cc:206 fotoxx.h:1001 +#: f.menus.cc:170 fotoxx.h:1006 msgid "Copy" msgstr "Kopieren" -#: f.menus.cc:206 +#: f.menus.cc:170 msgid "Copy an area for later pasting" msgstr "Ausschnitt kopieren für späteres Einfügen" -#: f.menus.cc:207 fotoxx.h:1041 +#: f.menus.cc:171 fotoxx.h:1046 msgid "Paste" msgstr "Einfügen" -#: f.menus.cc:207 +#: f.menus.cc:171 msgid "Paste an area into the current image" msgstr "Ausschnitt in das Bild einfügen" -#: f.menus.cc:208 +#: f.menus.cc:172 msgid "Open a file with a saved area" msgstr "Datei mit gespeichertem Ausschnitt öffnen" -#: f.menus.cc:209 f.menus.cc:300 fotoxx.h:1057 +#: f.menus.cc:173 f.menus.cc:258 fotoxx.h:1062 msgid "Save" msgstr "Speichern" -#: f.menus.cc:209 +#: f.menus.cc:173 msgid "Save an area to a file" msgstr "Ausschnitt als Datei speichern" -#: f.menus.cc:211 +#: f.menus.cc:175 msgid "Rotate 90 degrees" msgstr "90 Grad drehen" -#: f.menus.cc:211 f.menus.cc:474 +#: f.menus.cc:175 f.menus.cc:387 msgid "Rotate 90º" msgstr "Drehen 90º" -#: f.menus.cc:212 +#: f.menus.cc:176 msgid "Trim/Crop margins and/or Rotate" msgstr "Ränder schneiden und/oder Drehen" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Auto-Trim" msgstr "Auto-zuschneiden" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Remove margins from warp, panorama, etc." msgstr "Ränder von Krümmen, Panorama, usw. entfernen" -#: f.menus.cc:214 +#: f.menus.cc:178 msgid "Change pixel dimensions" msgstr "Pixelgröße ändern" -#: f.menus.cc:215 +#: f.menus.cc:179 msgid "Mirror image horizontally or vertically" msgstr "Bild horizontal oder vertikal spiegeln" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Add Text" msgstr "Texte zufügen" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Write text on image" msgstr "Texte auf Bild schreiben" -#: f.menus.cc:218 +#: f.menus.cc:182 msgid "Fast auto enhance that may work OK" msgstr "Schnelle Auto-Verbesserung die klappen könnte" -#: f.menus.cc:218 f.menus.cc:475 +#: f.menus.cc:182 f.menus.cc:388 msgid "Voodoo Enhance" msgstr "Voodoo Verbesserung" -#: f.menus.cc:219 +#: f.menus.cc:183 msgid "Adjust brightness, contrast, color" msgstr "Helligkeit, Kontrast, Farbe einstellen" -#: f.menus.cc:219 f.menus.cc:476 f.retouch.cc:265 +#: f.menus.cc:183 f.menus.cc:389 f.retouch.cc:271 msgid "Retouch Combo" msgstr "Retusch Combo" -#: f.menus.cc:222 +#: f.menus.cc:184 msgid "Add local contrast, enhance details" msgstr "Lokalen Kontrast erhöhen, Details hervorheben" -#: f.menus.cc:222 f.menus.cc:478 f.retouch.cc:929 +#: f.menus.cc:184 f.menus.cc:391 f.retouch.cc:1039 msgid "Tone Mapping" msgstr "Tone Mapping" -#: f.menus.cc:223 +#: f.menus.cc:185 msgid "Adjust brightness distribution" msgstr "Helligkeits-Verteilung justieren" -#: f.menus.cc:223 f.menus.cc:477 f.tools.cc:5314 -msgid "Brightness Distribution" -msgstr "Helligkeitsverteilung" - -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Brightness Ramp" msgstr "Helligkeit rampen" -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Fix brightness uniformity across image" msgstr "Helligkeits-Ungleichheiten verbessern" -#: f.menus.cc:225 f.retouch.cc:2050 +#: f.menus.cc:187 f.retouch.cc:2159 msgid "Paint Edits" msgstr "Änderungen anmalen" -#: f.menus.cc:225 +#: f.menus.cc:187 msgid "Paint edit function gradually with mouse" msgstr "Änderungs-Funktion allmählich mit der Maus anmalen" -#: f.menus.cc:227 +#: f.menus.cc:188 f.retouch.cc:2390 +msgid "Leverage Edits" +msgstr "Änderungs-Hebelkraft" + +#: f.menus.cc:188 +msgid "Leverage edits by brightness or color" +msgstr "Änderungen verstärken nach Helligkeit oder Farbwert" + +#: f.menus.cc:190 msgid "Make the image look sharper" msgstr "Bild schärfer machen" -#: f.menus.cc:227 f.repair.cc:79 f.tools.cc:4535 f.tools.cc:4904 +#: f.menus.cc:190 f.repair.cc:79 f.tools.cc:4834 f.tools.cc:5203 msgid "Sharpen" msgstr "Schärfen" -#: f.menus.cc:228 f.repair.cc:1565 +#: f.menus.cc:191 f.repair.cc:1565 msgid "Blur" msgstr "Verwischen" -#: f.menus.cc:228 +#: f.menus.cc:191 msgid "Make the image look fuzzy" msgstr "Bild verschwommen machen" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Filter noise from low-light photos" msgstr "Rausch in unterbelichteten Fotos ausfiltern" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Reduce Noise" msgstr "Rauschen vermindern" -#: f.menus.cc:230 +#: f.menus.cc:193 msgid "Remove unwanted objects" msgstr "Unerwünschte Gegenstände entfernen" -#: f.menus.cc:230 f.repair.cc:1558 +#: f.menus.cc:193 f.repair.cc:1558 msgid "Smart Erase" msgstr "Smart löschen" -#: f.menus.cc:231 +#: f.menus.cc:194 msgid "Fix red-eyes from electronic flash" msgstr "Rote Augen von Blitzfotos entfernen" -#: f.menus.cc:231 f.menus.cc:479 +#: f.menus.cc:194 f.menus.cc:392 msgid "Red Eyes" msgstr "Rote Augen" -#: f.menus.cc:232 +#: f.menus.cc:195 msgid "Paint image pixels using the mouse" msgstr "Bild-Pixeln mit der Maus anmalen" -#: f.menus.cc:232 f.repair.cc:2403 +#: f.menus.cc:195 f.repair.cc:2403 msgid "Paint/Clone" msgstr "Malen/Klonen" -#: f.menus.cc:233 f.repair.cc:2995 +#: f.menus.cc:196 f.repair.cc:2995 msgid "Remove Dust" msgstr "Staub entfernen" -#: f.menus.cc:233 +#: f.menus.cc:196 msgid "Remove dust spots from scanned slides" msgstr "Staubflecken von gescannten Dias entfernen" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Anti-alias" msgstr "Kantenglättung" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Smoothen edges with jaggies" msgstr "Ränder mit Treppeneffekt glätten" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Fix Color Fringes" msgstr "Farbränder ausbessern" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Reduce Chromatic Abberation" msgstr "Chromatische Aberration reduzieren" -#: f.menus.cc:236 +#: f.menus.cc:199 msgid "Erase known hot and dark pixels" msgstr "Bekannte heiße und dunkle Pixeln löschen" -#: f.menus.cc:236 f.repair.cc:4008 +#: f.menus.cc:199 f.repair.cc:4008 msgid "Fix Stuck Pixels" msgstr "Festpixel reparieren" -#: f.menus.cc:239 +#: f.menus.cc:201 msgid "Shift/convert colors into other colors" msgstr "Farben in andere Farben verwandeln" -#: f.menus.cc:240 +#: f.menus.cc:202 msgid "Make BW/color, negative/positive, sepia" msgstr "SW/farbiges Negativ/Positiv, Sepia machen" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Color Profile" msgstr "Farbraum" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Convert to another color profile" msgstr "In einen anderen Farbraum umwandeln" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match Colors" msgstr "Farben anpassen" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match colors on one image with another" msgstr "Farben in einem Bild an ein anderes anpassen" -#: f.menus.cc:243 +#: f.menus.cc:205 msgid "Adjust color in selected image areas" msgstr "Farben in ausgewählten Bereichen einstellen" -#: f.menus.cc:244 +#: f.menus.cc:206 msgid "Adjust color using CMYK or RGB values" msgstr "Farben einstellen mittels CMYK oder RGB Werte" -#: f.menus.cc:246 +#: f.menus.cc:208 msgid "Remove curvature, esp. panoramas" msgstr "Entkrümmen, besonders bei Panoramen" -#: f.menus.cc:247 +#: f.menus.cc:209 msgid "Straighten objects seen from an angle" msgstr "Aus einem Winkel gesehene Objekte gerade machen" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten Book Page" msgstr "Buchseite flachmachen" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten a photographed book page" msgstr "Foto von einer Buchseite flachmachen" -#: f.menus.cc:249 +#: f.menus.cc:211 msgid "Distort image areas using the mouse" msgstr "Bild-Ausschnitt mit der Maus krümmen" -#: f.menus.cc:250 f.menus.cc:251 f.menus.cc:252 +#: f.menus.cc:212 f.menus.cc:213 f.menus.cc:214 msgid "Distort the whole image using the mouse" msgstr "Ganzes Bild mit der Maus krümmen" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Color Depth" msgstr "Farbtiefe" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Reduce color depth (posterize)" msgstr "Farbtiefe reduzieren (Posterisation)" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Convert to pencil sketch" msgstr "In eine Stiftzeichnung verwandeln" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Sketch" msgstr "Zeichnung" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Convert to colored line drawing" msgstr "In eine Farbstift-Zeichnung verwandeln" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Drawing" msgstr "Zeichnung" -#: f.menus.cc:257 +#: f.menus.cc:219 msgid "Graduated Blur depending on contrast" msgstr "Gestaffelte Verwischung je nach dem Kontrast" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Create an embossed or 3D appearance" msgstr "In eine Prägung mit 3D Wirkung verwandeln" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Embossing" msgstr "Prägung" -#: f.menus.cc:259 +#: f.menus.cc:221 msgid "Convert to square tiles" msgstr "In Kacheln verwandeln" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "In Rasterpunkte verwandeln (Roy Lichtenstein Effekt)" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Dots" msgstr "Rasterpunkte" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Convert into a simulated painting" msgstr "In ein simuliertes Gemälde verwandeln" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Painting" msgstr "Gemälde" -#: f.menus.cc:262 +#: f.menus.cc:224 msgid "Change brightness or color radially" msgstr "Helligkeit oder Farbwert radial ändern" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Add texture to an image" msgstr "Textur auf Bild zufügen" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Texture" msgstr "Textur" -#: f.menus.cc:264 +#: f.menus.cc:226 msgid "Tile image with a repeating pattern" msgstr "Bild mit sich wiederholenden Muster fliesen" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Create a mosaic with tiles made from all images" msgstr "Mosaik mit Kacheln aus allen Bilder erstellen" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Mosaic" msgstr "Mosaik" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "Combine bright/dark images for better detail" msgstr "Hell- und Dunkel-Bilder kombinieren um Details zu verbessern" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "High Dynamic Range" msgstr "Hoher Dynamikbereich" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "Combine near/far focus images for deeper focus" msgstr "Bilder mit näher/ferner Fokus kombinieren für mehr Schärfentiefe" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "High Depth of Field" msgstr "Hohe Schärfentiefe" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Combine images to erase passing people, etc." msgstr "Bilder kombinieren um vorbeigehende Menschen, usw. zu entfernen" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Stack / Paint" msgstr "Stapeln / malen" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Combine noisy images into a low-noise image" msgstr "Rauschige Bilder zu einem Niedrig-Rausch Bild kombinieren" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Stack / Noise" msgstr "Stapeln / Rauschen" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Combine images into a panorama" msgstr "Bilder zu einem Panorama-Bild kombinieren" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Panorama" msgstr "Panorama" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Combine images into a vertical panorama" msgstr "Bilder zu einem Vertikal-Panorama kombinieren" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Vertical Panorama" msgstr "Vertikales Panorama" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Arrange multiple images on a background image" msgstr "Bilder auf Hintergrund-Lageplan ordnen" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Mashup" msgstr "Mashup" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Add another image editor to the menu" msgstr "Ein anderes Bildprogram ins Menu zufügen" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Edit Plugins" msgstr "Plugins bearbeiten" -#: f.menus.cc:277 fotoxx-14.03.cc:3777 +#: f.menus.cc:239 fotoxx-14.04.cc:3801 msgid "Quick Start" msgstr "Schnell-Start" -#: f.menus.cc:277 +#: f.menus.cc:239 msgid "Quick Start mini-guide" msgstr "Schnell-Start Mini-Anweisung" -#: f.menus.cc:278 +#: f.menus.cc:240 msgid "Read the user guide" msgstr "Benutzeranleitung lesen" -#: f.menus.cc:278 fotoxx-14.03.cc:3780 +#: f.menus.cc:240 fotoxx-14.04.cc:3804 msgid "User Guide" msgstr "Benutzeranleitung" -#: f.menus.cc:279 +#: f.menus.cc:241 msgid "Recent user guide changes" msgstr "Neueste Benutzeranleitungs-Änderungen" -#: f.menus.cc:279 fotoxx-14.03.cc:3783 +#: f.menus.cc:241 fotoxx-14.04.cc:3807 msgid "User Guide Changes" msgstr "Benutzeranleitung Änderungen" -#: f.menus.cc:280 +#: f.menus.cc:242 msgid "Fotoxx updates notification" msgstr "Fotoxx Aktualisierungs-Benachrichtigung" -#: f.menus.cc:280 fotoxx-14.03.cc:3786 +#: f.menus.cc:242 fotoxx-14.04.cc:3810 msgid "Program Updates" msgstr "Programaktualisierungen" -#: f.menus.cc:281 fotoxx-14.03.cc:3792 +#: f.menus.cc:243 fotoxx-14.04.cc:3816 msgid "Edit Functions Summary" msgstr "Verarbeitungsfunktionen Übersicht" -#: f.menus.cc:281 +#: f.menus.cc:243 msgid "Summary of image edit functions" msgstr "Bildbearbeitungsfunktionen Zusammenfassung" -#: f.menus.cc:282 fotoxx-14.03.cc:3789 +#: f.menus.cc:244 fotoxx-14.04.cc:3813 msgid "README" msgstr "LIESMICH" -#: f.menus.cc:282 +#: f.menus.cc:244 msgid "Technical installation notes" msgstr "Technische Installierungsnotizen" -#: f.menus.cc:283 fotoxx-14.03.cc:3795 +#: f.menus.cc:245 fotoxx-14.04.cc:3819 msgid "Change Log" msgstr "Änderungslog" -#: f.menus.cc:283 +#: f.menus.cc:245 msgid "List updates by Fotoxx version" msgstr "Änderungen nach Fotoxxversion auflisten" -#: f.menus.cc:284 fotoxx-14.03.cc:3798 +#: f.menus.cc:246 fotoxx-14.04.cc:3822 msgid "Log File" msgstr "Fehlerlogdatei" -#: f.menus.cc:284 +#: f.menus.cc:246 msgid "View the log file and error messages" msgstr "Logdatei und Fehlermeldungen auflisten" -#: f.menus.cc:285 +#: f.menus.cc:247 msgid "How to do Fotoxx translations" msgstr "Wie eine Fotoxx Übersetzung erstellt wird" -#: f.menus.cc:285 fotoxx-14.03.cc:3801 +#: f.menus.cc:247 fotoxx-14.04.cc:3825 msgid "Translations" msgstr "Übersetzungen" -#: f.menus.cc:286 fotoxx-14.03.cc:3804 +#: f.menus.cc:248 fotoxx-14.04.cc:3828 msgid "Home Page" msgstr "Homepage" -#: f.menus.cc:286 +#: f.menus.cc:248 msgid "Show the Fotoxx web page" msgstr "Fotoxx Webseite zeigen" -#: f.menus.cc:287 fotoxx-14.03.cc:3807 +#: f.menus.cc:249 fotoxx-14.04.cc:3831 msgid "About" msgstr "Über Fotoxx" -#: f.menus.cc:287 +#: f.menus.cc:249 msgid "Version, license, contact, credits" msgstr "Version, Lizens, Kontakt, Mitwirkende" -#: f.menus.cc:290 -msgid "Favs" -msgstr "Favis" - -#: f.menus.cc:292 +#: f.menus.cc:251 msgid "Color of area borders etc." msgstr "Farbe von Ausschnitträndern usw." -#: f.menus.cc:293 fotoxx.h:1072 +#: f.menus.cc:252 fotoxx.h:1078 msgid "Undo" msgstr "Undo" -#: f.menus.cc:293 +#: f.menus.cc:252 msgid "Undo one edit" msgstr "Eine Änderung wiederrufen" -#: f.menus.cc:294 fotoxx.h:1051 +#: f.menus.cc:253 fotoxx.h:1056 msgid "Redo" msgstr "Redo" -#: f.menus.cc:294 +#: f.menus.cc:253 msgid "Redo one edit" msgstr "Wiederrufene Änderung zurückholen" -#: f.menus.cc:296 f.menus.cc:432 +#: f.menus.cc:254 f.menus.cc:348 msgid "Set gallery from current image file" msgstr "Gallerie vom aktuellen Bild bestimmen" -#: f.menus.cc:298 +#: f.menus.cc:256 msgid "Open the previous file" msgstr "Vorherige Bilddatei öffnen" -#: f.menus.cc:298 fotoxx.h:1046 +#: f.menus.cc:256 fotoxx.h:1051 msgid "Prev" msgstr "Vorig" -#: f.menus.cc:299 fotoxx.h:1034 +#: f.menus.cc:257 fotoxx.h:1039 msgid "Next" msgstr "Nächst" -#: f.menus.cc:299 +#: f.menus.cc:257 msgid "Open the next file" msgstr "Nächte Bilddatei öffnen" -#: f.menus.cc:301 f.menus.cc:483 fotoxx.h:1068 +#: f.menus.cc:259 f.menus.cc:396 fotoxx.h:1074 msgid "Trash" msgstr "Abfall" -#: f.menus.cc:344 f.menus.cc:373 +#: f.menus.cc:306 msgid "Run as Fotoxx edit function" msgstr "Als Fotoxx-Bearbeitungsfunktion benutzen" -#: f.menus.cc:412 +#: f.menus.cc:328 msgid "Top" msgstr "Oben" -#: f.menus.cc:433 +#: f.menus.cc:349 msgid "open another directory" msgstr "Neues Verzeichnis öffnen" -#: f.menus.cc:434 +#: f.menus.cc:350 msgid "go to bookmarked image" msgstr "Zum Lesezeichen-markierten Bild gehen" -#: f.menus.cc:435 +#: f.menus.cc:351 msgid "increase thumbnail size" msgstr "Thumbnails vergrößern" -#: f.menus.cc:436 +#: f.menus.cc:352 msgid "reduce thumbnail size" msgstr "Thumbnails verkleinern" -#: f.menus.cc:437 +#: f.menus.cc:353 msgid "change sort order" msgstr "Reihenfolge ändern" -#: f.menus.cc:438 +#: f.menus.cc:354 msgid "jump to beginning (top)" msgstr "Zum Anfang springen (oben)" -#: f.menus.cc:439 +#: f.menus.cc:355 msgid "jump to end (bottom)" msgstr "Zu Ende springen (unten)" -#: f.menus.cc:440 +#: f.menus.cc:356 msgid "previous page" msgstr "Vorherige Seite" -#: f.menus.cc:441 +#: f.menus.cc:357 msgid "next page" msgstr "Nächste Seite" -#: f.menus.cc:442 +#: f.menus.cc:358 msgid "previous row" msgstr "Vorherige Reihe" -#: f.menus.cc:443 +#: f.menus.cc:359 msgid "next row" msgstr "Nächste Reihe" -#: f.menus.cc:461 +#: f.menus.cc:360 +msgid "slow scroll" +msgstr "Langsam scrollen" + +#: f.menus.cc:374 msgid "Popup Image" msgstr "Pop-up Bild" -#: f.menus.cc:463 fotoxx.h:1054 +#: f.menus.cc:376 fotoxx.h:1059 msgid "Rename" msgstr "Umbenennen" -#: f.menus.cc:464 +#: f.menus.cc:377 msgid "Copy to Location" msgstr "zu Speicherstelle kopieren" -#: f.menus.cc:465 +#: f.menus.cc:378 msgid "Move to Location" msgstr "Speicherstelle versetzen" -#: f.menus.cc:466 +#: f.menus.cc:379 msgid "Copy to Clipboard" msgstr "Auf Zwischenablage kopieren" -#: f.menus.cc:467 +#: f.menus.cc:380 msgid "Remove from Collection" msgstr "Von Sammlung entfernen" -#: f.menus.cc:468 +#: f.menus.cc:381 msgid "Cut to Image Cache" msgstr "zu Bildercache ausschneiden" -#: f.menus.cc:469 +#: f.menus.cc:382 msgid "Copy to Image Cache" msgstr "zu Bildercache kopieren" -#: f.menus.cc:470 +#: f.menus.cc:383 msgid "Paste Image Cache Here (clear)" msgstr "Bildercache hier einfügen (löschen)" -#: f.menus.cc:471 +#: f.menus.cc:384 msgid "Paste Image Cache Here (keep)" msgstr "Bildercache hier einfügen (behalten)" -#: f.menus.cc:481 +#: f.menus.cc:394 msgid "Select Area" msgstr "Ausschnitt auswählen" @@ -2432,7 +2457,7 @@ msgid "Rating: %c (stars)" msgstr "Bewertung: %c (Sterne)" -#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1939 f.meta.cc:3036 f.meta.cc:3311 +#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1940 f.meta.cc:3040 f.meta.cc:3315 msgid "file type cannot have metadata" msgstr "Dateityp kann keine Metadaten haben" @@ -2484,7 +2509,7 @@ msgid "Recent Tags" msgstr "Kürzliche Tags" -#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4267 +#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4271 msgid "Defined Tags" msgstr "Definierte Tags" @@ -2504,7 +2529,7 @@ msgid "time is invalid" msgstr "Zeit ist ungültig" -#: f.meta.cc:532 fotoxx.h:1029 +#: f.meta.cc:532 fotoxx.h:1034 msgid "Manage Tags" msgstr "Tags verwalten" @@ -2520,11 +2545,11 @@ msgid "tag" msgstr "Tag" -#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1474 +#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1449 msgid "file not found" msgstr "Datei nicht gefunden" -#: f.meta.cc:1552 f.meta.cc:3257 f.tools.cc:4501 f.tools.cc:4966 +#: f.meta.cc:1552 f.meta.cc:3261 f.tools.cc:4800 f.tools.cc:5265 msgid "0 files selected" msgstr "0 Dateien ausgewählt" @@ -2549,7 +2574,7 @@ msgid "specify files and tags" msgstr "Tags und Dateien angeben" -#: f.meta.cc:1788 f.meta.cc:3369 f.tools.cc:4800 f.tools.cc:5185 +#: f.meta.cc:1788 f.meta.cc:3373 f.tools.cc:5099 f.tools.cc:5484 #, c-format msgid "%d files selected" msgstr "%d Dateien ausgewählt" @@ -2558,11 +2583,11 @@ msgid "View Metadata" msgstr "Metadata ansehen" -#: f.meta.cc:1903 +#: f.meta.cc:1904 msgid "Caption: \n" msgstr "Titel: \n" -#: f.meta.cc:1905 +#: f.meta.cc:1906 msgid "" "\n" "Comment: \n" @@ -2570,23 +2595,23 @@ "\n" "Kommentar: \n" -#: f.meta.cc:1949 +#: f.meta.cc:1950 msgid "key name" msgstr "Schlüsselwort" -#: f.meta.cc:1951 +#: f.meta.cc:1952 msgid "key value" msgstr "Inhalt" -#: f.meta.cc:2041 fotoxx.h:985 +#: f.meta.cc:2042 fotoxx.h:990 msgid "All" msgstr "Alles" -#: f.meta.cc:2042 +#: f.meta.cc:2043 msgid "One Key:" msgstr "Ein Key:" -#: f.meta.cc:2222 +#: f.meta.cc:2223 #, c-format msgid "" "Download geotags data (8 megabytes). \n" @@ -2597,48 +2622,40 @@ "In %s speichern \n" "Fortsetzen?" -#: f.meta.cc:2261 +#: f.meta.cc:2262 msgid "download failed" msgstr "Download gescheitert" -#: f.meta.cc:2292 fotoxx-14.03.cc:1079 -msgid "Location from World Map" -msgstr "Ort von der Weltkarte" - -#: f.meta.cc:2294 -msgid "Loading world map" -msgstr "Weltkarte laden ..." - -#: f.meta.cc:2304 f.meta.cc:2449 +#: f.meta.cc:2298 f.meta.cc:2445 msgid "please download geolocations data" msgstr "Geolocation-Daten bitte herunterladen" -#: f.meta.cc:2309 +#: f.meta.cc:2304 msgid "Loading geolocations" msgstr "Geolocations laden ..." -#: f.meta.cc:2737 f.meta.cc:3209 f.meta.cc:3477 +#: f.meta.cc:2741 f.meta.cc:3213 f.meta.cc:3481 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "Latitude/Longitude falsch: %s %s" -#: f.meta.cc:3024 +#: f.meta.cc:3028 msgid "Geocoding web service courtesy of" msgstr "Geocodingdienst mit Genehmigung von" -#: f.meta.cc:3045 f.meta.cc:3259 f.meta.cc:4772 +#: f.meta.cc:3049 f.meta.cc:3263 f.meta.cc:4778 msgid "city" msgstr "Stadt" -#: f.meta.cc:3048 f.meta.cc:3262 f.meta.cc:4775 +#: f.meta.cc:3052 f.meta.cc:3266 f.meta.cc:4781 msgid "country" msgstr "Land" -#: f.meta.cc:3120 f.meta.cc:3390 +#: f.meta.cc:3124 f.meta.cc:3394 msgid "city not found" msgstr "Stadt nicht gefunden" -#: f.meta.cc:3455 +#: f.meta.cc:3459 msgid "" "data is incomplete \n" " proceed?" @@ -2646,139 +2663,139 @@ "Daten nicht vollständig \n" " Fortsetzen?" -#: f.meta.cc:3481 f.tools.cc:4844 +#: f.meta.cc:3485 f.tools.cc:5143 msgid "no files selected" msgstr "Keine Dateien ausgewählt" -#: f.meta.cc:3513 +#: f.meta.cc:3517 msgid "choose city" msgstr "Stadt auswählen" -#: f.meta.cc:3599 +#: f.meta.cc:3603 msgid "not found" msgstr "Nicht gefunden" -#: f.meta.cc:3600 +#: f.meta.cc:3604 msgid "city and country required" msgstr "Stadt und Land erforderlich" -#: f.meta.cc:3692 +#: f.meta.cc:3696 msgid "Report Geotag Groups" msgstr "Geotag-Gruppen auflisten" -#: f.meta.cc:3693 +#: f.meta.cc:3697 msgid "Group by country" msgstr "Nach Land gruppieren" -#: f.meta.cc:3694 +#: f.meta.cc:3698 msgid "Group by country/city" msgstr "Nach Land/Stadt gruppieren" -#: f.meta.cc:3695 +#: f.meta.cc:3699 msgid "Group by country/city/date" msgstr "Nach Land/Stadt/Datum gruppieren" -#: f.meta.cc:3698 +#: f.meta.cc:3702 msgid "Combine within" msgstr "Kombinieren innerhalb" -#: f.meta.cc:3700 +#: f.meta.cc:3704 msgid "days" msgstr "Tage" -#: f.meta.cc:3815 +#: f.meta.cc:3819 msgid "geotag groups" msgstr "Geotaggruppen" -#: f.meta.cc:4043 +#: f.meta.cc:4047 msgid "search range (km)" msgstr "Suchentfernung (km)" -#: f.meta.cc:4116 +#: f.meta.cc:4120 msgid "No matching images found" msgstr "Keine übereinstimmenden Bilder gefunden" -#: f.meta.cc:4202 +#: f.meta.cc:4206 msgid "Search Image Metadata" msgstr "Bilder-Metadaten suchen" -#: f.meta.cc:4206 +#: f.meta.cc:4210 msgid "images to search:" msgstr "Bilder durchsuchen:" -#: f.meta.cc:4207 +#: f.meta.cc:4211 msgid "all" msgstr "Alle" -#: f.meta.cc:4208 +#: f.meta.cc:4212 msgid "current set only" msgstr "nur Aktueller Satz" -#: f.meta.cc:4211 +#: f.meta.cc:4215 msgid "matching images:" msgstr "passende Bilder:" -#: f.meta.cc:4212 +#: f.meta.cc:4216 msgid "new set" msgstr "neuer Satz" -#: f.meta.cc:4213 +#: f.meta.cc:4217 msgid "add to set" msgstr "dem Satz zufügen" -#: f.meta.cc:4214 +#: f.meta.cc:4218 msgid "remove" msgstr "entfernen" -#: f.meta.cc:4217 +#: f.meta.cc:4221 msgid "report type:" msgstr "Bericht-Typ:" -#: f.meta.cc:4218 +#: f.meta.cc:4222 msgid "gallery" msgstr "Galerie" -#: f.meta.cc:4219 +#: f.meta.cc:4223 msgid "metadata" msgstr "Metadaten" -#: f.meta.cc:4225 +#: f.meta.cc:4229 msgid "date range" msgstr "Datumsbereich" -#: f.meta.cc:4226 +#: f.meta.cc:4230 msgid "stars range" msgstr "Sterne-Wertebereich" -#: f.meta.cc:4227 +#: f.meta.cc:4231 msgid "search tags" msgstr "Such-Tags" -#: f.meta.cc:4228 +#: f.meta.cc:4232 msgid "search text" msgstr "Text durchsuchen" -#: f.meta.cc:4229 +#: f.meta.cc:4233 msgid "search files" msgstr "Dateien suchen" -#: f.meta.cc:4234 +#: f.meta.cc:4238 msgid "(yyyymmdd)" msgstr "(jjjjmmtt)" -#: f.meta.cc:4240 +#: f.meta.cc:4244 msgid "all/any" msgstr "alle/irgendeines" -#: f.meta.cc:4259 +#: f.meta.cc:4263 msgid "other criteria" msgstr "Andere Auswahlkriterien" -#: f.meta.cc:4263 +#: f.meta.cc:4267 msgid "other" msgstr "Andere" -#: f.meta.cc:4398 +#: f.meta.cc:4402 msgid "" "to remove images from current set, \n" "search current set" @@ -2786,7 +2803,7 @@ "Um Bilder vom aktuellen Satz zu entfernen, \n" "aktuellen Satz durchsuchen" -#: f.meta.cc:4405 +#: f.meta.cc:4409 msgid "" "to add images to current set, \n" "search all images" @@ -2794,28 +2811,28 @@ "Um Bilder dem aktuellen Satz zuzufügen, \n" "alle Bilder durchsuchen" -#: f.meta.cc:4632 +#: f.meta.cc:4636 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "Bilder zugefügt: %d entfernt: %d neue Anzahl: %d" -#: f.meta.cc:4635 +#: f.meta.cc:4639 msgid "no changes made" msgstr "keine Änderungen gemach" -#: f.meta.cc:4769 +#: f.meta.cc:4775 msgid "Add Geotags Search Criteria" msgstr "Geotags Suchkriterien addieren" -#: f.meta.cc:4788 +#: f.meta.cc:4794 msgid "range (km)" msgstr "Entfernung (km)" -#: f.meta.cc:4881 +#: f.meta.cc:4885 msgid "error in latitude/longitude/range" msgstr "Fehler in Längengrad/Breitengrad/Entfernung" -#: f.meta.cc:4946 +#: f.meta.cc:4950 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2823,19 +2840,19 @@ "Folgende wird immer berichtet: \n" "Datum, Sterne, Tags, Titel, Kommentare" -#: f.meta.cc:4970 +#: f.meta.cc:4974 msgid "Additional Items for Report" msgstr "Zusätzliche Metadaten im Bericht" -#: f.meta.cc:4976 +#: f.meta.cc:4980 msgid "Keyword" msgstr "Schlüsselwort" -#: f.meta.cc:4983 +#: f.meta.cc:4987 msgid "Match Criteria" msgstr "Trefferkriterien" -#: f.meta.cc:5554 f.tools.cc:300 +#: f.meta.cc:5558 f.tools.cc:300 msgid "image index is missing" msgstr "Bilddatei Index fehlt" @@ -2879,7 +2896,7 @@ "1. Zum Selektieren, Maus ziehen. \n" "2. Löschen. 3. Wiederholen. " -#: f.repair.cc:1563 fotoxx.h:1048 +#: f.repair.cc:1563 fotoxx.h:1053 msgid "Radius" msgstr "Radius" @@ -3001,87 +3018,95 @@ msgid "Stuck Pixels file" msgstr "Festpixel Datei" -#: f.repair.cc:4203 +#: f.repair.cc:4203 f.tools.cc:3380 msgid "file format error" msgstr "Dateiformat Fehler" -#: f.retouch.cc:292 fotoxx.h:993 +#: f.retouch.cc:292 +msgid "Amplifier" +msgstr "Verstärker" + +#: f.retouch.cc:293 fotoxx.h:998 msgid "Brightness" msgstr "Helligkeit" -#: f.retouch.cc:293 fotoxx.h:1000 +#: f.retouch.cc:294 fotoxx.h:1005 msgid "Contrast" msgstr "Kontrast" -#: f.retouch.cc:294 +#: f.retouch.cc:295 msgid "Low Color" msgstr "Niedrige Farbe" -#: f.retouch.cc:295 +#: f.retouch.cc:296 msgid "Warmer" msgstr "Wärmer" -#: f.retouch.cc:296 +#: f.retouch.cc:297 msgid "Dark Areas" msgstr "Dunkle Bereiche" -#: f.retouch.cc:304 f.retouch.cc:305 f.retouch.cc:306 +#: f.retouch.cc:306 +msgid "Max." +msgstr "Max." + +#: f.retouch.cc:307 f.retouch.cc:308 f.retouch.cc:309 msgid "High" msgstr "Hoch" -#: f.retouch.cc:307 +#: f.retouch.cc:310 msgid "Cooler" msgstr "Kühler" -#: f.retouch.cc:308 +#: f.retouch.cc:311 msgid "Bright" msgstr "Hell" -#: f.retouch.cc:311 +#: f.retouch.cc:317 msgid "Click for white balance or black level" msgstr "Anklicken für Weißabgleich oder Schwarzwert" -#: f.retouch.cc:957 +#: f.retouch.cc:1067 msgid "low" msgstr "niedrig" -#: f.retouch.cc:959 +#: f.retouch.cc:1069 msgid "high" msgstr "hoch" -#: f.retouch.cc:962 +#: f.retouch.cc:1072 msgid "Amplify" msgstr "Verstärken" -#: f.retouch.cc:1301 +#: f.retouch.cc:1411 msgid "Adjust Brightness Distribution" -msgstr "Helligkeits-Verteilung Justieren" +msgstr "Helligkeit-Verteilung Justieren" -#: f.retouch.cc:1339 +#: f.retouch.cc:1449 msgid "Flatten" msgstr "Ausgleichen" -#: f.retouch.cc:1340 +#: f.retouch.cc:1450 msgid "Deband" msgstr "Entstreifen" -#: f.retouch.cc:1341 +#: f.retouch.cc:1451 msgid "Darken" msgstr "Verdunkeln" -#: f.retouch.cc:1342 +#: f.retouch.cc:1452 msgid "Brighten" msgstr "Aufhellen" -#: f.retouch.cc:1675 +#: f.retouch.cc:1784 msgid "Ramp brightness across image" msgstr "Helligkeit an-/absteigend im Bild ändern" -#: f.retouch.cc:2052 f.tools.cc:5777 +#: f.retouch.cc:2161 f.retouch.cc:2398 f.tools.cc:6085 msgid "Edit function must be active" msgstr "Editfunktion muss aktiv sein" -#: f.retouch.cc:2060 fotoxx-14.03.cc:3108 +#: f.retouch.cc:2169 fotoxx-14.04.cc:3132 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -3089,14 +3114,26 @@ "Ausschnitt kann nicht behalten werden.\n" "Fortfahren?" -#: f.retouch.cc:2089 +#: f.retouch.cc:2198 msgid "power: center" msgstr "Stärke: Mitte" -#: f.retouch.cc:2094 +#: f.retouch.cc:2203 msgid "reset area" msgstr "zurücksetzen" +#: f.retouch.cc:2391 +msgid "Edit Function Amplifier" +msgstr "Bearbeitungs-Verstärker" + +#: f.retouch.cc:2427 +msgid "minimum" +msgstr "Minimum" + +#: f.retouch.cc:2429 +msgid "maximum" +msgstr "Maximum" + #: f.tools.cc:95 msgid "Top Image Directories" msgstr "Oberste Bildverzeichnisse" @@ -3152,152 +3189,136 @@ msgid "COMPLETED" msgstr "FERTIG" -#: f.tools.cc:818 +#: f.tools.cc:817 msgid "Settings" msgstr "Einstellungen" -#: f.tools.cc:821 +#: f.tools.cc:820 msgid "Startup Display" msgstr "Anfangsanzeige" -#: f.tools.cc:823 +#: f.tools.cc:822 msgid "Recent Files Gallery" msgstr "Zuletzt gesehene Bilder" -#: f.tools.cc:825 +#: f.tools.cc:824 msgid "Newest Files Gallery" msgstr "Neueste Bilddateien" -#: f.tools.cc:827 +#: f.tools.cc:826 msgid "Previous Gallery" msgstr "Vorherige Galerie" -#: f.tools.cc:829 +#: f.tools.cc:828 msgid "Previous Image" msgstr "Vorheriges Bild" -#: f.tools.cc:831 +#: f.tools.cc:830 msgid "Blank Window" msgstr "Leeres Fenster" -#: f.tools.cc:833 +#: f.tools.cc:832 msgid "Directory Gallery" msgstr "Verzeichnisgalerie" -#: f.tools.cc:837 +#: f.tools.cc:836 msgid "Image File" msgstr "Bilddatei" -#: f.tools.cc:844 -msgid "Menu Style" -msgstr "Menu Art" - -#: f.tools.cc:845 -msgid "Classic" -msgstr "Klassisch" - -#: f.tools.cc:846 -msgid "Vertical" -msgstr "Vertikal" - -#: f.tools.cc:849 +#: f.tools.cc:843 msgid "Toolbar Style" msgstr "Symbolleiste-Stil" -#: f.tools.cc:851 +#: f.tools.cc:845 msgid "Icons" msgstr "Icons" -#: f.tools.cc:852 +#: f.tools.cc:846 msgid "Both" msgstr "Beides" -#: f.tools.cc:855 +#: f.tools.cc:849 msgid "Image Pan" msgstr "Bild schwenken" -#: f.tools.cc:856 +#: f.tools.cc:850 msgid "Drag" msgstr "Ziehen" -#: f.tools.cc:857 -msgid "Scroll" -msgstr "Scrollen" - -#: f.tools.cc:858 +#: f.tools.cc:852 msgid "Magnified" msgstr "Vergrößert" -#: f.tools.cc:867 +#: f.tools.cc:861 msgid "Default JPEG quality" msgstr "JPEG-Qualität Ausgangswert" -#: f.tools.cc:871 +#: f.tools.cc:865 msgid "Zooms for 200%" msgstr "Zooms für 200%" -#: f.tools.cc:875 +#: f.tools.cc:869 msgid "RAW command" msgstr "RAW Befehl" -#: f.tools.cc:879 +#: f.tools.cc:873 msgid "RAW file types" msgstr "RAW Dateitypen" -#: f.tools.cc:1027 +#: f.tools.cc:1016 msgid "startup directory is invalid" msgstr "Anfangsverzeichnes ungültig" -#: f.tools.cc:1035 +#: f.tools.cc:1024 msgid "startup file is invalid" msgstr "Anfangsdatei ungültig" -#: f.tools.cc:1130 +#: f.tools.cc:1105 msgid "Select startup directory" msgstr "Anfangsverzeichnis wählen" -#: f.tools.cc:1138 +#: f.tools.cc:1113 msgid "Select startup image file" msgstr "Anfangsbilddatei wählen" -#: f.tools.cc:1176 +#: f.tools.cc:1151 msgid "Click list position. Click thumbnail to add." msgstr "Listenposition anklicken. Thumbnail anklicken um zu addieren." -#: f.tools.cc:1201 f.tools.cc:1418 +#: f.tools.cc:1176 f.tools.cc:1393 msgid "Edit Bookmarks" msgstr "Lesezeichen bearbeiten" -#: f.tools.cc:1349 +#: f.tools.cc:1324 msgid "unable to save bookmarks file" msgstr "Kann Lesezeichen-Datei nicht speichern" -#: f.tools.cc:1418 +#: f.tools.cc:1393 msgid "Go To Bookmark" msgstr "Zum Lesezeichen springen" -#: f.tools.cc:1563 +#: f.tools.cc:1538 msgid "Edit KB Shortcuts" msgstr "Schnelltasten bearbeiten" -#: f.tools.cc:1568 +#: f.tools.cc:1543 msgid "shortcut key:" msgstr "Schnelltaste:" -#: f.tools.cc:1569 +#: f.tools.cc:1544 msgid "(enter key)" msgstr "(Enter-Taste)" -#: f.tools.cc:1695 +#: f.tools.cc:1670 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Reserviert, kann nicht verwendet werden" -#: f.tools.cc:1826 +#: f.tools.cc:1801 msgid "unable to save KB-shortcuts file" msgstr "Kann Schnelltasten-Datei nicht speichern" -#: f.tools.cc:1914 +#: f.tools.cc:1889 msgid "" "Right-click collection thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -3305,396 +3326,429 @@ "Sammlung-Thumbnail rechts klicken, um zu Cache \n" "ausschneiden/kopieren, von Cache einfügen, entfernen." -#: f.tools.cc:1955 +#: f.tools.cc:1930 msgid "Start a new collection, add images" msgstr "Eine neue Sammlung starten, Bilder zufügen" -#: f.tools.cc:1957 +#: f.tools.cc:1932 msgid "New collection from current gallery" msgstr "Neue Sammlung aus der aktuellen Galerie" -#: f.tools.cc:1959 +#: f.tools.cc:1934 msgid "Collection to view or edit" msgstr "Sammlung zum Ansehen oder Bearbeiten" -#: f.tools.cc:1961 +#: f.tools.cc:1936 msgid "Select images, add to cache" msgstr "Bilder wählen, zu Cache addieren" -#: f.tools.cc:1963 +#: f.tools.cc:1938 msgid "Clear image cache" msgstr "Bildercache löschen" -#: f.tools.cc:1964 +#: f.tools.cc:1939 msgid "(0 images)" msgstr "(0 Bilder)" -#: f.tools.cc:1966 +#: f.tools.cc:1941 msgid "Delete a collection" msgstr "Sammlung löschen" -#: f.tools.cc:1987 +#: f.tools.cc:1962 msgid "New Collection" msgstr "Neue Sammlung" -#: f.tools.cc:1988 +#: f.tools.cc:1963 msgid "Choose Collection" msgstr "Bildsammlung wählen" -#: f.tools.cc:1989 +#: f.tools.cc:1964 msgid "Delete Collection" msgstr "Sammlung löschen" -#: f.tools.cc:1990 +#: f.tools.cc:1965 #, c-format msgid "(%d images)" msgstr "(%d Bilder)" -#: f.tools.cc:1991 +#: f.tools.cc:1966 #, c-format msgid "%d images remaining in cache" msgstr "%d Bilder noch im Cache" -#: f.tools.cc:2025 f.tools.cc:2064 +#: f.tools.cc:2000 f.tools.cc:2039 msgid "New collection created" msgstr "Neue Sammlung erstellt" -#: f.tools.cc:2031 +#: f.tools.cc:2006 msgid "gallery is empty" msgstr "Galerie ist leer" -#: f.tools.cc:2105 +#: f.tools.cc:2080 #, c-format msgid "delete %s ?" msgstr "%s löschen?" -#: f.tools.cc:2461 +#: f.tools.cc:2436 msgid "all collections" msgstr "Alle Sammlungen" -#: f.tools.cc:2495 +#: f.tools.cc:2470 msgid "Move Collection" msgstr "Sammlung versetzen" -#: f.tools.cc:2497 +#: f.tools.cc:2472 msgid "collection name" msgstr "Sammlungs-Name" -#: f.tools.cc:2500 +#: f.tools.cc:2475 msgid "old path segment" msgstr "Altes Pfadsegment" -#: f.tools.cc:2503 +#: f.tools.cc:2478 msgid "new path segment" msgstr "Neues Pfadsegment" -#: f.tools.cc:2592 +#: f.tools.cc:2567 msgid "Replace Collection?" msgstr "Sammlung ersetzen?" -#: f.tools.cc:2708 +#: f.tools.cc:2694 msgid "Press ESC to exit slide show" msgstr "ESC drücken um zu beenden" -#: f.tools.cc:2709 -msgid "last versions" -msgstr "Lezte Versionen" - -#: f.tools.cc:2713 +#: f.tools.cc:2696 msgid "instant" msgstr "Sofortig" -#: f.tools.cc:2714 +#: f.tools.cc:2697 msgid "fade-in" msgstr "Einblenden" -#: f.tools.cc:2715 +#: f.tools.cc:2698 msgid "roll-right" msgstr "Nach rechts rollend" -#: f.tools.cc:2716 +#: f.tools.cc:2699 msgid "roll-down" msgstr "Nach unten rollend" -#: f.tools.cc:2717 +#: f.tools.cc:2700 msgid "venetian" msgstr "Jalousie" -#: f.tools.cc:2718 +#: f.tools.cc:2701 msgid "grate" msgstr "Gitter" -#: f.tools.cc:2719 +#: f.tools.cc:2702 msgid "rectangle" msgstr "Rechteck" -#: f.tools.cc:2720 +#: f.tools.cc:2703 msgid "radar" msgstr "Radar" -#: f.tools.cc:2721 +#: f.tools.cc:2704 msgid "jaws" msgstr "Haifisch" -#: f.tools.cc:2722 +#: f.tools.cc:2705 msgid "ellipse" msgstr "Ellipse" -#: f.tools.cc:2723 +#: f.tools.cc:2706 msgid "raindrops" msgstr "Regentropfen" -#: f.tools.cc:2724 +#: f.tools.cc:2707 msgid "doubledoor" msgstr "Doppeltür" -#: f.tools.cc:2725 +#: f.tools.cc:2708 msgid "rotate" -msgstr "" +msgstr "drehen" -#: f.tools.cc:2787 -msgid "Pause List" -msgstr "Pauseliste" +#: f.tools.cc:2739 +msgid "Clip Limit" +msgstr "Kappenlimit" + +#: f.tools.cc:2741 +msgid "Show Captions" +msgstr "Titel zeigen" -#: f.tools.cc:2794 -msgid "transitions" -msgstr "Übergänge" +#: f.tools.cc:2744 +msgid "Music File" +msgstr "Musikdatei" -#: f.tools.cc:2796 -msgid "seconds" -msgstr "Sekunden" +#: f.tools.cc:2749 +msgid "Customize:" +msgstr "Anpassen:" -#: f.tools.cc:2800 -msgid "Clip Limit (%)" -msgstr "Kappenlimit (%)" - -#: f.tools.cc:2802 -msgid "show captions" -msgstr "Bildtitel zeigen" +#: f.tools.cc:2750 +msgid "transitions" +msgstr "Übergänge" -#: f.tools.cc:2805 -msgid "music file" -msgstr "Musikdatei" +#: f.tools.cc:2751 +msgid "image files" +msgstr "Bilddateien" -#: f.tools.cc:2820 f.tools.cc:2828 f.tools.cc:2956 f.tools.cc:2979 -#: f.tools.cc:2992 +#: f.tools.cc:2759 f.tools.cc:2880 #, c-format msgid "%d images" msgstr "%d Bilder" -#: f.tools.cc:2854 -msgid "no image files selected" -msgstr "Keine Bilddateien ausgewählt" +#: f.tools.cc:2781 f.tools.cc:2847 f.tools.cc:2875 f.tools.cc:2937 +#: f.tools.cc:3033 f.tools.cc:3189 f.tools.cc:3236 f.tools.cc:3253 +#: f.tools.cc:3396 +msgid "invalid collection" +msgstr "Ungültige Sammlung" -#: f.tools.cc:2945 f.tools.cc:2968 +#: f.tools.cc:2860 msgid "open collection" msgstr "Sammlung öffnen" -#: f.tools.cc:3013 +#: f.tools.cc:2900 msgid "Select music file or playlist" msgstr "Musikdatei oder Playlist wählen" -#: f.tools.cc:3046 -msgid "invalid collection" -msgstr "Ungültige Sammlung" - -#: f.tools.cc:3061 f.tools.cc:3131 -msgid "empty collection" -msgstr "Leere Sammlung" - -#: f.tools.cc:3167 +#: f.tools.cc:2917 msgid "select random (if 5+ enabled)" msgstr "Zufallsordnung (wenn 5+ freigegeben" -#: f.tools.cc:3186 +#: f.tools.cc:2941 msgid "Transition Preferences" msgstr "Übergangs Präferenzen" -#: f.tools.cc:3196 +#: f.tools.cc:2950 msgid "transition" msgstr "Übergang" -#: f.tools.cc:3197 +#: f.tools.cc:2951 msgid "enabled" msgstr "Freigegeben" -#: f.tools.cc:3198 +#: f.tools.cc:2952 msgid "slowdown" msgstr "Bremsung" -#: f.tools.cc:3199 +#: f.tools.cc:2953 msgid "preference" msgstr "Präferenz" -#: f.tools.cc:4506 +#: f.tools.cc:3037 +msgid "Image Preferences" +msgstr "Bild Präferenzen" + +#: f.tools.cc:3041 f.tools.cc:3090 f.tools.cc:3202 +msgid "Image File:" +msgstr "Bilddatei:" + +#: f.tools.cc:3044 +msgid "Play tone" +msgstr "Klang spielen" + +#: f.tools.cc:3046 +msgid "Transition" +msgstr "Übergang" + +#: f.tools.cc:3051 f.tools.cc:3071 +msgid "+Seconds" +msgstr "+Sekunden" + +#: f.tools.cc:3053 +msgid "before zoom" +msgstr "Vor Zoom" + +#: f.tools.cc:3056 +msgid "Zoom size %" +msgstr "Zoom-Große %" + +#: f.tools.cc:3059 +msgid "Steps" +msgstr "Schritte" + +#: f.tools.cc:3063 +msgid "Zoom center" +msgstr "Zoom-Mitte" + +#: f.tools.cc:3073 +msgid "after zoom" +msgstr "Nach Zoom" + +#: f.tools.cc:3075 +msgid "next" +msgstr "nächstes" + +#: f.tools.cc:4805 msgid "base" msgstr "Basis" -#: f.tools.cc:4508 +#: f.tools.cc:4807 msgid "adder" msgstr "Zuwachs" -#: f.tools.cc:4512 +#: f.tools.cc:4811 msgid "New Location" msgstr "Neue Speicherstelle" -#: f.tools.cc:4517 +#: f.tools.cc:4816 msgid "New File Type" msgstr "Neue Dateityp" -#: f.tools.cc:4521 f.tools.cc:4529 +#: f.tools.cc:4820 f.tools.cc:4828 msgid "no change" msgstr "Keine Änderung" -#: f.tools.cc:4524 +#: f.tools.cc:4823 msgid "max. Width" msgstr "Max. Breite" -#: f.tools.cc:4527 fotoxx.h:1020 +#: f.tools.cc:4826 fotoxx.h:1025 msgid "Height" msgstr "Höhe" -#: f.tools.cc:4532 f.tools.cc:4905 +#: f.tools.cc:4831 f.tools.cc:5204 msgid "Delete Originals" msgstr "Originale löschen" -#: f.tools.cc:4533 f.tools.cc:4902 +#: f.tools.cc:4832 f.tools.cc:5201 msgid "Copy Metadata" msgstr "Metadaten kopieren" -#: f.tools.cc:4534 f.tools.cc:4903 +#: f.tools.cc:4833 f.tools.cc:5202 msgid "Upright" msgstr "Aufrichten" -#: f.tools.cc:4626 +#: f.tools.cc:4925 msgid "file already exists" msgstr "Datei existiert schon" -#: f.tools.cc:4634 +#: f.tools.cc:4933 msgid "file type not supported" msgstr "Dateityp nicht unterstützt" -#: f.tools.cc:4703 +#: f.tools.cc:5002 msgid "cannot create new file" msgstr "Kann neue Datei nicht erstellen" -#: f.tools.cc:4854 +#: f.tools.cc:5153 msgid "" "new name/base/adder unreasonable\n" " e.g. newname ### 100 10" msgstr "Neu Name/Basis/Zuwachs nicht sinnvoll e.g. NeuName ### 100 10" -#: f.tools.cc:4877 +#: f.tools.cc:5176 #, c-format msgid "max. size %d x %d is not reasonable" msgstr "Max. größe %d x %d nicht sinnvoll" -#: f.tools.cc:4896 +#: f.tools.cc:5195 #, c-format msgid "Convert %d image files" msgstr "%d Bilddatei konvertieren" -#: f.tools.cc:4897 +#: f.tools.cc:5196 msgid "Rename to" msgstr "Umbenennen zu" -#: f.tools.cc:4898 +#: f.tools.cc:5197 msgid "Convert to" msgstr "Konvertieren zu" -#: f.tools.cc:4899 +#: f.tools.cc:5198 msgid "Resize within" msgstr "Skalieren innerhalb" -#: f.tools.cc:4900 +#: f.tools.cc:5199 msgid "Output to" msgstr "Schreiben zu" -#: f.tools.cc:4906 +#: f.tools.cc:5205 msgid "PROCEED?" msgstr "FORTSETZEN?" -#: f.tools.cc:4938 +#: f.tools.cc:5237 msgid "Batch Convert RAW Files" msgstr "Stapel RAW konvertieren" -#: f.tools.cc:4969 +#: f.tools.cc:5268 msgid "output file type" msgstr "Ausgabedateityp" -#: f.tools.cc:4981 +#: f.tools.cc:5280 msgid "white balance" msgstr "Weiabgleich" -#: f.tools.cc:4982 +#: f.tools.cc:5281 msgid "interpolation" msgstr "Interpolation" -#: f.tools.cc:4983 +#: f.tools.cc:5282 msgid "color space" msgstr "Farbraum" -#: f.tools.cc:4984 +#: f.tools.cc:5283 msgid "gamma curve" msgstr "Gamma-Kurve" -#: f.tools.cc:4987 +#: f.tools.cc:5286 msgid "camera" msgstr "Kamera" -#: f.tools.cc:4988 +#: f.tools.cc:5287 msgid "fixed" msgstr "Festgelegt" -#: f.tools.cc:4989 +#: f.tools.cc:5288 msgid "calculated" msgstr "Berechnet" -#: f.tools.cc:5006 +#: f.tools.cc:5305 msgid "default" msgstr "Vorgabe" -#: f.tools.cc:5012 +#: f.tools.cc:5311 msgid "defaults" msgstr "Vorgaben" -#: f.tools.cc:5526 +#: f.tools.cc:5834 msgid "x-spacing" msgstr "x-Abstand" -#: f.tools.cc:5527 +#: f.tools.cc:5835 msgid "x-count" msgstr "x-Anzahl" -#: f.tools.cc:5528 +#: f.tools.cc:5836 msgid "x-enable" msgstr "x-aktivieren" -#: f.tools.cc:5534 +#: f.tools.cc:5842 msgid "y-spacing" msgstr "y-Abstand" -#: f.tools.cc:5535 +#: f.tools.cc:5843 msgid "y-count" msgstr "y-Anzahl" -#: f.tools.cc:5536 +#: f.tools.cc:5844 msgid "y-enable" msgstr "y-aktivieren" -#: f.tools.cc:5984 +#: f.tools.cc:6292 msgid "Darkest and Brightest Pixels" msgstr "Dunkelste und hellste Pixeln" -#: f.tools.cc:6007 +#: f.tools.cc:6315 msgid "Dark Limit" msgstr "Dunkel Grenzwert" -#: f.tools.cc:6008 +#: f.tools.cc:6316 msgid "Bright Limit" msgstr "Hell Grenzwert" -#: f.tools.cc:6115 +#: f.tools.cc:6423 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3702,31 +3756,31 @@ "Helligkeit soll einen allmählichen Ansteig \n" "zeigen, auch ganz bis zu den Rändern." -#: f.tools.cc:6272 +#: f.tools.cc:6580 msgid "Available Translations" msgstr "Vorhandene Übersetzungen" -#: f.tools.cc:6276 +#: f.tools.cc:6584 msgid "Set Language" msgstr "Sprache wechseln" -#: f.tools.cc:6364 +#: f.tools.cc:6672 msgid "Make Launcher" msgstr "Start-Icon erzeugen" -#: fotoxx-14.03.cc:312 +#: fotoxx-14.04.cc:309 msgid "Tab F: image file view/edit" msgstr "Tab F: Bilddatei anschauen/bearbeiten" -#: fotoxx-14.03.cc:321 +#: fotoxx-14.04.cc:318 msgid "Tab G: image gallery" msgstr "Tab G: Bildergallerie" -#: fotoxx-14.03.cc:330 +#: fotoxx-14.04.cc:327 msgid "Tab W: world map" msgstr "Tab W: Weltkarte" -#: fotoxx-14.03.cc:447 +#: fotoxx-14.04.cc:441 msgid "" "First time Fotoxx startup. \n" "Latest version: http://www.kornelix.com/fotoxx \n" @@ -3736,59 +3790,63 @@ "Neueste Version: http://www.kornelix.com/fotoxx \n" "Synchronisierungs-Prozess beginnt, kann etwas dauern. \n" -#: fotoxx-14.03.cc:492 +#: fotoxx-14.04.cc:488 msgid "Please install missing programs:" msgstr "Bitte fehlende Programme installieren:" -#: fotoxx-14.03.cc:901 +#: fotoxx-14.04.cc:904 msgid "(reduced)" msgstr "(verkleinert) " -#: fotoxx-14.03.cc:902 +#: fotoxx-14.04.cc:905 msgid "area active" msgstr "Ausschnitt aktiv" -#: fotoxx-14.03.cc:903 +#: fotoxx-14.04.cc:906 msgid "dialog open" msgstr "Dialog aktiv" -#: fotoxx-14.03.cc:904 +#: fotoxx-14.04.cc:907 msgid "function busy" msgstr "Funktion läuft" -#: fotoxx-14.03.cc:905 +#: fotoxx-14.04.cc:908 msgid "file index busy" msgstr "Datei-Indizieren läuft" -#: fotoxx-14.03.cc:906 +#: fotoxx-14.04.cc:909 msgid "menu locked" msgstr "Menu gesperrt" -#: fotoxx-14.03.cc:953 +#: fotoxx-14.04.cc:956 msgid "edits" msgstr "edits" -#: fotoxx-14.03.cc:999 +#: fotoxx-14.04.cc:1002 msgid "Kill active dialog?" msgstr "Aktiv Dialog abbrechen?" -#: fotoxx-14.03.cc:2768 +#: fotoxx-14.04.cc:1082 +msgid "Location from World Map" +msgstr "Ort von der Weltkarte" + +#: fotoxx-14.04.cc:2792 msgid "Exceed 50 anchor points" msgstr "50 Ankerpunkte überschritten" -#: fotoxx-14.03.cc:2951 +#: fotoxx-14.04.cc:2975 msgid "load curve from a file" msgstr "Kurven-Datei öffnen" -#: fotoxx-14.03.cc:3026 +#: fotoxx-14.04.cc:3050 msgid "save curve to a file" msgstr "Kurven-Datei speichern" -#: fotoxx-14.03.cc:3101 +#: fotoxx-14.04.cc:3125 msgid "Too many edits, please save image" msgstr "Zuviele Änderungen, bitte Bild speichern" -#: fotoxx-14.03.cc:3116 +#: fotoxx-14.04.cc:3140 msgid "" "Select area not active.\n" "Continue?" @@ -3796,288 +3854,292 @@ "Ausschnit nicht aktiviert.\n" "Fortfahren?" -#: fotoxx-14.03.cc:3503 +#: fotoxx-14.04.cc:3527 msgid "This action will discard changes\n" msgstr "Weiteres Vorgehen wird Änderungen verwerfen\n" -#: fotoxx-14.03.cc:3504 fotoxx.h:1026 +#: fotoxx-14.04.cc:3528 fotoxx.h:1031 msgid "Keep" msgstr "Behalten" -#: fotoxx-14.03.cc:3505 +#: fotoxx-14.04.cc:3529 msgid "Discard" msgstr "Verwerfen" -#: fotoxx-14.03.cc:3519 fotoxx-14.03.cc:3539 +#: fotoxx-14.04.cc:3543 fotoxx-14.04.cc:3563 msgid "prior function active" msgstr "Vorherige Funktion aktiv" -#: fotoxx.h:983 +#: fotoxx.h:988 msgid "Add" msgstr "Hinzufügen" -#: fotoxx.h:984 +#: fotoxx.h:989 msgid "Add All" msgstr "Alle einfügen" -#: fotoxx.h:986 +#: fotoxx.h:991 msgid "Amount" msgstr "Wert" -#: fotoxx.h:987 +#: fotoxx.h:992 msgid "Angle" msgstr "Winkel" -#: fotoxx.h:988 +#: fotoxx.h:993 msgid "Apply" msgstr "Anwenden" -#: fotoxx.h:989 +#: fotoxx.h:994 msgid "Autocomplete" msgstr "Autovervöllständigen" -#: fotoxx.h:990 +#: fotoxx.h:995 msgid "Black" msgstr "Schwarz" -#: fotoxx.h:991 +#: fotoxx.h:996 msgid "Blend Width" msgstr "Mischbreite" -#: fotoxx.h:994 +#: fotoxx.h:999 msgid "Browse" msgstr "Durchsuchen" -#: fotoxx.h:995 +#: fotoxx.h:1000 msgid "Cancel" msgstr "Abbrechen" -#: fotoxx.h:996 +#: fotoxx.h:1001 msgid "center" msgstr "Mittig" -#: fotoxx.h:997 +#: fotoxx.h:1002 msgid "Choose" msgstr "Wählen" -#: fotoxx.h:998 +#: fotoxx.h:1003 msgid "Clear" msgstr "Aufräumen" -#: fotoxx.h:1002 +#: fotoxx.h:1007 msgid "Create" msgstr "Erstellen" -#: fotoxx.h:1003 +#: fotoxx.h:1008 msgid "Curve File:" msgstr "Kurven-Datei" -#: fotoxx.h:1004 +#: fotoxx.h:1009 msgid "Cut" msgstr "Ausschneiden" -#: fotoxx.h:1005 +#: fotoxx.h:1010 msgid "Delete" msgstr "Löschen" -#: fotoxx.h:1007 -msgid "Bdist" -msgstr "Hdist" +#: fotoxx.h:1012 +msgid "Dist" +msgstr "Dist" -#: fotoxx.h:1008 +#: fotoxx.h:1013 msgid "Done" msgstr "Fertig" -#: fotoxx.h:1009 +#: fotoxx.h:1014 msgid "edge" msgstr "Rand" -#: fotoxx.h:1010 +#: fotoxx.h:1015 msgid "Edit" msgstr "Bearbeiten" -#: fotoxx.h:1012 +#: fotoxx.h:1017 msgid "Erase" msgstr "Löschen" -#: fotoxx.h:1013 +#: fotoxx.h:1018 msgid "Fetch" msgstr "Holen" -#: fotoxx.h:1014 +#: fotoxx.h:1019 msgid "Find" msgstr "Suchen" -#: fotoxx.h:1015 +#: fotoxx.h:1020 msgid "Finish" msgstr "Fertigstellen" -#: fotoxx.h:1016 +#: fotoxx.h:1021 msgid "Font" msgstr "Font" -#: fotoxx.h:1017 +#: fotoxx.h:1022 msgid "Geotags" msgstr "Geotags" -#: fotoxx.h:1019 +#: fotoxx.h:1024 msgid "Grid" msgstr "Gitter" -#: fotoxx.h:1023 +#: fotoxx.h:1028 msgid "Images" msgstr "Bilder" -#: fotoxx.h:1024 +#: fotoxx.h:1029 msgid "Insert" msgstr "Einfügen" -#: fotoxx.h:1027 +#: fotoxx.h:1032 msgid "limit" msgstr "Limit" -#: fotoxx.h:1028 +#: fotoxx.h:1033 msgid "Make" msgstr "Erstellen" -#: fotoxx.h:1030 +#: fotoxx.h:1035 msgid "Map" msgstr "Karte" -#: fotoxx.h:1031 +#: fotoxx.h:1036 msgid "Max" msgstr "Max" -#: fotoxx.h:1032 +#: fotoxx.h:1037 msgid "Negative" msgstr "Negativ" -#: fotoxx.h:1033 +#: fotoxx.h:1038 msgid "New" msgstr "Neu" -#: fotoxx.h:1035 zfuncs.cc:8589 +#: fotoxx.h:1040 zfuncs.cc:8589 msgid "No" msgstr "Nein" -#: fotoxx.h:1036 +#: fotoxx.h:1041 msgid "no images" msgstr "Keine Bilder" -#: fotoxx.h:1037 +#: fotoxx.h:1042 msgid "no selection" msgstr "Keine Auswahl" -#: fotoxx.h:1038 +#: fotoxx.h:1043 msgid "OK" msgstr "OK" -#: fotoxx.h:1040 +#: fotoxx.h:1045 msgid "Open RAW File" msgstr "RAW-Datei öffnen" -#: fotoxx.h:1042 +#: fotoxx.h:1047 msgid "Pause" msgstr "Unterbrechen" -#: fotoxx.h:1043 +#: fotoxx.h:1048 msgid "Percent" msgstr "Prozent" -#: fotoxx.h:1045 +#: fotoxx.h:1050 msgid "Presets" msgstr "Voreinstellungen" -#: fotoxx.h:1047 +#: fotoxx.h:1052 msgid "Proceed" msgstr "Weiter" -#: fotoxx.h:1049 +#: fotoxx.h:1054 msgid "range" msgstr "Wertbereich" -#: fotoxx.h:1052 +#: fotoxx.h:1057 msgid "Reduce" msgstr "Vermindern" -#: fotoxx.h:1053 +#: fotoxx.h:1058 msgid "Remove" msgstr "Entfernen" -#: fotoxx.h:1055 +#: fotoxx.h:1060 msgid "Reset" msgstr "Zurücksetzen" -#: fotoxx.h:1056 +#: fotoxx.h:1061 msgid "Rotate" msgstr "Drehen" -#: fotoxx.h:1058 +#: fotoxx.h:1063 msgid "Unknown file type, save as tiff/jpeg/png to edit" msgstr "Dateityp unbekannt, zum Bearbeiten als tiff/jpeg/png speichern" -#: fotoxx.h:1059 +#: fotoxx.h:1064 msgid "Search" msgstr "Durchsuchen" -#: fotoxx.h:1063 +#: fotoxx.h:1065 +msgid "Seconds" +msgstr "Sekunden" + +#: fotoxx.h:1069 msgid "Size" msgstr "Große" -#: fotoxx.h:1064 +#: fotoxx.h:1070 msgid "Start" msgstr "Starten" -#: fotoxx.h:1065 +#: fotoxx.h:1071 msgid "Strength" msgstr "Stärke" -#: fotoxx.h:1066 +#: fotoxx.h:1072 msgid "Threshold" msgstr "Schwelle" -#: fotoxx.h:1067 +#: fotoxx.h:1073 #, c-format msgid "exceed %d files" msgstr "%d Dateien überschritten" -#: fotoxx.h:1069 +#: fotoxx.h:1075 msgid "Trim" msgstr "Schneiden" -#: fotoxx.h:1070 +#: fotoxx.h:1076 msgid "Undo All" msgstr "Alles rückgängig" -#: fotoxx.h:1071 +#: fotoxx.h:1077 msgid "Undo Last" msgstr "Letztes rückgängig" -#: fotoxx.h:1073 +#: fotoxx.h:1079 msgid "Unfinish" msgstr "Unfertigstellen" -#: fotoxx.h:1075 +#: fotoxx.h:1081 msgid "View" msgstr "Ansehen" -#: fotoxx.h:1076 +#: fotoxx.h:1082 msgid "Web" msgstr "Web" -#: fotoxx.h:1077 +#: fotoxx.h:1083 msgid "White" msgstr "Weiß" -#: fotoxx.h:1079 +#: fotoxx.h:1085 msgid "x-offset" msgstr "x-Verschiebung" -#: fotoxx.h:1080 +#: fotoxx.h:1086 msgid "y-offset" msgstr "y-Verschiebung" -#: fotoxx.h:1081 zfuncs.cc:8589 +#: fotoxx.h:1087 zfuncs.cc:8589 msgid "Yes" msgstr "Ja" @@ -4232,414 +4294,32 @@ msgid "add parameter" msgstr "Parameter hinzufügen" -#~ msgid "select random" -#~ msgstr "Zufallsordnung" - -#~ msgid "Edit Translations" -#~ msgstr "Übersetzungen bearbeiten" - -#~ msgid "Edit translations while using Fotoxx" -#~ msgstr "Übersetzungen mit Fotoxx online bearbeiten" - -#~ msgid "invalid thumbnails directory: %s" -#~ msgstr "Thumbnails-Verzeichnis ist ungültig: %s" - -#~ msgid "Previous Image Viewed" -#~ msgstr "Vorheriges Bild" - -#~ msgid "(enter keys)" -#~ msgstr "(Tasten eintippen)" - -#~ msgid "create directory" -#~ msgstr "Verzeichnis erstellen" - -#~ msgid "" -#~ "warning: real memory %d MB < required %d MB \n" -#~ "response time may become very long \n" -#~ msgstr "" -#~ "Warnung: Speicherplatz %d MB < benötigte %d MB \n" -#~ "Reaktionszeit kann sehr lang werden \n" - -#~ msgid "Favorites Menu" -#~ msgstr "Favoriten Menu" - -#~ msgid "create" -#~ msgstr "Erstellen" - -#~ msgid "delete" -#~ msgstr "Löschen" - -#~ msgid "no top image directory defined" -#~ msgstr "Oberstes Bild-Verzeichnis nicht definiert" - -#~ msgid "Synchronize Files" -#~ msgstr "Dateien synchronisieren" - -#~ msgid "" -#~ "Metadata index is missing.\n" -#~ "Use Tools > Synchronize Files." -#~ msgstr "" -#~ "Metadaten Index fehlt.\n" -#~ "Werkzeuge > Dateien synchronisieren benutzen." - -#~ msgid "" -#~ "Synchronize Files makes gallery windows fast \n" -#~ "and enables metadata functions to work correctly.\n" -#~ msgstr "" -#~ "Synchronisieren macht Galeriefenster schneller \n" -#~ "und Bild durchsuchen korrekt zu funktionieren.\n" - -#~ msgid "top image directory is invalid" -#~ msgstr "Oberstes Bild-Verzeichnis ist ungültig" - -#~ msgid "no search index file is present" -#~ msgstr "Such-Index Datei fehlt" - -#~ msgid "last file sync time is unknown" -#~ msgstr "Letzte Datei-Synchronisierungs-Zeit ist unbekannt" - -#~ msgid "new/modified files are present" -#~ msgstr "neue/geänderte Dateien gefunden" - -#~ msgid "file sync disabled" -#~ msgstr "Datei-Synch aussgeschaltet" - -#~ msgid "file sync not needed" -#~ msgstr "Datei-Synchronisierung nicht notwendig" - -#~ msgid "Use file sync function (recommended)" -#~ msgstr "Datei-Synchronisierung aktivieren (empfohlen)" - -#~ msgid "(if NO, metadata functions are disabled)" -#~ msgstr "(wenn NEIN, Metadaten-Funktionen werden gesperrt" - -#~ msgid "Thumbnail Options:" -#~ msgstr "Thumbnail Optionen:" - -#~ msgid "None (galleries are slow)" -#~ msgstr "Keine (Galerien werden langsam)" - -#~ msgid "Use hidden directories with images" -#~ msgstr "Versteckte Verzeichnisse mit Bildern anwenden" - -#~ msgid "Use Directory" -#~ msgstr "Verzeichnis benutzen" - -#~ msgid "Initialize Everything" -#~ msgstr "Alles initialisieren" - -#~ msgid "File sync is necessary. Cancel anyway?" -#~ msgstr "Synchronisieren ist notwendig. Trotzdem abbrechen?" - -#~ msgid "directory is invalid" -#~ msgstr "Verzeichnis ist ungültig" - -#~ msgid "select a thumbnail option" -#~ msgstr "Thumbnail-Option wählen" - -#~ msgid "thumbnail directory cannot be under top directory" -#~ msgstr "Thumbnail Verzeichnis darf nicht unter Oberstes Verzeichnis" - -#~ msgid "Synchronize Files (may need some time)" -#~ msgstr "Datei synchronisieren (kann etwas dauern)" - -#~ msgid "delete all thumbnails" -#~ msgstr "Alle Thumbnails entfernen" - -#~ msgid "delete orphan thumbnails" -#~ msgstr "Verwaiste Thumbnails entfernen" - -#~ msgid "%d orphan thumbnails deleted \n" -#~ msgstr "%d verwaiste Thumbnails entfernt \n" - -#~ msgid "create missing and update stale thumbnails" -#~ msgstr "Fehlende Thumbnails erstellen und veraltete aktualisieren" - -#~ msgid "%d thumbnails created, %d errors \n" -#~ msgstr "%d Thumbnails erstellt, %d Fehler \n" - -#~ msgid "no search index file is in use" -#~ msgstr "Keine Such-Index Datei wird benutzt" - -#~ msgid "rebuild search index" -#~ msgstr "Such-Index neuaufbauen" - -#~ msgid "%d current index records found \n" -#~ msgstr "%d aktuelle Index-Sätze gefunden \n" - -#~ msgid "find all image files and build index records" -#~ msgstr "Alle Bilddatei finden und Index-Sätze aufbauen" - -#~ msgid "too many image files" -#~ msgstr "Zu viele Bilddateien" - -#~ msgid "found %d image files \n" -#~ msgstr "%d Bilddateien gefunden \n" - -#~ msgid "merging old and new index records" -#~ msgstr "Alte und Neue Index-Sätze werden eingefädelt" - -#~ msgid "files found in current index recs: %d \n" -#~ msgstr "Bilddateien in aktuellen Index-Sätze gefunden: %d \n" - -#~ msgid "KILLED" -#~ msgstr "ABBRUCH" - -#~ msgid "" -#~ "First time Fotoxx startup. \n" -#~ "Latest version: http://www.kornelix.com/fotoxx \n" -#~ "File sync process will begin (may need some time) \n" -#~ msgstr "" -#~ "Erstmals Fotoxx Anlauf. \n" -#~ "Neueste Version: http://www.kornelix.com/fotoxx \n" -#~ "Synchronisierungs-Prozess beginnt, kann etwas dauern. \n" - -#~ msgid " file sync busy" -#~ msgstr " Synchronisierung läuft" - -#~ msgid "file sync active" -#~ msgstr "Synchronisierung aktiv" - -#~ msgid "search index missing" -#~ msgstr "Such-Index fehlt" - -#~ msgid "Plugins menu is empty" -#~ msgstr "Plugins-Menu ist leer" - -#~ msgid "menu name" -#~ msgstr "Menuname" - -#~ msgid "histogram" -#~ msgstr "Histogramm" - -#~ msgid "curve file has different no. of curves" -#~ msgstr "Datei Kurvenanzahl stimmt nicht" - -#~ msgid "curve file is invalid" -#~ msgstr "Kurven-Datei ist ungültig" - -#~ msgid "arrow keys" -#~ msgstr "Pfeiltasten" - -#~ msgid "adjust image gamma" -#~ msgstr "Bildgamma justieren" - -#~ msgid "previous" -#~ msgstr "Vorheriges" - -#~ msgid "reset all" -#~ msgstr "Alle zurücksetzen" - -#~ msgid " reset 1 " -#~ msgstr "1 zurücksetzen" - -#~ msgid "Saturation" -#~ msgstr "Farbsättigung" - -#~ msgid "small-steps" -#~ msgstr "Kleinschritte" - -#~ msgid "cycles" -#~ msgstr "Zyklen" - -#~ msgid "edge detection" -#~ msgstr "Kantenerkennung" - -#~ msgid "Brightness/Color" -#~ msgstr "Helligkeit/Farbe" - -#~ msgid "White Balance" -#~ msgstr "Weißabgleich" - -#~ msgid "Click on a white/gray area to fix color tint" -#~ msgstr "Weiß/grau Stelle anklicken, um Farbton zu korrigieren" - -#~ msgid "Gamma Curves" -#~ msgstr "Gamma Kurven" - -#~ msgid "Adjust contrast using a gamma curve" -#~ msgstr "Kontrast mittels Gamma-Kurve einstellen" - -#~ msgid "Brightness/Contrast/Color" -#~ msgstr "Helligkeit/Kontrast/Farbe" - -#~ msgid "landscape" -#~ msgstr "Querformat" - -#~ msgid "portrait" -#~ msgstr "Hochformat" - -#~ msgid "image brightness" -#~ msgstr "Bildhelligkeit" - -#~ msgid "outline width" -#~ msgstr "Umrissbreite" - -#~ msgid "outline threshold" -#~ msgstr "Umriss-Grenzwert" - -#~ msgid "reduce" -#~ msgstr "Vermindern" - -#~ msgid "Click white or gray image location" -#~ msgstr "Weißen oder grauen Bildbereich anklicken" - -#~ msgid "Adjust White Balance" -#~ msgstr "Weißabgleich abstimmen" - -#~ msgid "customize" -#~ msgstr "Anpassen" - -#~ msgid "open folder" -#~ msgstr "Verzeichnis öffnen" - -#~ msgid "choose" -#~ msgstr "Wählen" - -#~ msgid "open" -#~ msgstr "Öffnen" - -#~ msgid "edits: %d" -#~ msgstr "edits: %d" - -#~ msgid "File Index process will begin (may need some time) \n" -#~ msgstr "Synchronisierungs-Prozess beginnt, kann etwas dauern. \n" - -#~ msgid "Latest version: http://www.kornelix.com/fotoxx \n" -#~ msgstr "Neueste Version: http://www.kornelix.com/fotoxx \n" - -#~ msgid "First time Fotoxx startup. \n" -#~ msgstr "Erstmals Fotoxx Anlauf. \n" - -#~ msgid "" -#~ "\n" -#~ " and delete originals" -#~ msgstr "" -#~ "\n" -#~ " und Originaldateien löschen" - -#~ msgid "" -#~ "copy files? (max. %d x %d) \n" -#~ " to location %s" -#~ msgstr "" -#~ "Dateien kopieren? (max. %d x %d) \n" -#~ " in Ordner %s" - -#~ msgid "" -#~ "copy files? \n" -#~ " to location %s" -#~ msgstr "" -#~ "Bilddateien kopieren? \n" -#~ " zu Speicherstelle %s" - -#~ msgid "overwrite files? (max. %d x %d)" -#~ msgstr "Dateien überschreiben? (max. %d x %d)" - -#~ msgid "overwrite files?" -#~ msgstr "Dateien überschreiben?" - -#~ msgid "upright rotation" -#~ msgstr "Drehung aufrichten" - -#~ msgid "delete metadata" -#~ msgstr "Metadaten löschen" - -#~ msgid "move to location" -#~ msgstr "Speicherstelle versetzen" - -#~ msgid "copy to location" -#~ msgstr "Zu Speicherstelle kopieren" - -#~ msgid "overwrite" -#~ msgstr "Überschreiben" - -#~ msgid "max. width" -#~ msgstr "Max. Breite" - -#~ msgid "new file type" -#~ msgstr "Neue Dateityp" - -#~ msgid "base name / sequence / increment not reasonable" -#~ msgstr "Basisname / Sequenz / Zuwachs nicht sinnvoll" - -#~ msgid "Rename failed:" -#~ msgstr "Umbenennen gescheitert:" - -#~ msgid "new file already exists:" -#~ msgstr "Zieldatei existiert schon:" - -#~ msgid "increment" -#~ msgstr "Zuwachs" - -#~ msgid "starting sequence" -#~ msgstr "Anfangs-Sequenznummer" - -#~ msgid "new base name" -#~ msgstr "neue Basisname" - -#~ msgid "Show hidden files" -#~ msgstr "Versteckte Dateien zeigen" - -#~ msgid "thumbnail directory is invalid" -#~ msgstr "Thumbnail Verzeichnis ungultig" - -#~ msgid "click for white balance or black level" -#~ msgstr "Anklicken für Weißabgleich oder Schwarzwert" - -#~ msgid "bright" -#~ msgstr "Hell" - -#~ msgid "cooler" -#~ msgstr "kühler" - -#~ msgid "dark areas" -#~ msgstr "Dunkle Bereiche" - -#~ msgid "warmer" -#~ msgstr "wärmer" - -#~ msgid "low color" -#~ msgstr "Wenig Farbe" - -#~ msgid "Convert resize, move multiple files" -#~ msgstr "Bilddateien konvertieren/skalieren/versetzen" - -#~ msgid "Rename multiple image files" -#~ msgstr "Mehrere Bildateien umbenennen" - -#~ msgid "Batch Rename" -#~ msgstr "Bilddateien umbenennen" - -#~ msgid "Synch Files, Settings, Collections, Batch Funcs ..." -#~ msgstr "" -#~ "Dateien synchronisieren, Einstellungen, Sammlungen, Stapelfunktionen ..." - -#~ msgid "old name" -#~ msgstr "Vorheriger Name" +#~ msgid "Pattern size" +#~ msgstr "Mustergröße" -#~ msgid "location is not a valid directory" -#~ msgstr "Kein gültiger Dateiordner" +#~ msgid "Add pattern" +#~ msgstr "Muster zufügen" -#~ msgid "Thumbnail Directory" -#~ msgstr "Thumbnail Verzeichnis" +#~ msgid "Magnify" +#~ msgstr "Vergrößern" -#~ msgid "maximum" -#~ msgstr "Maximum" +#~ msgid "Zoom:" +#~ msgstr "Zoom:" -#~ msgid "minimum" -#~ msgstr "Minimum" +#~ msgid "Center X:" +#~ msgstr "Mitte X:" -#~ msgid "Edit Function Amplifier" -#~ msgstr "Bearbeitungs-Verstärker" +#~ msgid "Steps:" +#~ msgstr "Schritte" -#~ msgid "Leverage edits by brightness or color" -#~ msgstr "Änderungen verstärken nach Helligkeit oder Farbwert" +#~ msgid "Zoom %:" +#~ msgstr "Zoom %:" -#~ msgid "Leverage Edits" -#~ msgstr "Änderungs-Hebelkraft" +#~ msgid "Transition:" +#~ msgstr "Übergang:" -#~ msgid "page-flip" -#~ msgstr "Seitenwechsel" +#~ msgid "Tone" +#~ msgstr "Klang" -#~ msgid "shift-left" -#~ msgstr "Nach Links schieben" +#~ msgid "Add seconds" +#~ msgstr "Mehr Sekunden" diff -Nru fotoxx-14.03/locales/translate-en.po fotoxx-14.04/locales/translate-en.po --- fotoxx-14.03/locales/translate-en.po 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/locales/translate-en.po 2014-04-01 06:09:31.000000000 +0000 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: home 2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-01 08:51+0100\n" +"POT-Creation-Date: 2014-04-01 08:04+0200\n" "PO-Revision-Date: 2011-01-01 11:29+0100\n" "Last-Translator: mico \n" "Language-Team: English\n" @@ -23,7 +23,7 @@ msgid "Select Area for Edits" msgstr "Select Area for Edits" -#: f.area.cc:57 f.retouch.cc:2051 +#: f.area.cc:57 f.retouch.cc:2160 msgid "Press F1 for help" msgstr "Press F1 for help" @@ -67,7 +67,7 @@ msgid "select all matching colors within mouse" msgstr "select all matching colors within mouse" -#: f.area.cc:115 f.retouch.cc:2086 +#: f.area.cc:115 f.retouch.cc:2195 msgid "mouse radius" msgstr "mouse radius" @@ -159,7 +159,7 @@ msgid "save select area to a file" msgstr "save select area to a file" -#: f.bend.cc:72 f.menus.cc:246 +#: f.bend.cc:72 f.menus.cc:208 msgid "Unbend" msgstr "Unbend" @@ -187,7 +187,7 @@ " Click the four corners of a tetragon area. Press [apply]. \n" " The image is warped to make the tetragon into a rectangle." -#: f.bend.cc:353 f.menus.cc:247 +#: f.bend.cc:353 f.menus.cc:209 msgid "Keystone Correction" msgstr "Keystone Correction" @@ -237,7 +237,7 @@ " Make multiple mouse pulls until satisfied. \n" " When finished, select another area or press [done]." -#: f.bend.cc:1105 f.menus.cc:249 +#: f.bend.cc:1105 f.menus.cc:211 msgid "Warp area" msgstr "Warp area" @@ -259,7 +259,7 @@ " Make multiple mouse pulls until satisfied. \n" " When finished, press [done]." -#: f.bend.cc:1520 f.menus.cc:250 +#: f.bend.cc:1520 f.menus.cc:212 msgid "Warp curved" msgstr "Warp curved" @@ -267,7 +267,7 @@ msgid "warp span" msgstr "warp span" -#: f.bend.cc:1830 f.menus.cc:251 +#: f.bend.cc:1830 f.menus.cc:213 msgid "Warp linear" msgstr "Warp linear" @@ -281,15 +281,15 @@ " Make multiple mouse pulls until satisfied. \n" " When finished, press [done]." -#: f.bend.cc:2161 f.menus.cc:252 +#: f.bend.cc:2161 f.menus.cc:214 msgid "Warp affine" msgstr "Warp affine" -#: f.color.cc:64 f.menus.cc:239 +#: f.color.cc:64 f.menus.cc:201 msgid "Shift Colors" msgstr "Shift Colors" -#: f.color.cc:285 f.menus.cc:240 +#: f.color.cc:285 f.menus.cc:202 msgid "Color Mode" msgstr "Color Mode" @@ -342,8 +342,8 @@ msgid "mouse radius for color sample" msgstr "mouse radius for color sample" -#: f.color.cc:609 f.color.cc:614 f.file.cc:4220 f.menus.cc:208 f.menus.cc:297 -#: f.menus.cc:433 fotoxx.h:1039 +#: f.color.cc:609 f.color.cc:614 f.file.cc:4222 f.menus.cc:172 f.menus.cc:255 +#: f.menus.cc:349 fotoxx.h:1044 msgid "Open" msgstr "Open" @@ -367,11 +367,11 @@ msgid "select source image color first" msgstr "select source image color first" -#: f.color.cc:872 f.tools.cc:5665 +#: f.color.cc:872 f.tools.cc:5973 msgid "Click image to select pixels." msgstr "Click image to select pixels." -#: f.color.cc:911 f.menus.cc:243 +#: f.color.cc:911 f.menus.cc:205 msgid "Revise RGB" msgstr "Revise RGB" @@ -399,15 +399,15 @@ msgid "+Blue -Yellow" msgstr "+Blue -Yellow" -#: f.color.cc:1382 fotoxx.h:1050 +#: f.color.cc:1382 fotoxx.h:1055 msgid "Red" msgstr "Red" -#: f.color.cc:1383 fotoxx.h:1018 +#: f.color.cc:1383 fotoxx.h:1023 msgid "Green" msgstr "Green" -#: f.color.cc:1384 fotoxx.h:992 +#: f.color.cc:1384 fotoxx.h:997 msgid "Blue" msgstr "Blue" @@ -440,7 +440,7 @@ msgstr "Paint and Warp Image" #: f.combine.cc:2831 f.combine.cc:3485 f.combine.cc:4902 f.combine.cc:5801 -#: f.effects.cc:3478 f.menus.cc:60 f.menus.cc:121 +#: f.effects.cc:3546 f.menus.cc:87 msgid "Image" msgstr "Image" @@ -508,7 +508,7 @@ msgid "no curve (scanned image)" msgstr "no curve (scanned image)" -#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:214 f.menus.cc:473 +#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:178 f.menus.cc:386 msgid "Resize" msgstr "Resize" @@ -672,7 +672,7 @@ msgid "Gradual" msgstr "Gradual" -#: f.combine.cc:6842 fotoxx.h:1044 +#: f.combine.cc:6842 fotoxx.h:1049 msgid "Power" msgstr "Power" @@ -685,7 +685,7 @@ msgid "Enter text, click/drag on image." msgstr "Enter text, click/drag on image." -#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:850 +#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:844 msgid "Text" msgstr "Text" @@ -705,8 +705,8 @@ msgid "shadow" msgstr "shadow" -#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:63 f.menus.cc:124 -#: f.menus.cc:292 fotoxx.h:999 +#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:90 f.menus.cc:251 +#: fotoxx.h:1004 msgid "Color" msgstr "Color" @@ -714,7 +714,7 @@ msgid "Transparency" msgstr "Transparency" -#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1078 +#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1084 msgid "Width" msgstr "Width" @@ -759,7 +759,7 @@ msgid "black/white" msgstr "black/white" -#: f.effects.cc:989 f.menus.cc:257 +#: f.effects.cc:989 f.menus.cc:219 msgid "Graduated Blur" msgstr "Graduated Blur" @@ -827,7 +827,7 @@ msgid "borders" msgstr "borders" -#: f.effects.cc:2474 f.menus.cc:262 +#: f.effects.cc:2474 f.menus.cc:224 msgid "Vignette" msgstr "Vignette" @@ -835,48 +835,64 @@ msgid "Add Texture" msgstr "Add Texture" -#: f.effects.cc:3040 -msgid "Add pattern" -msgstr "Add pattern" +#: f.effects.cc:3043 +msgid "Background Pattern" +msgstr "Background Pattern" + +#: f.effects.cc:3047 +msgid "Pattern File:" +msgstr "Pattern File:" + +#: f.effects.cc:3052 +msgid "Geometry" +msgstr "Geometry" + +#: f.effects.cc:3053 +msgid "Calculate" +msgstr "Calculate" + +#: f.effects.cc:3055 +msgid "Zoom" +msgstr "Zoom" -#: f.effects.cc:3044 f.menus.cc:264 +#: f.effects.cc:3066 f.menus.cc:226 msgid "Pattern" msgstr "Pattern" -#: f.effects.cc:3051 -msgid "Pattern size" -msgstr "Pattern size" - -#: f.effects.cc:3062 f.effects.cc:3066 +#: f.effects.cc:3073 msgid "Overlap" msgstr "Overlap" -#: f.effects.cc:3107 +#: f.effects.cc:3080 +msgid "Opacity" +msgstr "Opacity" + +#: f.effects.cc:3116 msgid "choose pattern tile" msgstr "choose pattern tile" -#: f.effects.cc:3382 +#: f.effects.cc:3450 msgid "Create Mosaic" msgstr "Create Mosaic" -#: f.effects.cc:3468 +#: f.effects.cc:3536 msgid "Tile" msgstr "Tile" -#: f.effects.cc:3476 f.menus.cc:259 +#: f.effects.cc:3544 f.menus.cc:221 msgid "Tiles" msgstr "Tiles" -#: f.effects.cc:3482 +#: f.effects.cc:3550 msgid "Tile blending" msgstr "Tile blending" -#: f.effects.cc:3560 +#: f.effects.cc:3628 #, c-format msgid "exceeded max. tiles: %d" msgstr "exceeded max. tiles: %d" -#: f.effects.cc:3575 +#: f.effects.cc:3643 #, c-format msgid "only %d tile images found" msgstr "only %d tile images found" @@ -889,7 +905,7 @@ msgid "no more images" msgstr "no more images" -#: f.file.cc:330 f.menus.cc:153 f.menus.cc:482 +#: f.file.cc:330 f.menus.cc:118 f.menus.cc:395 msgid "Open RAW file (ufraw)" msgstr "Open RAW file (ufraw)" @@ -946,7 +962,7 @@ "Overwrite file? \n" " %s" -#: f.file.cc:836 f.menus.cc:155 +#: f.file.cc:836 f.menus.cc:120 msgid "Rename Image File" msgstr "Rename Image File" @@ -954,7 +970,7 @@ msgid "Old Name" msgstr "Old Name" -#: f.file.cc:844 f.tools.cc:4504 +#: f.file.cc:844 f.tools.cc:4803 msgid "New Name" msgstr "New Name" @@ -1002,7 +1018,7 @@ msgid "new location" msgstr "new location" -#: f.file.cc:1233 f.tools.cc:4809 +#: f.file.cc:1233 f.tools.cc:5108 msgid "Select directory" msgstr "Select directory" @@ -1027,7 +1043,7 @@ msgid "(automatic step to next image)" msgstr "(automatic step to next image)" -#: f.file.cc:1457 f.menus.cc:157 +#: f.file.cc:1457 f.menus.cc:122 msgid "Trash Image File" msgstr "Trash Image File" @@ -1075,7 +1091,7 @@ "create directory? \n" " %s" -#: f.file.cc:2191 f.menus.cc:149 +#: f.file.cc:2191 f.menus.cc:114 msgid "Open Image File" msgstr "Open Image File" @@ -1097,103 +1113,107 @@ msgid "file type not supported: %s" msgstr "file type not supported: %s" -#: f.file.cc:4209 f.menus.cc:296 f.menus.cc:432 +#: f.file.cc:4209 f.file.cc:4291 f.menus.cc:360 f.tools.cc:851 +msgid "Scroll" +msgstr "Scroll" + +#: f.file.cc:4211 f.menus.cc:254 f.menus.cc:348 msgid "Sync.G" msgstr "Sync.G" -#: f.file.cc:4221 +#: f.file.cc:4223 msgid "change directory" msgstr "change directory" -#: f.file.cc:4229 f.menus.cc:434 +#: f.file.cc:4231 f.menus.cc:350 msgid "GoTo" msgstr "GoTo" -#: f.file.cc:4234 f.menus.cc:437 +#: f.file.cc:4236 f.menus.cc:353 msgid "Sort" msgstr "Sort" -#: f.file.cc:4241 f.file.cc:4665 f.file.cc:4666 f.file.cc:4668 f.menus.cc:435 +#: f.file.cc:4243 f.file.cc:4657 f.file.cc:4658 f.file.cc:4660 f.menus.cc:351 msgid "Zoom+" msgstr "Zoom+" -#: f.file.cc:4252 f.file.cc:4667 f.file.cc:4669 f.menus.cc:436 +#: f.file.cc:4254 f.file.cc:4659 f.file.cc:4661 f.menus.cc:352 msgid "Zoom-" msgstr "Zoom-" -#: f.file.cc:4265 f.file.cc:4673 f.menus.cc:442 +#: f.file.cc:4267 f.file.cc:4665 f.menus.cc:358 msgid "Row↑" msgstr "Row↑" -#: f.file.cc:4277 f.file.cc:4674 f.menus.cc:443 +#: f.file.cc:4279 f.file.cc:4666 f.menus.cc:359 msgid "Row↓" msgstr "Row↓" -#: f.file.cc:4289 f.file.cc:4676 f.menus.cc:438 +#: f.file.cc:4309 f.file.cc:4668 f.menus.cc:354 msgid "First" msgstr "First" -#: f.file.cc:4290 f.file.cc:4677 f.menus.cc:439 +#: f.file.cc:4310 f.file.cc:4669 f.menus.cc:355 msgid "Last" msgstr "Last" -#: f.file.cc:4291 f.file.cc:4671 f.file.cc:4678 f.menus.cc:440 +#: f.file.cc:4311 f.file.cc:4663 f.file.cc:4670 f.menus.cc:356 msgid "Page↑" msgstr "Page↑" -#: f.file.cc:4292 f.file.cc:4672 f.file.cc:4679 f.menus.cc:441 +#: f.file.cc:4312 f.file.cc:4664 f.file.cc:4671 f.menus.cc:357 msgid "Page↓" msgstr "Page↓" -#: f.file.cc:4342 +#: f.file.cc:4366 msgid "Choose image directory" msgstr "Choose image directory" -#: f.file.cc:4348 f.file.cc:4363 +#: f.file.cc:4372 f.file.cc:4387 msgid "recent" msgstr "recent" -#: f.file.cc:4349 f.file.cc:4368 +#: f.file.cc:4373 f.file.cc:4392 msgid "newest" msgstr "newest" -#: f.file.cc:4350 f.file.cc:4377 +#: f.file.cc:4374 f.file.cc:4401 msgid "collections" msgstr "collections" -#: f.file.cc:4423 f.tools.cc:2476 +#: f.file.cc:4449 f.tools.cc:2451 msgid "no collections found" msgstr "no collections found" -#: f.file.cc:4430 +#: f.file.cc:4456 msgid "Choose collection" msgstr "Choose collection" -#: f.file.cc:4475 +#: f.file.cc:4503 msgid "Gallery Sort" msgstr "Gallery Sort" -#: f.file.cc:4479 +#: f.file.cc:4507 msgid "File Name" msgstr "File Name" -#: f.file.cc:4480 +#: f.file.cc:4508 msgid "File Mod Date/Time" msgstr "File Mod Date/Time" -#: f.file.cc:4481 +#: f.file.cc:4509 msgid "Photo Date/Time (EXIF)" msgstr "Photo Date/Time (EXIF" -#: f.file.cc:4483 +#: f.file.cc:4511 msgid "ascending" msgstr "ascending" -#: f.file.cc:4484 +#: f.file.cc:4512 msgid "descending" msgstr "descending" -#: f.file.cc:5542 fotoxx.h:1061 +#: f.file.cc:5534 fotoxx.h:1067 msgid "Select Files" msgstr "Select Files" @@ -1217,7 +1237,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Minor rotate: drag right edge with mouse" -#: f.image.cc:302 f.menus.cc:212 f.menus.cc:472 +#: f.image.cc:302 f.menus.cc:176 f.menus.cc:385 msgid "Trim/Rotate" msgstr "Trim/Rotate" @@ -1233,7 +1253,7 @@ msgid "Lock Ratio" msgstr "Lock Ratio" -#: f.image.cc:326 f.tools.cc:2793 +#: f.image.cc:326 msgid "Customize" msgstr "Customize" @@ -1269,7 +1289,7 @@ msgid "Resize Image" msgstr "Resize Image" -#: f.image.cc:1650 f.menus.cc:215 +#: f.image.cc:1650 f.menus.cc:179 msgid "Flip" msgstr "Flip" @@ -1309,1123 +1329,1128 @@ msgid "plugin failed" msgstr "plugin failed" -#: f.menus.cc:56 f.menus.cc:117 -msgid "File" -msgstr "File" - -#: f.menus.cc:57 f.menus.cc:118 -msgid "Tools" -msgstr "Tools" - -#: f.menus.cc:58 f.menus.cc:119 f.menus.cc:462 -msgid "Metadata" -msgstr "Metadata" - -#: f.menus.cc:59 f.menus.cc:120 -msgid "Areas" -msgstr "Areas" - -#: f.menus.cc:61 f.menus.cc:122 -msgid "Retouch" -msgstr "Retouch" - -#: f.menus.cc:62 f.menus.cc:123 -msgid "Repair" -msgstr "Repair" - -#: f.menus.cc:64 f.menus.cc:125 -msgid "Bend" -msgstr "Bend" - -#: f.menus.cc:65 f.menus.cc:126 -msgid "Effects" -msgstr "Effects" - -#: f.menus.cc:66 f.menus.cc:127 -msgid "Combine" -msgstr "Combine" - -#: f.menus.cc:67 f.menus.cc:128 -msgid "Plugins" -msgstr "Plugins" - -#: f.menus.cc:68 f.menus.cc:129 fotoxx-14.03.cc:3811 fotoxx.h:1021 -msgid "Help" -msgstr "Help" - -#: f.menus.cc:101 f.menus.cc:290 fotoxx-14.03.cc:3751 +#: f.menus.cc:67 fotoxx-14.04.cc:3775 msgid "Favorite Functions" msgstr "Favorite Functions" -#: f.menus.cc:102 +#: f.menus.cc:68 msgid "Open, Save, Trash, Rename, Print" msgstr "Open, Save, Trash, Rename, Print" -#: f.menus.cc:103 +#: f.menus.cc:69 msgid "Index Files, Settings, Collections, Batch Funcs ..." msgstr "Index Files, Settings, Collections, Batch Funcs ..." -#: f.menus.cc:104 +#: f.menus.cc:70 msgid "Captions, Tags, Ratings, Geotags, Search ... " msgstr "Captions, Tags, Ratings, Geotags, Search ... " -#: f.menus.cc:105 +#: f.menus.cc:71 msgid "Select image areas to edit, copy and paste" msgstr "Select image areas to edit, copy and paste" -#: f.menus.cc:106 +#: f.menus.cc:72 msgid "Trim/Crop, Rotate, Resize, Add Text" msgstr "Trim/Crop, Rotate, Resize, Add Text" -#: f.menus.cc:107 +#: f.menus.cc:73 msgid "Improve brightness, contrast, color ..." msgstr "Improve brightness, contrast, color ..." -#: f.menus.cc:108 +#: f.menus.cc:74 msgid "Sharpen, Clean, Red-eyes, Paint, Clone ..." msgstr "Sharpen, Clean, Red-eyes, Paint, Clone ..." -#: f.menus.cc:109 +#: f.menus.cc:75 msgid "White Balance, Color Profile, Color Matching" msgstr "White Balance, Color Profile, Color Matching" -#: f.menus.cc:110 +#: f.menus.cc:76 msgid "Fix Perspective, Bend/Warp image ..." msgstr "Fix Perspective, Bend/Warp image ..." -#: f.menus.cc:111 +#: f.menus.cc:77 msgid "Special Effects, Arty Transforms" msgstr "Special Effects, Arty Transforms" -#: f.menus.cc:112 +#: f.menus.cc:78 msgid "HDR, HDF, Panorama, Stack, Mashup" msgstr "HDR, HDF, Panorama, Stack, Mashup" -#: f.menus.cc:113 +#: f.menus.cc:79 msgid "Use other image editors within Fotoxx" msgstr "Use other image editors within Fotoxx" -#: f.menus.cc:114 +#: f.menus.cc:80 msgid "Quick Start, User Guide, Recent Changes ..." msgstr "Quick Start, User Guide, Recent Changes ..." -#: f.menus.cc:148 +#: f.menus.cc:83 +msgid "File" +msgstr "File" + +#: f.menus.cc:84 +msgid "Tools" +msgstr "Tools" + +#: f.menus.cc:85 f.menus.cc:375 +msgid "Metadata" +msgstr "Metadata" + +#: f.menus.cc:86 +msgid "Areas" +msgstr "Areas" + +#: f.menus.cc:88 +msgid "Retouch" +msgstr "Retouch" + +#: f.menus.cc:89 +msgid "Repair" +msgstr "Repair" + +#: f.menus.cc:91 +msgid "Bend" +msgstr "Bend" + +#: f.menus.cc:92 +msgid "Effects" +msgstr "Effects" + +#: f.menus.cc:93 +msgid "Combine" +msgstr "Combine" + +#: f.menus.cc:94 +msgid "Plugins" +msgstr "Plugins" + +#: f.menus.cc:95 fotoxx-14.04.cc:3835 fotoxx.h:1026 +msgid "Help" +msgstr "Help" + +#: f.menus.cc:113 msgid "New Window" msgstr "New Window" -#: f.menus.cc:148 +#: f.menus.cc:113 msgid "Open another window" msgstr "Open another window" -#: f.menus.cc:149 f.menus.cc:297 +#: f.menus.cc:114 f.menus.cc:255 msgid "Open a new image file" msgstr "Open a new image file" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open Previous File" msgstr "Open Previous File" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open the previously seen file" msgstr "Open the previously seen file" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Open a recently seen file" msgstr "Open a recently seen file" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Recently Seen Images" msgstr "Recently Seen Images" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Newest Images" msgstr "Newest Images" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Open a newly added file" msgstr "Open a newly added file" -#: f.menus.cc:153 +#: f.menus.cc:118 msgid "Open and edit a camera RAW file" msgstr "Open and edit a camera RAW file" -#: f.menus.cc:154 f.menus.cc:300 +#: f.menus.cc:119 f.menus.cc:258 msgid "Save modified image file to disk" msgstr "Save modified image file to disk" -#: f.menus.cc:154 +#: f.menus.cc:119 msgid "Save to Disk" msgstr "Save to Disk" -#: f.menus.cc:155 +#: f.menus.cc:120 msgid "Change the image file name" msgstr "Change the image file name" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "Create a blank image" msgstr "Create a blank image" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "New Blank Image" msgstr "New Blank Image" -#: f.menus.cc:157 f.menus.cc:301 +#: f.menus.cc:122 f.menus.cc:259 msgid "Move image file to Trash" msgstr "Move image file to Trash" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print Image" msgstr "Print Image" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print the current image" msgstr "Print the current image" -#: f.menus.cc:159 +#: f.menus.cc:124 msgid "Quit Fotoxx" msgstr "Quit Fotoxx" -#: f.menus.cc:161 f.tools.cc:92 f.tools.cc:339 +#: f.menus.cc:126 f.tools.cc:92 f.tools.cc:339 msgid "Index Image Files" msgstr "Index Image Files" -#: f.menus.cc:161 +#: f.menus.cc:126 msgid "Index new files and make thumbnails" msgstr "Index new files and make thumbnails" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "Change user preferences" msgstr "Change user preferences" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "User Settings" msgstr "User Settings" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Change Keyboard Shortcut Keys" msgstr "Change Keyboard Shortcut Keys" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Keyboard Shortcuts" msgstr "Keyboard Shortcuts" -#: f.menus.cc:164 f.tools.cc:1943 +#: f.menus.cc:129 f.tools.cc:1918 msgid "Manage Collections" msgstr "Manage Collections" -#: f.menus.cc:164 +#: f.menus.cc:129 msgid "Organize images into collections" msgstr "Organize images into collections" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Convert for a new top directory" msgstr "Convert for a new top directory" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Move Collections" msgstr "Move Collections" -#: f.menus.cc:166 f.tools.cc:2777 f.tools.cc:2780 +#: f.menus.cc:131 f.tools.cc:2728 msgid "Slide Show" msgstr "Slide Show" -#: f.menus.cc:166 +#: f.menus.cc:131 msgid "Start a slide show" msgstr "Start a slide show" -#: f.menus.cc:167 f.tools.cc:4497 +#: f.menus.cc:132 f.tools.cc:4796 msgid "Batch Convert" msgstr "Batch Convert" -#: f.menus.cc:167 +#: f.menus.cc:132 msgid "Rename/convert/resize/move multiple files" msgstr "Rename/convert/resize/move multiple files" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Batch Convert RAW" msgstr "Batch Convert RAW" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Convert multiple camera RAW files" msgstr "Convert multiple camera RAW files" -#: f.menus.cc:169 -msgid "Brightness Histogram" -msgstr "Brightness Histogram" +#: f.menus.cc:134 f.menus.cc:185 f.menus.cc:390 f.retouch.cc:314 +#: f.tools.cc:5620 +msgid "Brightness Distribution" +msgstr "Brightness Distribution" -#: f.menus.cc:169 +#: f.menus.cc:134 msgid "Show a brightness distribution graph" msgstr "Show a brightness distribution graph" -#: f.menus.cc:170 f.menus.cc:480 f.tools.cc:5517 +#: f.menus.cc:135 f.menus.cc:393 f.tools.cc:5825 msgid "Grid Lines" msgstr "Grid Lines" -#: f.menus.cc:170 +#: f.menus.cc:135 msgid "Show or revise grid lines" msgstr "Show or revise grid lines" -#: f.menus.cc:171 f.tools.cc:5701 +#: f.menus.cc:136 f.tools.cc:6009 msgid "Show RGB" msgstr "Show RGB" -#: f.menus.cc:171 +#: f.menus.cc:136 msgid "Show RGB colors at mouse click" msgstr "Show RGB colors at mouse click" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Dark/Bright Pixels" msgstr "Dark/Bright Pixels" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Highlight darkest and brightest pixels" msgstr "Highlight darkest and brightest pixels" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Chart to adjust monitor color" msgstr "Chart to adjust monitor color" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Monitor Color" msgstr "Monitor Color" -#: f.menus.cc:174 +#: f.menus.cc:139 msgid "Chart to adjust monitor gamma" msgstr "Chart to adjust monitor gamma" -#: f.menus.cc:174 f.tools.cc:6213 +#: f.menus.cc:139 f.tools.cc:6521 msgid "Monitor Gamma" msgstr "Monitor Gamma" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change Language" msgstr "Change Language" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change the GUI language" msgstr "Change the GUI language" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Missing Translations" msgstr "Missing Translations" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Report missing translations" msgstr "Report missing translations" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Create a Gnome menu and launcher" msgstr "Create a Gnome menu and launcher" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Menu and Launcher" msgstr "Menu and Launcher" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn Images to CD/DVD" msgstr "Burn Images to CD/DVD" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn selected image files to CD or DVD" msgstr "Burn selected image files to CD or DVD" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Memory and CPU (to terminal/logfile)" msgstr "Memory and CPU (to terminal/logfile" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Resources" msgstr "Resources" -#: f.menus.cc:183 f.meta.cc:121 f.meta.cc:1945 +#: f.menus.cc:147 f.meta.cc:121 f.meta.cc:1946 msgid "Edit Metadata" msgstr "Edit Metadata" -#: f.menus.cc:183 +#: f.menus.cc:147 msgid "Edit image tags/caption/rating ..." msgstr "Edit image tags/caption/rating ..." -#: f.menus.cc:184 +#: f.menus.cc:148 msgid "Add/remove tags for multiple images" msgstr "Add/remove tags for multiple images" -#: f.menus.cc:184 f.meta.cc:1547 +#: f.menus.cc:148 f.meta.cc:1547 msgid "Batch Add/Remove Tags" msgstr "Batch Add/Remove Tags" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "List a few key metadata items" msgstr "List a few key metadata items" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "View Metadata (short)" msgstr "View Metadata (short)" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "List all metadata items" msgstr "List all metadata items" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "View Metadata (long)" msgstr "View Metadata (long)" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "List captions and comments only" msgstr "List captions and comments only" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "View Captions and Comments" msgstr "View Captions and Comments" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit Any Metadata" msgstr "Edit Any Metadata" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit any image metadata" msgstr "Edit any image metadata" -#: f.menus.cc:189 f.meta.cc:2039 +#: f.menus.cc:153 f.meta.cc:2040 msgid "Delete Metadata" msgstr "Delete Metadata" -#: f.menus.cc:189 +#: f.menus.cc:153 msgid "Remove all metadata from an image" msgstr "Remove all metadata from an image" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "(Toggle) show captions and comments" msgstr "(Toggle) show captions and comments" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "Show Captions on Image" msgstr "Show Captions on Image" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download Geolocations" msgstr "Download Geolocations" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download initial geolocation database" msgstr "Download initial geolocation database" -#: f.menus.cc:193 f.meta.cc:3023 +#: f.menus.cc:157 f.meta.cc:3027 msgid "Edit Geotags" msgstr "Edit Geotags" -#: f.menus.cc:193 +#: f.menus.cc:157 msgid "Edit image location and geotags" msgstr "Edit image location and geotags" -#: f.menus.cc:194 +#: f.menus.cc:158 msgid "Add geotags to multiple images" msgstr "Add geotags to multiple images" -#: f.menus.cc:194 f.meta.cc:3225 +#: f.menus.cc:158 f.meta.cc:3229 msgid "Batch Add Geotags" msgstr "Batch Add Geotags" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Find all images for a location [date]" msgstr "Find all images for a location [date]" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Images by Location/Date" msgstr "Images by Location/Date" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Find images by clicking a world map" msgstr "Find images by clicking a world map" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Images by Map Location" msgstr "Images by Map Location" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Find images meeting select criteria" msgstr "Find images meeting select criteria" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Search Images" msgstr "Search Images" -#: f.menus.cc:199 fotoxx.h:1060 +#: f.menus.cc:163 fotoxx.h:1066 msgid "Select" msgstr "Select" -#: f.menus.cc:199 +#: f.menus.cc:163 msgid "Select object or area for editing" msgstr "Select object or area for editing" -#: f.menus.cc:200 fotoxx.h:1062 +#: f.menus.cc:164 fotoxx.h:1068 msgid "Show" msgstr "Show" -#: f.menus.cc:200 +#: f.menus.cc:164 msgid "Show (outline) existing area" msgstr "Show (outline) existing area" -#: f.menus.cc:201 fotoxx.h:1022 +#: f.menus.cc:165 fotoxx.h:1027 msgid "Hide" msgstr "Hide" -#: f.menus.cc:201 +#: f.menus.cc:165 msgid "Hide existing area" msgstr "Hide existing area" -#: f.menus.cc:202 fotoxx.h:1011 +#: f.menus.cc:166 fotoxx.h:1016 msgid "Enable" msgstr "Enable" -#: f.menus.cc:202 +#: f.menus.cc:166 msgid "Enable area for editing" msgstr "Enable area for editing" -#: f.menus.cc:203 fotoxx.h:1006 +#: f.menus.cc:167 fotoxx.h:1011 msgid "Disable" msgstr "Disable" -#: f.menus.cc:203 +#: f.menus.cc:167 msgid "Disable area for editing" msgstr "Disable area for editing" -#: f.menus.cc:204 fotoxx.h:1025 +#: f.menus.cc:168 fotoxx.h:1030 msgid "Invert" msgstr "Invert" -#: f.menus.cc:204 +#: f.menus.cc:168 msgid "Reverse existing area" msgstr "Reverse existing area" -#: f.menus.cc:205 +#: f.menus.cc:169 msgid "Erase existing area" msgstr "Erase existing area" -#: f.menus.cc:205 fotoxx.h:1074 +#: f.menus.cc:169 fotoxx.h:1080 msgid "Unselect" msgstr "Unselect" -#: f.menus.cc:206 fotoxx.h:1001 +#: f.menus.cc:170 fotoxx.h:1006 msgid "Copy" msgstr "Copy" -#: f.menus.cc:206 +#: f.menus.cc:170 msgid "Copy an area for later pasting" msgstr "Copy an area for later pasting" -#: f.menus.cc:207 fotoxx.h:1041 +#: f.menus.cc:171 fotoxx.h:1046 msgid "Paste" msgstr "Paste" -#: f.menus.cc:207 +#: f.menus.cc:171 msgid "Paste an area into the current image" msgstr "Paste an area into the current image" -#: f.menus.cc:208 +#: f.menus.cc:172 msgid "Open a file with a saved area" msgstr "Open a file with a saved area" -#: f.menus.cc:209 f.menus.cc:300 fotoxx.h:1057 +#: f.menus.cc:173 f.menus.cc:258 fotoxx.h:1062 msgid "Save" msgstr "Save" -#: f.menus.cc:209 +#: f.menus.cc:173 msgid "Save an area to a file" msgstr "Save an area to a file" -#: f.menus.cc:211 +#: f.menus.cc:175 msgid "Rotate 90 degrees" msgstr "Rotate 90 degrees" -#: f.menus.cc:211 f.menus.cc:474 +#: f.menus.cc:175 f.menus.cc:387 msgid "Rotate 90º" msgstr "Rotate 90º" -#: f.menus.cc:212 +#: f.menus.cc:176 msgid "Trim/Crop margins and/or Rotate" msgstr "Trim/Crop margins and/or Rotate" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Auto-Trim" msgstr "Auto-Trim" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Remove margins from warp, panorama, etc." msgstr "Remove margins from warp, panorama, etc." -#: f.menus.cc:214 +#: f.menus.cc:178 msgid "Change pixel dimensions" msgstr "Change pixel dimensions" -#: f.menus.cc:215 +#: f.menus.cc:179 msgid "Mirror image horizontally or vertically" msgstr "Mirror image horizontally or vertically" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Add Text" msgstr "Add Text" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Write text on image" msgstr "Write text on image" -#: f.menus.cc:218 +#: f.menus.cc:182 msgid "Fast auto enhance that may work OK" msgstr "Fast auto enhance that may work OK" -#: f.menus.cc:218 f.menus.cc:475 +#: f.menus.cc:182 f.menus.cc:388 msgid "Voodoo Enhance" msgstr "Voodoo Enhance" -#: f.menus.cc:219 +#: f.menus.cc:183 msgid "Adjust brightness, contrast, color" msgstr "Adjust brightness, contrast, color" -#: f.menus.cc:219 f.menus.cc:476 f.retouch.cc:265 +#: f.menus.cc:183 f.menus.cc:389 f.retouch.cc:271 msgid "Retouch Combo" msgstr "Retouch Combo" -#: f.menus.cc:222 +#: f.menus.cc:184 msgid "Add local contrast, enhance details" msgstr "Add local contrast, enhance details" -#: f.menus.cc:222 f.menus.cc:478 f.retouch.cc:929 +#: f.menus.cc:184 f.menus.cc:391 f.retouch.cc:1039 msgid "Tone Mapping" msgstr "Tone Mapping" -#: f.menus.cc:223 +#: f.menus.cc:185 msgid "Adjust brightness distribution" msgstr "Adjust brightness distribution" -#: f.menus.cc:223 f.menus.cc:477 f.tools.cc:5314 -msgid "Brightness Distribution" -msgstr "Brightness Distribution" - -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Brightness Ramp" msgstr "Brightness Ramp" -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Fix brightness uniformity across image" msgstr "Fix brightness uniformity across image" -#: f.menus.cc:225 f.retouch.cc:2050 +#: f.menus.cc:187 f.retouch.cc:2159 msgid "Paint Edits" msgstr "Paint Edits" -#: f.menus.cc:225 +#: f.menus.cc:187 msgid "Paint edit function gradually with mouse" msgstr "Paint edit function gradually with mouse" -#: f.menus.cc:227 +#: f.menus.cc:188 f.retouch.cc:2390 +msgid "Leverage Edits" +msgstr "Leverage Edits" + +#: f.menus.cc:188 +msgid "Leverage edits by brightness or color" +msgstr "Leverage edits by brightness or color" + +#: f.menus.cc:190 msgid "Make the image look sharper" msgstr "Make the image look sharper" -#: f.menus.cc:227 f.repair.cc:79 f.tools.cc:4535 f.tools.cc:4904 +#: f.menus.cc:190 f.repair.cc:79 f.tools.cc:4834 f.tools.cc:5203 msgid "Sharpen" msgstr "Sharpen" -#: f.menus.cc:228 f.repair.cc:1565 +#: f.menus.cc:191 f.repair.cc:1565 msgid "Blur" msgstr "Blur" -#: f.menus.cc:228 +#: f.menus.cc:191 msgid "Make the image look fuzzy" msgstr "Make the image look fuzzy" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Filter noise from low-light photos" msgstr "Filter noise from low-light photos" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Reduce Noise" msgstr "Reduce Noise" -#: f.menus.cc:230 +#: f.menus.cc:193 msgid "Remove unwanted objects" msgstr "Remove unwanted objects" -#: f.menus.cc:230 f.repair.cc:1558 +#: f.menus.cc:193 f.repair.cc:1558 msgid "Smart Erase" msgstr "Smart Erase" -#: f.menus.cc:231 +#: f.menus.cc:194 msgid "Fix red-eyes from electronic flash" msgstr "Fix red-eyes from electronic flash" -#: f.menus.cc:231 f.menus.cc:479 +#: f.menus.cc:194 f.menus.cc:392 msgid "Red Eyes" msgstr "Red Eyes" -#: f.menus.cc:232 +#: f.menus.cc:195 msgid "Paint image pixels using the mouse" msgstr "Paint image pixels using the mouse" -#: f.menus.cc:232 f.repair.cc:2403 +#: f.menus.cc:195 f.repair.cc:2403 msgid "Paint/Clone" msgstr "Paint/Clone" -#: f.menus.cc:233 f.repair.cc:2995 +#: f.menus.cc:196 f.repair.cc:2995 msgid "Remove Dust" msgstr "Remove Dust" -#: f.menus.cc:233 +#: f.menus.cc:196 msgid "Remove dust spots from scanned slides" msgstr "Remove dust spots from scanned slides" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Anti-alias" msgstr "Anti-alias" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Smoothen edges with jaggies" msgstr "Smoothen edges with jaggies" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Fix Color Fringes" msgstr "Fix Color Fringes" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Reduce Chromatic Abberation" msgstr "Reduce Chromatic Abberation" -#: f.menus.cc:236 +#: f.menus.cc:199 msgid "Erase known hot and dark pixels" msgstr "Erase known hot and dark pixels" -#: f.menus.cc:236 f.repair.cc:4008 +#: f.menus.cc:199 f.repair.cc:4008 msgid "Fix Stuck Pixels" msgstr "Fix Stuck Pixels" -#: f.menus.cc:239 +#: f.menus.cc:201 msgid "Shift/convert colors into other colors" msgstr "Shift/convert colors into other colors" -#: f.menus.cc:240 +#: f.menus.cc:202 msgid "Make BW/color, negative/positive, sepia" msgstr "Make BW/color, negative/positive, sepia" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Color Profile" msgstr "Color Profile" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Convert to another color profile" msgstr "Convert to another color profile" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match Colors" msgstr "Match Colors" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match colors on one image with another" msgstr "Match colors on one image with another" -#: f.menus.cc:243 +#: f.menus.cc:205 msgid "Adjust color in selected image areas" msgstr "Adjust color in selected image areas" -#: f.menus.cc:244 +#: f.menus.cc:206 msgid "Adjust color using CMYK or RGB values" msgstr "Adjust color using CMYK or RGB values" -#: f.menus.cc:246 +#: f.menus.cc:208 msgid "Remove curvature, esp. panoramas" msgstr "Remove curvature, esp. panoramas" -#: f.menus.cc:247 +#: f.menus.cc:209 msgid "Straighten objects seen from an angle" msgstr "Straighten objects seen from an angle" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten Book Page" msgstr "Flatten Book Page" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten a photographed book page" msgstr "Flatten a photographed book pag" -#: f.menus.cc:249 +#: f.menus.cc:211 msgid "Distort image areas using the mouse" msgstr "Distort image areas using the mouse" -#: f.menus.cc:250 f.menus.cc:251 f.menus.cc:252 +#: f.menus.cc:212 f.menus.cc:213 f.menus.cc:214 msgid "Distort the whole image using the mouse" msgstr "Distort the whole image using the mouse" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Color Depth" msgstr "Color Depth" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Reduce color depth (posterize)" msgstr "Reduce color depth (posterize)" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Convert to pencil sketch" msgstr "Convert to pencil sketch" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Sketch" msgstr "Sketch" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Convert to colored line drawing" msgstr "Convert to colored line drawing" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Drawing" msgstr "Drawing" -#: f.menus.cc:257 +#: f.menus.cc:219 msgid "Graduated Blur depending on contrast" msgstr "Graduated Blur depending on contrast" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Create an embossed or 3D appearance" msgstr "Create an embossed or 3D appearance" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Embossing" msgstr "Embossing" -#: f.menus.cc:259 +#: f.menus.cc:221 msgid "Convert to square tiles" msgstr "Convert to square tiles" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Convert to dots (Roy Lichtenstein effect)" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Dots" msgstr "Dots" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Convert into a simulated painting" msgstr "Convert into a simulated painting" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Painting" msgstr "Painting" -#: f.menus.cc:262 +#: f.menus.cc:224 msgid "Change brightness or color radially" msgstr "Change brightness or color radially" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Add texture to an image" msgstr "Add texture to an image" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Texture" msgstr "Texture" -#: f.menus.cc:264 +#: f.menus.cc:226 msgid "Tile image with a repeating pattern" msgstr "Tile image with a repeating pattern" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Create a mosaic with tiles made from all images" msgstr "Create a mosaic with tiles made from all images" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Mosaic" msgstr "Mosaic" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "Combine bright/dark images for better detail" msgstr "Combine bright/dark images for better detail" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "High Dynamic Range" msgstr "High Dynamic Range" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "Combine near/far focus images for deeper focus" msgstr "Combine near/far focus images for deeper focus" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "High Depth of Field" msgstr "High Depth of Field" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Combine images to erase passing people, etc." msgstr "Combine images to erase passing people, etc." -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Stack / Paint" msgstr "Stack / Paint" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Combine noisy images into a low-noise image" msgstr "Combine noisy images into a low-noise image" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Stack / Noise" msgstr "Stack / Noise" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Combine images into a panorama" msgstr "Combine images into a panorama" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Panorama" msgstr "Panorama" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Combine images into a vertical panorama" msgstr "Combine images into a vertical panorama" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Vertical Panorama" msgstr "Vertical Panorama" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Arrange multiple images on a background image" msgstr "Arrange multiple images on a background image" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Mashup" msgstr "Mashup" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Add another image editor to the menu" msgstr "Add another image editor to the menu" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Edit Plugins" msgstr "Edit Plugins" -#: f.menus.cc:277 fotoxx-14.03.cc:3777 +#: f.menus.cc:239 fotoxx-14.04.cc:3801 msgid "Quick Start" msgstr "Quick Start" -#: f.menus.cc:277 +#: f.menus.cc:239 msgid "Quick Start mini-guide" msgstr "Quick Start mini-guide" -#: f.menus.cc:278 +#: f.menus.cc:240 msgid "Read the user guide" msgstr "Read the user guide" -#: f.menus.cc:278 fotoxx-14.03.cc:3780 +#: f.menus.cc:240 fotoxx-14.04.cc:3804 msgid "User Guide" msgstr "User Guide" -#: f.menus.cc:279 +#: f.menus.cc:241 msgid "Recent user guide changes" msgstr "Recent user guide changes" -#: f.menus.cc:279 fotoxx-14.03.cc:3783 +#: f.menus.cc:241 fotoxx-14.04.cc:3807 msgid "User Guide Changes" msgstr "User Guide Changes" -#: f.menus.cc:280 +#: f.menus.cc:242 msgid "Fotoxx updates notification" msgstr "Fotoxx updates notification" -#: f.menus.cc:280 fotoxx-14.03.cc:3786 +#: f.menus.cc:242 fotoxx-14.04.cc:3810 msgid "Program Updates" msgstr "Program Updates" -#: f.menus.cc:281 fotoxx-14.03.cc:3792 +#: f.menus.cc:243 fotoxx-14.04.cc:3816 msgid "Edit Functions Summary" msgstr "Edit Functions Summary" -#: f.menus.cc:281 +#: f.menus.cc:243 msgid "Summary of image edit functions" msgstr "Summary of image edit functions" -#: f.menus.cc:282 fotoxx-14.03.cc:3789 +#: f.menus.cc:244 fotoxx-14.04.cc:3813 msgid "README" msgstr "README" -#: f.menus.cc:282 +#: f.menus.cc:244 msgid "Technical installation notes" msgstr "Technical installation notes" -#: f.menus.cc:283 fotoxx-14.03.cc:3795 +#: f.menus.cc:245 fotoxx-14.04.cc:3819 msgid "Change Log" msgstr "Change Log" -#: f.menus.cc:283 +#: f.menus.cc:245 msgid "List updates by Fotoxx version" msgstr "List updates by Fotoxx version" -#: f.menus.cc:284 fotoxx-14.03.cc:3798 +#: f.menus.cc:246 fotoxx-14.04.cc:3822 msgid "Log File" msgstr "Log File" -#: f.menus.cc:284 +#: f.menus.cc:246 msgid "View the log file and error messages" msgstr "View the log file and error messages" -#: f.menus.cc:285 +#: f.menus.cc:247 msgid "How to do Fotoxx translations" msgstr "How to do Fotoxx translations" -#: f.menus.cc:285 fotoxx-14.03.cc:3801 +#: f.menus.cc:247 fotoxx-14.04.cc:3825 msgid "Translations" msgstr "Translations" -#: f.menus.cc:286 fotoxx-14.03.cc:3804 +#: f.menus.cc:248 fotoxx-14.04.cc:3828 msgid "Home Page" msgstr "Home Page" -#: f.menus.cc:286 +#: f.menus.cc:248 msgid "Show the Fotoxx web page" msgstr "Show the Fotoxx web page" -#: f.menus.cc:287 fotoxx-14.03.cc:3807 +#: f.menus.cc:249 fotoxx-14.04.cc:3831 msgid "About" msgstr "About" -#: f.menus.cc:287 +#: f.menus.cc:249 msgid "Version, license, contact, credits" msgstr "Version, license, contact, credits" -#: f.menus.cc:290 -msgid "Favs" -msgstr "Favs" - -#: f.menus.cc:292 +#: f.menus.cc:251 msgid "Color of area borders etc." msgstr "Color of area borders etc." -#: f.menus.cc:293 fotoxx.h:1072 +#: f.menus.cc:252 fotoxx.h:1078 msgid "Undo" msgstr "Undo" -#: f.menus.cc:293 +#: f.menus.cc:252 msgid "Undo one edit" msgstr "Undo one edit" -#: f.menus.cc:294 fotoxx.h:1051 +#: f.menus.cc:253 fotoxx.h:1056 msgid "Redo" msgstr "Redo" -#: f.menus.cc:294 +#: f.menus.cc:253 msgid "Redo one edit" msgstr "Redo one edit" -#: f.menus.cc:296 f.menus.cc:432 +#: f.menus.cc:254 f.menus.cc:348 msgid "Set gallery from current image file" msgstr "Set gallery from current image file" -#: f.menus.cc:298 +#: f.menus.cc:256 msgid "Open the previous file" msgstr "Open the previous file" -#: f.menus.cc:298 fotoxx.h:1046 +#: f.menus.cc:256 fotoxx.h:1051 msgid "Prev" msgstr "Prev" -#: f.menus.cc:299 fotoxx.h:1034 +#: f.menus.cc:257 fotoxx.h:1039 msgid "Next" msgstr "Next" -#: f.menus.cc:299 +#: f.menus.cc:257 msgid "Open the next file" msgstr "Open the next file" -#: f.menus.cc:301 f.menus.cc:483 fotoxx.h:1068 +#: f.menus.cc:259 f.menus.cc:396 fotoxx.h:1074 msgid "Trash" msgstr "Trash" -#: f.menus.cc:344 f.menus.cc:373 +#: f.menus.cc:306 msgid "Run as Fotoxx edit function" msgstr "Run as Fotoxx edit function" -#: f.menus.cc:412 +#: f.menus.cc:328 msgid "Top" msgstr "Top" -#: f.menus.cc:433 +#: f.menus.cc:349 msgid "open another directory" msgstr "open another directory" -#: f.menus.cc:434 +#: f.menus.cc:350 msgid "go to bookmarked image" msgstr "go to bookmarked image" -#: f.menus.cc:435 +#: f.menus.cc:351 msgid "increase thumbnail size" msgstr "increase thumbnail size" -#: f.menus.cc:436 +#: f.menus.cc:352 msgid "reduce thumbnail size" msgstr "reduce thumbnail size" -#: f.menus.cc:437 +#: f.menus.cc:353 msgid "change sort order" msgstr "change sort order" -#: f.menus.cc:438 +#: f.menus.cc:354 msgid "jump to beginning (top)" msgstr "jump to beginning (top)" -#: f.menus.cc:439 +#: f.menus.cc:355 msgid "jump to end (bottom)" msgstr "jump to end (bottom)" -#: f.menus.cc:440 +#: f.menus.cc:356 msgid "previous page" msgstr "previous page" -#: f.menus.cc:441 +#: f.menus.cc:357 msgid "next page" msgstr "next page" -#: f.menus.cc:442 +#: f.menus.cc:358 msgid "previous row" msgstr "previous row" -#: f.menus.cc:443 +#: f.menus.cc:359 msgid "next row" msgstr "next row" -#: f.menus.cc:461 +#: f.menus.cc:360 +msgid "slow scroll" +msgstr "slow scroll" + +#: f.menus.cc:374 msgid "Popup Image" msgstr "Popup Image" -#: f.menus.cc:463 fotoxx.h:1054 +#: f.menus.cc:376 fotoxx.h:1059 msgid "Rename" msgstr "Rename" -#: f.menus.cc:464 +#: f.menus.cc:377 msgid "Copy to Location" msgstr "Copy to Location" -#: f.menus.cc:465 +#: f.menus.cc:378 msgid "Move to Location" msgstr "Move to Location" -#: f.menus.cc:466 +#: f.menus.cc:379 msgid "Copy to Clipboard" msgstr "Copy to Clipboard" -#: f.menus.cc:467 +#: f.menus.cc:380 msgid "Remove from Collection" msgstr "Remove from Collection" -#: f.menus.cc:468 +#: f.menus.cc:381 msgid "Cut to Image Cache" msgstr "Cut to Image Cache" -#: f.menus.cc:469 +#: f.menus.cc:382 msgid "Copy to Image Cache" msgstr "Copy to Image Cache" -#: f.menus.cc:470 +#: f.menus.cc:383 msgid "Paste Image Cache Here (clear)" msgstr "Paste Image Cache Here (clear)" -#: f.menus.cc:471 +#: f.menus.cc:384 msgid "Paste Image Cache Here (keep)" msgstr "Paste Image Cache Here (keep)" -#: f.menus.cc:481 +#: f.menus.cc:394 msgid "Select Area" msgstr "Select Area" @@ -2434,7 +2459,7 @@ msgid "Rating: %c (stars)" msgstr "Rating: %c (stars)" -#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1939 f.meta.cc:3036 f.meta.cc:3311 +#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1940 f.meta.cc:3040 f.meta.cc:3315 msgid "file type cannot have metadata" msgstr "file type cannot have metadata" @@ -2486,7 +2511,7 @@ msgid "Recent Tags" msgstr "Recent Tags" -#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4267 +#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4271 msgid "Defined Tags" msgstr "Defined Tags" @@ -2506,7 +2531,7 @@ msgid "time is invalid" msgstr "time is invalid" -#: f.meta.cc:532 fotoxx.h:1029 +#: f.meta.cc:532 fotoxx.h:1034 msgid "Manage Tags" msgstr "Manage Tags" @@ -2522,11 +2547,11 @@ msgid "tag" msgstr "tag" -#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1474 +#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1449 msgid "file not found" msgstr "file not found" -#: f.meta.cc:1552 f.meta.cc:3257 f.tools.cc:4501 f.tools.cc:4966 +#: f.meta.cc:1552 f.meta.cc:3261 f.tools.cc:4800 f.tools.cc:5265 msgid "0 files selected" msgstr "0 files selected" @@ -2551,7 +2576,7 @@ msgid "specify files and tags" msgstr "specify files and tags" -#: f.meta.cc:1788 f.meta.cc:3369 f.tools.cc:4800 f.tools.cc:5185 +#: f.meta.cc:1788 f.meta.cc:3373 f.tools.cc:5099 f.tools.cc:5484 #, c-format msgid "%d files selected" msgstr "%d files selected" @@ -2560,11 +2585,11 @@ msgid "View Metadata" msgstr "View Metadata" -#: f.meta.cc:1903 +#: f.meta.cc:1904 msgid "Caption: \n" msgstr "Caption: \n" -#: f.meta.cc:1905 +#: f.meta.cc:1906 msgid "" "\n" "Comment: \n" @@ -2572,23 +2597,23 @@ "\n" "Comment: \n" -#: f.meta.cc:1949 +#: f.meta.cc:1950 msgid "key name" msgstr "key name" -#: f.meta.cc:1951 +#: f.meta.cc:1952 msgid "key value" msgstr "key value" -#: f.meta.cc:2041 fotoxx.h:985 +#: f.meta.cc:2042 fotoxx.h:990 msgid "All" msgstr "All" -#: f.meta.cc:2042 +#: f.meta.cc:2043 msgid "One Key:" msgstr "One Key:" -#: f.meta.cc:2222 +#: f.meta.cc:2223 #, c-format msgid "" "Download geotags data (8 megabytes). \n" @@ -2599,48 +2624,40 @@ "Save in %s \n" "Proceed?" -#: f.meta.cc:2261 +#: f.meta.cc:2262 msgid "download failed" msgstr "download failed" -#: f.meta.cc:2292 fotoxx-14.03.cc:1079 -msgid "Location from World Map" -msgstr "Location from World Map" - -#: f.meta.cc:2294 -msgid "Loading world map" -msgstr "Loading world map" - -#: f.meta.cc:2304 f.meta.cc:2449 +#: f.meta.cc:2298 f.meta.cc:2445 msgid "please download geolocations data" msgstr "please download geolocations data" -#: f.meta.cc:2309 +#: f.meta.cc:2304 msgid "Loading geolocations" msgstr "Loading geolocations" -#: f.meta.cc:2737 f.meta.cc:3209 f.meta.cc:3477 +#: f.meta.cc:2741 f.meta.cc:3213 f.meta.cc:3481 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "bad latitude/longitude: %s %s" -#: f.meta.cc:3024 +#: f.meta.cc:3028 msgid "Geocoding web service courtesy of" msgstr "Geocoding web service courtesy of" -#: f.meta.cc:3045 f.meta.cc:3259 f.meta.cc:4772 +#: f.meta.cc:3049 f.meta.cc:3263 f.meta.cc:4778 msgid "city" msgstr "city" -#: f.meta.cc:3048 f.meta.cc:3262 f.meta.cc:4775 +#: f.meta.cc:3052 f.meta.cc:3266 f.meta.cc:4781 msgid "country" msgstr "country" -#: f.meta.cc:3120 f.meta.cc:3390 +#: f.meta.cc:3124 f.meta.cc:3394 msgid "city not found" msgstr "city not found" -#: f.meta.cc:3455 +#: f.meta.cc:3459 msgid "" "data is incomplete \n" " proceed?" @@ -2648,139 +2665,139 @@ "data is incomplete \n" " proceed?" -#: f.meta.cc:3481 f.tools.cc:4844 +#: f.meta.cc:3485 f.tools.cc:5143 msgid "no files selected" msgstr "no files selected" -#: f.meta.cc:3513 +#: f.meta.cc:3517 msgid "choose city" msgstr "choose city" -#: f.meta.cc:3599 +#: f.meta.cc:3603 msgid "not found" msgstr "not found" -#: f.meta.cc:3600 +#: f.meta.cc:3604 msgid "city and country required" msgstr "city and country required" -#: f.meta.cc:3692 +#: f.meta.cc:3696 msgid "Report Geotag Groups" msgstr "Report Geotag Groups" -#: f.meta.cc:3693 +#: f.meta.cc:3697 msgid "Group by country" msgstr "Group by country" -#: f.meta.cc:3694 +#: f.meta.cc:3698 msgid "Group by country/city" msgstr "Group by country/city" -#: f.meta.cc:3695 +#: f.meta.cc:3699 msgid "Group by country/city/date" msgstr "Group by country/city/date" -#: f.meta.cc:3698 +#: f.meta.cc:3702 msgid "Combine within" msgstr "Combine within" -#: f.meta.cc:3700 +#: f.meta.cc:3704 msgid "days" msgstr "days" -#: f.meta.cc:3815 +#: f.meta.cc:3819 msgid "geotag groups" msgstr "geotag groups" -#: f.meta.cc:4043 +#: f.meta.cc:4047 msgid "search range (km)" msgstr "search range (km)" -#: f.meta.cc:4116 +#: f.meta.cc:4120 msgid "No matching images found" msgstr "No matching images found" -#: f.meta.cc:4202 +#: f.meta.cc:4206 msgid "Search Image Metadata" msgstr "Search Image Metadata" -#: f.meta.cc:4206 +#: f.meta.cc:4210 msgid "images to search:" msgstr "images to search:" -#: f.meta.cc:4207 +#: f.meta.cc:4211 msgid "all" msgstr "all" -#: f.meta.cc:4208 +#: f.meta.cc:4212 msgid "current set only" msgstr "current set only" -#: f.meta.cc:4211 +#: f.meta.cc:4215 msgid "matching images:" msgstr "matching images:" -#: f.meta.cc:4212 +#: f.meta.cc:4216 msgid "new set" msgstr "new set" -#: f.meta.cc:4213 +#: f.meta.cc:4217 msgid "add to set" msgstr "add to set" -#: f.meta.cc:4214 +#: f.meta.cc:4218 msgid "remove" msgstr "remove" -#: f.meta.cc:4217 +#: f.meta.cc:4221 msgid "report type:" msgstr "report type:" -#: f.meta.cc:4218 +#: f.meta.cc:4222 msgid "gallery" msgstr "gallery" -#: f.meta.cc:4219 +#: f.meta.cc:4223 msgid "metadata" msgstr "metadata" -#: f.meta.cc:4225 +#: f.meta.cc:4229 msgid "date range" msgstr "date range" -#: f.meta.cc:4226 +#: f.meta.cc:4230 msgid "stars range" msgstr "stars range" -#: f.meta.cc:4227 +#: f.meta.cc:4231 msgid "search tags" msgstr "search tags" -#: f.meta.cc:4228 +#: f.meta.cc:4232 msgid "search text" msgstr "search text" -#: f.meta.cc:4229 +#: f.meta.cc:4233 msgid "search files" msgstr "search files" -#: f.meta.cc:4234 +#: f.meta.cc:4238 msgid "(yyyymmdd)" msgstr "(yyyymmdd)" -#: f.meta.cc:4240 +#: f.meta.cc:4244 msgid "all/any" msgstr "all/any" -#: f.meta.cc:4259 +#: f.meta.cc:4263 msgid "other criteria" msgstr "other criteria" -#: f.meta.cc:4263 +#: f.meta.cc:4267 msgid "other" msgstr "other" -#: f.meta.cc:4398 +#: f.meta.cc:4402 msgid "" "to remove images from current set, \n" "search current set" @@ -2788,7 +2805,7 @@ "to remove images from current set, \n" "search current set" -#: f.meta.cc:4405 +#: f.meta.cc:4409 msgid "" "to add images to current set, \n" "search all images" @@ -2796,28 +2813,28 @@ "to add images to current set, \n" "search all images" -#: f.meta.cc:4632 +#: f.meta.cc:4636 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "images added: %d removed: %d new count: %d" -#: f.meta.cc:4635 +#: f.meta.cc:4639 msgid "no changes made" msgstr "no changes made" -#: f.meta.cc:4769 +#: f.meta.cc:4775 msgid "Add Geotags Search Criteria" msgstr "Add Geotags Search Criteria" -#: f.meta.cc:4788 +#: f.meta.cc:4794 msgid "range (km)" msgstr "range (km)" -#: f.meta.cc:4881 +#: f.meta.cc:4885 msgid "error in latitude/longitude/range" msgstr "error in latitude/longitude/range" -#: f.meta.cc:4946 +#: f.meta.cc:4950 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2825,19 +2842,19 @@ "These items are always reported: \n" "date, stars, tags, caption, comment" -#: f.meta.cc:4970 +#: f.meta.cc:4974 msgid "Additional Items for Report" msgstr "Additional Items for Report" -#: f.meta.cc:4976 +#: f.meta.cc:4980 msgid "Keyword" msgstr "Keyword" -#: f.meta.cc:4983 +#: f.meta.cc:4987 msgid "Match Criteria" msgstr "Match Criteria" -#: f.meta.cc:5554 f.tools.cc:300 +#: f.meta.cc:5558 f.tools.cc:300 msgid "image index is missing" msgstr "image index is missing" @@ -2881,7 +2898,7 @@ "1. Drag mouse to select. \n" "2. Erase. 3. Repeat. " -#: f.repair.cc:1563 fotoxx.h:1048 +#: f.repair.cc:1563 fotoxx.h:1053 msgid "Radius" msgstr "Radius" @@ -3002,87 +3019,95 @@ msgid "Stuck Pixels file" msgstr "Stuck Pixels file" -#: f.repair.cc:4203 +#: f.repair.cc:4203 f.tools.cc:3380 msgid "file format error" msgstr "file format error" -#: f.retouch.cc:292 fotoxx.h:993 +#: f.retouch.cc:292 +msgid "Amplifier" +msgstr "Amplifier" + +#: f.retouch.cc:293 fotoxx.h:998 msgid "Brightness" msgstr "Brightness" -#: f.retouch.cc:293 fotoxx.h:1000 +#: f.retouch.cc:294 fotoxx.h:1005 msgid "Contrast" msgstr "Contrast" -#: f.retouch.cc:294 +#: f.retouch.cc:295 msgid "Low Color" msgstr "Low Color" -#: f.retouch.cc:295 +#: f.retouch.cc:296 msgid "Warmer" msgstr "Warmer" -#: f.retouch.cc:296 +#: f.retouch.cc:297 msgid "Dark Areas" msgstr "Dark Areas" -#: f.retouch.cc:304 f.retouch.cc:305 f.retouch.cc:306 +#: f.retouch.cc:306 +msgid "Max." +msgstr "Max." + +#: f.retouch.cc:307 f.retouch.cc:308 f.retouch.cc:309 msgid "High" msgstr "High" -#: f.retouch.cc:307 +#: f.retouch.cc:310 msgid "Cooler" msgstr "Cooler" -#: f.retouch.cc:308 +#: f.retouch.cc:311 msgid "Bright" msgstr "Bright" -#: f.retouch.cc:311 +#: f.retouch.cc:317 msgid "Click for white balance or black level" msgstr "Click for white balance or black level" -#: f.retouch.cc:957 +#: f.retouch.cc:1067 msgid "low" msgstr "low" -#: f.retouch.cc:959 +#: f.retouch.cc:1069 msgid "high" msgstr "high" -#: f.retouch.cc:962 +#: f.retouch.cc:1072 msgid "Amplify" msgstr "Amplify" -#: f.retouch.cc:1301 +#: f.retouch.cc:1411 msgid "Adjust Brightness Distribution" msgstr "Adjust Brightness Distribution" -#: f.retouch.cc:1339 +#: f.retouch.cc:1449 msgid "Flatten" msgstr "Flatten" -#: f.retouch.cc:1340 +#: f.retouch.cc:1450 msgid "Deband" msgstr "Deband" -#: f.retouch.cc:1341 +#: f.retouch.cc:1451 msgid "Darken" msgstr "Darken" -#: f.retouch.cc:1342 +#: f.retouch.cc:1452 msgid "Brighten" msgstr "Brighten" -#: f.retouch.cc:1675 +#: f.retouch.cc:1784 msgid "Ramp brightness across image" msgstr "Ramp brightness across image" -#: f.retouch.cc:2052 f.tools.cc:5777 +#: f.retouch.cc:2161 f.retouch.cc:2398 f.tools.cc:6085 msgid "Edit function must be active" msgstr "Edit function must be active" -#: f.retouch.cc:2060 fotoxx-14.03.cc:3108 +#: f.retouch.cc:2169 fotoxx-14.04.cc:3132 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -3090,14 +3115,26 @@ "Select area cannot be kept.\n" "Continue?" -#: f.retouch.cc:2089 +#: f.retouch.cc:2198 msgid "power: center" msgstr "power: center" -#: f.retouch.cc:2094 +#: f.retouch.cc:2203 msgid "reset area" msgstr "reset area" +#: f.retouch.cc:2391 +msgid "Edit Function Amplifier" +msgstr "Edit Function Amplifier" + +#: f.retouch.cc:2427 +msgid "minimum" +msgstr "minimum" + +#: f.retouch.cc:2429 +msgid "maximum" +msgstr "maximum" + #: f.tools.cc:95 msgid "Top Image Directories" msgstr "Top Image Directories" @@ -3153,152 +3190,136 @@ msgid "COMPLETED" msgstr "COMPLETED" -#: f.tools.cc:818 +#: f.tools.cc:817 msgid "Settings" msgstr "Settings" -#: f.tools.cc:821 +#: f.tools.cc:820 msgid "Startup Display" msgstr "Startup Display" -#: f.tools.cc:823 +#: f.tools.cc:822 msgid "Recent Files Gallery" msgstr "Recent Files Gallery" -#: f.tools.cc:825 +#: f.tools.cc:824 msgid "Newest Files Gallery" msgstr "Newest Files Gallery" -#: f.tools.cc:827 +#: f.tools.cc:826 msgid "Previous Gallery" msgstr "Previous Gallery" -#: f.tools.cc:829 +#: f.tools.cc:828 msgid "Previous Image" msgstr "Previous Image" -#: f.tools.cc:831 +#: f.tools.cc:830 msgid "Blank Window" msgstr "Blank Window" -#: f.tools.cc:833 +#: f.tools.cc:832 msgid "Directory Gallery" msgstr "Directory Gallery" -#: f.tools.cc:837 +#: f.tools.cc:836 msgid "Image File" msgstr "Image File" -#: f.tools.cc:844 -msgid "Menu Style" -msgstr "Menu Style" - -#: f.tools.cc:845 -msgid "Classic" -msgstr "Classic" - -#: f.tools.cc:846 -msgid "Vertical" -msgstr "Vertical" - -#: f.tools.cc:849 +#: f.tools.cc:843 msgid "Toolbar Style" msgstr "Toolbar Style" -#: f.tools.cc:851 +#: f.tools.cc:845 msgid "Icons" msgstr "Icons" -#: f.tools.cc:852 +#: f.tools.cc:846 msgid "Both" msgstr "Both" -#: f.tools.cc:855 +#: f.tools.cc:849 msgid "Image Pan" msgstr "Image Pan" -#: f.tools.cc:856 +#: f.tools.cc:850 msgid "Drag" msgstr "Drag" -#: f.tools.cc:857 -msgid "Scroll" -msgstr "Scroll" - -#: f.tools.cc:858 +#: f.tools.cc:852 msgid "Magnified" msgstr "Magnified" -#: f.tools.cc:867 +#: f.tools.cc:861 msgid "Default JPEG quality" msgstr "Default JPEG quality" -#: f.tools.cc:871 +#: f.tools.cc:865 msgid "Zooms for 200%" msgstr "Zooms for 200%" -#: f.tools.cc:875 +#: f.tools.cc:869 msgid "RAW command" msgstr "RAW command" -#: f.tools.cc:879 +#: f.tools.cc:873 msgid "RAW file types" msgstr "RAW file types" -#: f.tools.cc:1027 +#: f.tools.cc:1016 msgid "startup directory is invalid" msgstr "startup directory is invalid" -#: f.tools.cc:1035 +#: f.tools.cc:1024 msgid "startup file is invalid" msgstr "startup file is invalid" -#: f.tools.cc:1130 +#: f.tools.cc:1105 msgid "Select startup directory" msgstr "Select startup directory" -#: f.tools.cc:1138 +#: f.tools.cc:1113 msgid "Select startup image file" msgstr "Select startup image file" -#: f.tools.cc:1176 +#: f.tools.cc:1151 msgid "Click list position. Click thumbnail to add." msgstr "Click list position. Click thumbnail to add." -#: f.tools.cc:1201 f.tools.cc:1418 +#: f.tools.cc:1176 f.tools.cc:1393 msgid "Edit Bookmarks" msgstr "Edit Bookmarks" -#: f.tools.cc:1349 +#: f.tools.cc:1324 msgid "unable to save bookmarks file" msgstr "unable to save bookmarks file" -#: f.tools.cc:1418 +#: f.tools.cc:1393 msgid "Go To Bookmark" msgstr "Go To Bookmark" -#: f.tools.cc:1563 +#: f.tools.cc:1538 msgid "Edit KB Shortcuts" msgstr "Edit KB Shortcuts" -#: f.tools.cc:1568 +#: f.tools.cc:1543 msgid "shortcut key:" msgstr "shortcut key:" -#: f.tools.cc:1569 +#: f.tools.cc:1544 msgid "(enter key)" msgstr "(enter key)" -#: f.tools.cc:1695 +#: f.tools.cc:1670 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Reserved, cannot be used" -#: f.tools.cc:1826 +#: f.tools.cc:1801 msgid "unable to save KB-shortcuts file" msgstr "unable to save KB-shortcuts file" -#: f.tools.cc:1914 +#: f.tools.cc:1889 msgid "" "Right-click collection thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -3306,280 +3327,313 @@ "Right-click collection thumbnail to cut/copy \n" "to cache, insert from cache, or remove." -#: f.tools.cc:1955 +#: f.tools.cc:1930 msgid "Start a new collection, add images" msgstr "Start a new collection, add images" -#: f.tools.cc:1957 +#: f.tools.cc:1932 msgid "New collection from current gallery" msgstr "New collection from current gallery" -#: f.tools.cc:1959 +#: f.tools.cc:1934 msgid "Collection to view or edit" msgstr "Collection to view or edit" -#: f.tools.cc:1961 +#: f.tools.cc:1936 msgid "Select images, add to cache" msgstr "Select images, add to cache" -#: f.tools.cc:1963 +#: f.tools.cc:1938 msgid "Clear image cache" msgstr "Clear image cache" -#: f.tools.cc:1964 +#: f.tools.cc:1939 msgid "(0 images)" msgstr "(0 images)" -#: f.tools.cc:1966 +#: f.tools.cc:1941 msgid "Delete a collection" msgstr "Delete a collection" -#: f.tools.cc:1987 +#: f.tools.cc:1962 msgid "New Collection" msgstr "New Collection" -#: f.tools.cc:1988 +#: f.tools.cc:1963 msgid "Choose Collection" msgstr "Choose Collection" -#: f.tools.cc:1989 +#: f.tools.cc:1964 msgid "Delete Collection" msgstr "Delete Collection" -#: f.tools.cc:1990 +#: f.tools.cc:1965 #, c-format msgid "(%d images)" msgstr "(%d images)" -#: f.tools.cc:1991 +#: f.tools.cc:1966 #, c-format msgid "%d images remaining in cache" msgstr "%d images remaining in cache" -#: f.tools.cc:2025 f.tools.cc:2064 +#: f.tools.cc:2000 f.tools.cc:2039 msgid "New collection created" msgstr "New collection created" -#: f.tools.cc:2031 +#: f.tools.cc:2006 msgid "gallery is empty" msgstr "gallery is empty" -#: f.tools.cc:2105 +#: f.tools.cc:2080 #, c-format msgid "delete %s ?" msgstr "delete %s ?" -#: f.tools.cc:2461 +#: f.tools.cc:2436 msgid "all collections" msgstr "all collections" -#: f.tools.cc:2495 +#: f.tools.cc:2470 msgid "Move Collection" msgstr "Move Collection" -#: f.tools.cc:2497 +#: f.tools.cc:2472 msgid "collection name" msgstr "collection name" -#: f.tools.cc:2500 +#: f.tools.cc:2475 msgid "old path segment" msgstr "old path segment" -#: f.tools.cc:2503 +#: f.tools.cc:2478 msgid "new path segment" msgstr "new path segment" -#: f.tools.cc:2592 +#: f.tools.cc:2567 msgid "Replace Collection?" msgstr "Replace Collection?" -#: f.tools.cc:2708 +#: f.tools.cc:2694 msgid "Press ESC to exit slide show" msgstr "Press ESC to exit slide show" -#: f.tools.cc:2709 -msgid "last versions" -msgstr "last versions" - -#: f.tools.cc:2713 +#: f.tools.cc:2696 msgid "instant" msgstr "instant" -#: f.tools.cc:2714 +#: f.tools.cc:2697 msgid "fade-in" msgstr "fade-in" -#: f.tools.cc:2715 +#: f.tools.cc:2698 msgid "roll-right" msgstr "roll-right" -#: f.tools.cc:2716 +#: f.tools.cc:2699 msgid "roll-down" msgstr "roll-down" -#: f.tools.cc:2717 +#: f.tools.cc:2700 msgid "venetian" msgstr "venetian" -#: f.tools.cc:2718 +#: f.tools.cc:2701 msgid "grate" msgstr "grate" -#: f.tools.cc:2719 +#: f.tools.cc:2702 msgid "rectangle" msgstr "rectangle" -#: f.tools.cc:2720 +#: f.tools.cc:2703 msgid "radar" msgstr "radar" -#: f.tools.cc:2721 +#: f.tools.cc:2704 msgid "jaws" msgstr "jaws" -#: f.tools.cc:2722 +#: f.tools.cc:2705 msgid "ellipse" msgstr "ellipse" -#: f.tools.cc:2723 +#: f.tools.cc:2706 msgid "raindrops" msgstr "raindrops" -#: f.tools.cc:2724 +#: f.tools.cc:2707 msgid "doubledoor" msgstr "doubledoor" -#: f.tools.cc:2725 +#: f.tools.cc:2708 msgid "rotate" -msgstr "" +msgstr "rotate" -#: f.tools.cc:2787 -msgid "Pause List" -msgstr "Pause List" +#: f.tools.cc:2739 +msgid "Clip Limit" +msgstr "Clip Limit" -#: f.tools.cc:2794 +#: f.tools.cc:2741 +msgid "Show Captions" +msgstr "Show Captions" + +#: f.tools.cc:2744 +msgid "Music File" +msgstr "Music File" + +#: f.tools.cc:2749 +msgid "Customize:" +msgstr "Customize:" + +#: f.tools.cc:2750 msgid "transitions" msgstr "transitions" -#: f.tools.cc:2796 -msgid "seconds" -msgstr "seconds" - -#: f.tools.cc:2800 -msgid "Clip Limit (%)" -msgstr "Clip Limit (%)" - -#: f.tools.cc:2802 -msgid "show captions" -msgstr "show captions" - -#: f.tools.cc:2805 -msgid "music file" -msgstr "music file" +#: f.tools.cc:2751 +msgid "image files" +msgstr "image files" -#: f.tools.cc:2820 f.tools.cc:2828 f.tools.cc:2956 f.tools.cc:2979 -#: f.tools.cc:2992 +#: f.tools.cc:2759 f.tools.cc:2880 #, c-format msgid "%d images" msgstr "%d images" -#: f.tools.cc:2854 -msgid "no image files selected" -msgstr "no image files selected" +#: f.tools.cc:2781 f.tools.cc:2847 f.tools.cc:2875 f.tools.cc:2937 +#: f.tools.cc:3033 f.tools.cc:3189 f.tools.cc:3236 f.tools.cc:3253 +#: f.tools.cc:3396 +msgid "invalid collection" +msgstr "invalid collection" -#: f.tools.cc:2945 f.tools.cc:2968 +#: f.tools.cc:2860 msgid "open collection" msgstr "open collection" -#: f.tools.cc:3013 +#: f.tools.cc:2900 msgid "Select music file or playlist" msgstr "Select music file or playlist" -#: f.tools.cc:3046 -msgid "invalid collection" -msgstr "invalid collection" - -#: f.tools.cc:3061 f.tools.cc:3131 -msgid "empty collection" -msgstr "empty collection" - -#: f.tools.cc:3167 +#: f.tools.cc:2917 msgid "select random (if 5+ enabled)" msgstr "select random (if 5+ enabled)" -#: f.tools.cc:3186 +#: f.tools.cc:2941 msgid "Transition Preferences" msgstr "Transition Preferences" -#: f.tools.cc:3196 +#: f.tools.cc:2950 msgid "transition" msgstr "transition" -#: f.tools.cc:3197 +#: f.tools.cc:2951 msgid "enabled" msgstr "enabled" -#: f.tools.cc:3198 +#: f.tools.cc:2952 msgid "slowdown" msgstr "slowdown" -#: f.tools.cc:3199 +#: f.tools.cc:2953 msgid "preference" msgstr "preference" -#: f.tools.cc:4506 +#: f.tools.cc:3037 +msgid "Image Preferences" +msgstr "Image Preferences" + +#: f.tools.cc:3041 f.tools.cc:3090 f.tools.cc:3202 +msgid "Image File:" +msgstr "Image File:" + +#: f.tools.cc:3044 +msgid "Play tone" +msgstr "Play tone" + +#: f.tools.cc:3046 +msgid "Transition" +msgstr "Transition" + +#: f.tools.cc:3051 f.tools.cc:3071 +msgid "+Seconds" +msgstr "+Seconds" + +#: f.tools.cc:3053 +msgid "before zoom" +msgstr "before zoom" + +#: f.tools.cc:3056 +msgid "Zoom size %" +msgstr "Zoom size %" + +#: f.tools.cc:3059 +msgid "Steps" +msgstr "Steps" + +#: f.tools.cc:3063 +msgid "Zoom center" +msgstr "Zoom center" + +#: f.tools.cc:3073 +msgid "after zoom" +msgstr "after zoom" + +#: f.tools.cc:3075 +msgid "next" +msgstr "next" + +#: f.tools.cc:4805 msgid "base" msgstr "base" -#: f.tools.cc:4508 +#: f.tools.cc:4807 msgid "adder" msgstr "adder" -#: f.tools.cc:4512 +#: f.tools.cc:4811 msgid "New Location" msgstr "New Location" -#: f.tools.cc:4517 +#: f.tools.cc:4816 msgid "New File Type" msgstr "New File Type" -#: f.tools.cc:4521 f.tools.cc:4529 +#: f.tools.cc:4820 f.tools.cc:4828 msgid "no change" msgstr "no change" -#: f.tools.cc:4524 +#: f.tools.cc:4823 msgid "max. Width" msgstr "max. Width" -#: f.tools.cc:4527 fotoxx.h:1020 +#: f.tools.cc:4826 fotoxx.h:1025 msgid "Height" msgstr "Height" -#: f.tools.cc:4532 f.tools.cc:4905 +#: f.tools.cc:4831 f.tools.cc:5204 msgid "Delete Originals" msgstr "Delete Originals" -#: f.tools.cc:4533 f.tools.cc:4902 +#: f.tools.cc:4832 f.tools.cc:5201 msgid "Copy Metadata" msgstr "Copy Metadata" -#: f.tools.cc:4534 f.tools.cc:4903 +#: f.tools.cc:4833 f.tools.cc:5202 msgid "Upright" msgstr "Upright" -#: f.tools.cc:4626 +#: f.tools.cc:4925 msgid "file already exists" msgstr "file already exists" -#: f.tools.cc:4634 +#: f.tools.cc:4933 msgid "file type not supported" msgstr "file type not supported" -#: f.tools.cc:4703 +#: f.tools.cc:5002 msgid "cannot create new file" msgstr "cannot create new file" -#: f.tools.cc:4854 +#: f.tools.cc:5153 msgid "" "new name/base/adder unreasonable\n" " e.g. newname ### 100 10" @@ -3587,117 +3641,117 @@ "new name/base/adder unreasonable\n" " e.g. newname ### 100 10" -#: f.tools.cc:4877 +#: f.tools.cc:5176 #, c-format msgid "max. size %d x %d is not reasonable" msgstr "max. size %d x %d is not reasonable" -#: f.tools.cc:4896 +#: f.tools.cc:5195 #, c-format msgid "Convert %d image files" msgstr "Convert %d image files" -#: f.tools.cc:4897 +#: f.tools.cc:5196 msgid "Rename to" msgstr "Rename to" -#: f.tools.cc:4898 +#: f.tools.cc:5197 msgid "Convert to" msgstr "Convert to" -#: f.tools.cc:4899 +#: f.tools.cc:5198 msgid "Resize within" msgstr "Resize within" -#: f.tools.cc:4900 +#: f.tools.cc:5199 msgid "Output to" msgstr "Output to" -#: f.tools.cc:4906 +#: f.tools.cc:5205 msgid "PROCEED?" msgstr "PROCEED?" -#: f.tools.cc:4938 +#: f.tools.cc:5237 msgid "Batch Convert RAW Files" msgstr "Batch Convert RAW Files" -#: f.tools.cc:4969 +#: f.tools.cc:5268 msgid "output file type" msgstr "output file type" -#: f.tools.cc:4981 +#: f.tools.cc:5280 msgid "white balance" msgstr "white balance" -#: f.tools.cc:4982 +#: f.tools.cc:5281 msgid "interpolation" msgstr "interpolation" -#: f.tools.cc:4983 +#: f.tools.cc:5282 msgid "color space" msgstr "color space" -#: f.tools.cc:4984 +#: f.tools.cc:5283 msgid "gamma curve" msgstr "gamma curve" -#: f.tools.cc:4987 +#: f.tools.cc:5286 msgid "camera" msgstr "camera" -#: f.tools.cc:4988 +#: f.tools.cc:5287 msgid "fixed" msgstr "fixed" -#: f.tools.cc:4989 +#: f.tools.cc:5288 msgid "calculated" msgstr "calculated" -#: f.tools.cc:5006 +#: f.tools.cc:5305 msgid "default" msgstr "default" -#: f.tools.cc:5012 +#: f.tools.cc:5311 msgid "defaults" msgstr "defaults" -#: f.tools.cc:5526 +#: f.tools.cc:5834 msgid "x-spacing" msgstr "x-spacing" -#: f.tools.cc:5527 +#: f.tools.cc:5835 msgid "x-count" msgstr "x-count" -#: f.tools.cc:5528 +#: f.tools.cc:5836 msgid "x-enable" msgstr "x-enable" -#: f.tools.cc:5534 +#: f.tools.cc:5842 msgid "y-spacing" msgstr "y-spacing" -#: f.tools.cc:5535 +#: f.tools.cc:5843 msgid "y-count" msgstr "y-count" -#: f.tools.cc:5536 +#: f.tools.cc:5844 msgid "y-enable" msgstr "y-enable" -#: f.tools.cc:5984 +#: f.tools.cc:6292 msgid "Darkest and Brightest Pixels" msgstr "Darkest and Brightest Pixels" -#: f.tools.cc:6007 +#: f.tools.cc:6315 msgid "Dark Limit" msgstr "Dark Limit" -#: f.tools.cc:6008 +#: f.tools.cc:6316 msgid "Bright Limit" msgstr "Bright Limit" -#: f.tools.cc:6115 +#: f.tools.cc:6423 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3705,31 +3759,31 @@ "Brightness should show a gradual ramp \n" "extending all the way to the edges." -#: f.tools.cc:6272 +#: f.tools.cc:6580 msgid "Available Translations" msgstr "Available Translations" -#: f.tools.cc:6276 +#: f.tools.cc:6584 msgid "Set Language" msgstr "Set Language" -#: f.tools.cc:6364 +#: f.tools.cc:6672 msgid "Make Launcher" msgstr "Make Launcher" -#: fotoxx-14.03.cc:312 +#: fotoxx-14.04.cc:309 msgid "Tab F: image file view/edit" msgstr "Tab F: image file view/edit" -#: fotoxx-14.03.cc:321 +#: fotoxx-14.04.cc:318 msgid "Tab G: image gallery" msgstr "Tab G: image gallery" -#: fotoxx-14.03.cc:330 +#: fotoxx-14.04.cc:327 msgid "Tab W: world map" msgstr "Tab W: world map" -#: fotoxx-14.03.cc:447 +#: fotoxx-14.04.cc:441 msgid "" "First time Fotoxx startup. \n" "Latest version: http://www.kornelix.com/fotoxx \n" @@ -3739,59 +3793,63 @@ "Latest version: http://www.kornelix.com/fotoxx \n" "File sync process will begin (may need some time) \n" -#: fotoxx-14.03.cc:492 +#: fotoxx-14.04.cc:488 msgid "Please install missing programs:" msgstr "Please install missing programs:" -#: fotoxx-14.03.cc:901 +#: fotoxx-14.04.cc:904 msgid "(reduced)" msgstr "(reduced" -#: fotoxx-14.03.cc:902 +#: fotoxx-14.04.cc:905 msgid "area active" msgstr "area active" -#: fotoxx-14.03.cc:903 +#: fotoxx-14.04.cc:906 msgid "dialog open" msgstr "dialog open" -#: fotoxx-14.03.cc:904 +#: fotoxx-14.04.cc:907 msgid "function busy" msgstr "function busy" -#: fotoxx-14.03.cc:905 +#: fotoxx-14.04.cc:908 msgid "file index busy" msgstr "file index busy" -#: fotoxx-14.03.cc:906 +#: fotoxx-14.04.cc:909 msgid "menu locked" msgstr "menu locked" -#: fotoxx-14.03.cc:953 +#: fotoxx-14.04.cc:956 msgid "edits" msgstr "edits" -#: fotoxx-14.03.cc:999 +#: fotoxx-14.04.cc:1002 msgid "Kill active dialog?" msgstr "Kill active dialog?" -#: fotoxx-14.03.cc:2768 +#: fotoxx-14.04.cc:1082 +msgid "Location from World Map" +msgstr "Location from World Map" + +#: fotoxx-14.04.cc:2792 msgid "Exceed 50 anchor points" msgstr "Exceed 50 anchor points" -#: fotoxx-14.03.cc:2951 +#: fotoxx-14.04.cc:2975 msgid "load curve from a file" msgstr "load curve from a file" -#: fotoxx-14.03.cc:3026 +#: fotoxx-14.04.cc:3050 msgid "save curve to a file" msgstr "save curve to a file" -#: fotoxx-14.03.cc:3101 +#: fotoxx-14.04.cc:3125 msgid "Too many edits, please save image" msgstr "Too many edits, please save image" -#: fotoxx-14.03.cc:3116 +#: fotoxx-14.04.cc:3140 msgid "" "Select area not active.\n" "Continue?" @@ -3799,288 +3857,292 @@ "Select area not active.\n" "Continue?" -#: fotoxx-14.03.cc:3503 +#: fotoxx-14.04.cc:3527 msgid "This action will discard changes\n" msgstr "This action will discard changes\n" -#: fotoxx-14.03.cc:3504 fotoxx.h:1026 +#: fotoxx-14.04.cc:3528 fotoxx.h:1031 msgid "Keep" msgstr "Keep" -#: fotoxx-14.03.cc:3505 +#: fotoxx-14.04.cc:3529 msgid "Discard" msgstr "Discard" -#: fotoxx-14.03.cc:3519 fotoxx-14.03.cc:3539 +#: fotoxx-14.04.cc:3543 fotoxx-14.04.cc:3563 msgid "prior function active" msgstr "prior function active" -#: fotoxx.h:983 +#: fotoxx.h:988 msgid "Add" msgstr "Add" -#: fotoxx.h:984 +#: fotoxx.h:989 msgid "Add All" msgstr "Add All" -#: fotoxx.h:986 +#: fotoxx.h:991 msgid "Amount" msgstr "Amount" -#: fotoxx.h:987 +#: fotoxx.h:992 msgid "Angle" msgstr "Angle" -#: fotoxx.h:988 +#: fotoxx.h:993 msgid "Apply" msgstr "Apply" -#: fotoxx.h:989 +#: fotoxx.h:994 msgid "Autocomplete" msgstr "Autocomplete" -#: fotoxx.h:990 +#: fotoxx.h:995 msgid "Black" msgstr "Black" -#: fotoxx.h:991 +#: fotoxx.h:996 msgid "Blend Width" msgstr "Blend Width" -#: fotoxx.h:994 +#: fotoxx.h:999 msgid "Browse" msgstr "Browse" -#: fotoxx.h:995 +#: fotoxx.h:1000 msgid "Cancel" msgstr "Cancel" -#: fotoxx.h:996 +#: fotoxx.h:1001 msgid "center" msgstr "center" -#: fotoxx.h:997 +#: fotoxx.h:1002 msgid "Choose" msgstr "Choose" -#: fotoxx.h:998 +#: fotoxx.h:1003 msgid "Clear" msgstr "Clear" -#: fotoxx.h:1002 +#: fotoxx.h:1007 msgid "Create" msgstr "Create" -#: fotoxx.h:1003 +#: fotoxx.h:1008 msgid "Curve File:" msgstr "Curve File:" -#: fotoxx.h:1004 +#: fotoxx.h:1009 msgid "Cut" msgstr "Cut" -#: fotoxx.h:1005 +#: fotoxx.h:1010 msgid "Delete" msgstr "Delete" -#: fotoxx.h:1007 -msgid "Bdist" -msgstr "Bdist" +#: fotoxx.h:1012 +msgid "Dist" +msgstr "Dist" -#: fotoxx.h:1008 +#: fotoxx.h:1013 msgid "Done" msgstr "Done" -#: fotoxx.h:1009 +#: fotoxx.h:1014 msgid "edge" msgstr "edge" -#: fotoxx.h:1010 +#: fotoxx.h:1015 msgid "Edit" msgstr "Edit" -#: fotoxx.h:1012 +#: fotoxx.h:1017 msgid "Erase" msgstr "Erase" -#: fotoxx.h:1013 +#: fotoxx.h:1018 msgid "Fetch" msgstr "Fetch" -#: fotoxx.h:1014 +#: fotoxx.h:1019 msgid "Find" msgstr "Find" -#: fotoxx.h:1015 +#: fotoxx.h:1020 msgid "Finish" msgstr "Finish" -#: fotoxx.h:1016 +#: fotoxx.h:1021 msgid "Font" msgstr "Font" -#: fotoxx.h:1017 +#: fotoxx.h:1022 msgid "Geotags" msgstr "Geotags" -#: fotoxx.h:1019 +#: fotoxx.h:1024 msgid "Grid" msgstr "Grid" -#: fotoxx.h:1023 +#: fotoxx.h:1028 msgid "Images" msgstr "Images" -#: fotoxx.h:1024 +#: fotoxx.h:1029 msgid "Insert" msgstr "Insert" -#: fotoxx.h:1027 +#: fotoxx.h:1032 msgid "limit" msgstr "limit" -#: fotoxx.h:1028 +#: fotoxx.h:1033 msgid "Make" msgstr "Make" -#: fotoxx.h:1030 +#: fotoxx.h:1035 msgid "Map" msgstr "Map" -#: fotoxx.h:1031 +#: fotoxx.h:1036 msgid "Max" msgstr "Max" -#: fotoxx.h:1032 +#: fotoxx.h:1037 msgid "Negative" msgstr "Negative" -#: fotoxx.h:1033 +#: fotoxx.h:1038 msgid "New" msgstr "New" -#: fotoxx.h:1035 zfuncs.cc:8589 +#: fotoxx.h:1040 zfuncs.cc:8589 msgid "No" msgstr "No" -#: fotoxx.h:1036 +#: fotoxx.h:1041 msgid "no images" msgstr "no images" -#: fotoxx.h:1037 +#: fotoxx.h:1042 msgid "no selection" msgstr "no selection" -#: fotoxx.h:1038 +#: fotoxx.h:1043 msgid "OK" msgstr "OK" -#: fotoxx.h:1040 +#: fotoxx.h:1045 msgid "Open RAW File" msgstr "Open RAW File" -#: fotoxx.h:1042 +#: fotoxx.h:1047 msgid "Pause" msgstr "Pause" -#: fotoxx.h:1043 +#: fotoxx.h:1048 msgid "Percent" msgstr "Percent" -#: fotoxx.h:1045 +#: fotoxx.h:1050 msgid "Presets" msgstr "Presets" -#: fotoxx.h:1047 +#: fotoxx.h:1052 msgid "Proceed" msgstr "Proceed" -#: fotoxx.h:1049 +#: fotoxx.h:1054 msgid "range" msgstr "range" -#: fotoxx.h:1052 +#: fotoxx.h:1057 msgid "Reduce" msgstr "Reduce" -#: fotoxx.h:1053 +#: fotoxx.h:1058 msgid "Remove" msgstr "Remove" -#: fotoxx.h:1055 +#: fotoxx.h:1060 msgid "Reset" msgstr "Reset" -#: fotoxx.h:1056 +#: fotoxx.h:1061 msgid "Rotate" msgstr "Rotate" -#: fotoxx.h:1058 +#: fotoxx.h:1063 msgid "Unknown file type, save as tiff/jpeg/png to edit" msgstr "Unknown file type, save as tiff/jpeg/png to edit" -#: fotoxx.h:1059 +#: fotoxx.h:1064 msgid "Search" msgstr "Search" -#: fotoxx.h:1063 +#: fotoxx.h:1065 +msgid "Seconds" +msgstr "Seconds" + +#: fotoxx.h:1069 msgid "Size" msgstr "Size" -#: fotoxx.h:1064 +#: fotoxx.h:1070 msgid "Start" msgstr "Start" -#: fotoxx.h:1065 +#: fotoxx.h:1071 msgid "Strength" msgstr "Strength" -#: fotoxx.h:1066 +#: fotoxx.h:1072 msgid "Threshold" msgstr "Threshold" -#: fotoxx.h:1067 +#: fotoxx.h:1073 #, c-format msgid "exceed %d files" msgstr "exceed %d files" -#: fotoxx.h:1069 +#: fotoxx.h:1075 msgid "Trim" msgstr "Trim" -#: fotoxx.h:1070 +#: fotoxx.h:1076 msgid "Undo All" msgstr "Undo All" -#: fotoxx.h:1071 +#: fotoxx.h:1077 msgid "Undo Last" msgstr "Undo Last" -#: fotoxx.h:1073 +#: fotoxx.h:1079 msgid "Unfinish" msgstr "Unfinish" -#: fotoxx.h:1075 +#: fotoxx.h:1081 msgid "View" msgstr "View" -#: fotoxx.h:1076 +#: fotoxx.h:1082 msgid "Web" msgstr "Web" -#: fotoxx.h:1077 +#: fotoxx.h:1083 msgid "White" msgstr "White" -#: fotoxx.h:1079 +#: fotoxx.h:1085 msgid "x-offset" msgstr "x-offset" -#: fotoxx.h:1080 +#: fotoxx.h:1086 msgid "y-offset" msgstr "y-offset" -#: fotoxx.h:1081 zfuncs.cc:8589 +#: fotoxx.h:1087 zfuncs.cc:8589 msgid "Yes" msgstr "Yes" @@ -4235,11 +4297,32 @@ msgid "add parameter" msgstr "add parameter" -#~ msgid "select random" -#~ msgstr "select random" +#~ msgid "Add seconds" +#~ msgstr "Add seconds" + +#~ msgid "Tone" +#~ msgstr "Tone" + +#~ msgid "Transition:" +#~ msgstr "Transition:" + +#~ msgid "Zoom %:" +#~ msgstr "Zoom %:" + +#~ msgid "Steps:" +#~ msgstr "Steps:" + +#~ msgid "Center X:" +#~ msgstr "Center X:" + +#~ msgid "Zoom:" +#~ msgstr "Zoom:" + +#~ msgid "Magnify" +#~ msgstr "Magnify" -#~ msgid "page-flip" -#~ msgstr "page-flip" +#~ msgid "Add pattern" +#~ msgstr "Add pattern" -#~ msgid "shift-left" -#~ msgstr "shift-left" +#~ msgid "Pattern size" +#~ msgstr "Pattern size" diff -Nru fotoxx-14.03/locales/translate-es.po fotoxx-14.04/locales/translate-es.po --- fotoxx-14.03/locales/translate-es.po 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/locales/translate-es.po 2014-04-01 06:09:31.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: home 2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-01 08:51+0100\n" +"POT-Creation-Date: 2014-04-01 08:04+0200\n" "PO-Revision-Date: 2013-12-29 23:39+0100\n" "Last-Translator: Josep Antoni Miralles Puignau \n" "Language-Team: nLanguage: es\n" @@ -21,7 +21,7 @@ msgid "Select Area for Edits" msgstr "Seleccionar área para editar" -#: f.area.cc:57 f.retouch.cc:2051 +#: f.area.cc:57 f.retouch.cc:2160 msgid "Press F1 for help" msgstr "Pulsar F1 para ayuda" @@ -65,7 +65,7 @@ msgid "select all matching colors within mouse" msgstr "seleccionar todos los colores coincidentes con el ratón" -#: f.area.cc:115 f.retouch.cc:2086 +#: f.area.cc:115 f.retouch.cc:2195 msgid "mouse radius" msgstr "radio del cursor" @@ -157,7 +157,7 @@ msgid "save select area to a file" msgstr "Guardar el área seleccionada en un archivo" -#: f.bend.cc:72 f.menus.cc:246 +#: f.bend.cc:72 f.menus.cc:208 msgid "Unbend" msgstr "Enderezar" @@ -185,7 +185,7 @@ " Pulsar en las cuatro esquinas del área tetragonal. Pulsar [Aplicar]. \n" " La imagen será deformada para hacer que el tetrágono sea un rectángulo." -#: f.bend.cc:353 f.menus.cc:247 +#: f.bend.cc:353 f.menus.cc:209 msgid "Keystone Correction" msgstr "Corrección de Keystone" @@ -235,7 +235,7 @@ " Dar varios tirones con el ratón hasta que quede satisfecho. \n" " Cuando esté terminado, seleccionar otra área o pulsar [Hecho]." -#: f.bend.cc:1105 f.menus.cc:249 +#: f.bend.cc:1105 f.menus.cc:211 msgid "Warp area" msgstr "Deformar área" @@ -257,7 +257,7 @@ " Dar varios tirones con el ratón hasta que quede satisfecho. \n" " Cuando haya terminado, pulsar [Hecho]." -#: f.bend.cc:1520 f.menus.cc:250 +#: f.bend.cc:1520 f.menus.cc:212 msgid "Warp curved" msgstr "Deformar curvada" @@ -265,7 +265,7 @@ msgid "warp span" msgstr "deformar lapso" -#: f.bend.cc:1830 f.menus.cc:251 +#: f.bend.cc:1830 f.menus.cc:213 msgid "Warp linear" msgstr "Deformar lineal" @@ -279,15 +279,15 @@ " Dar varios tirones con el ratón hasta que quede satisfecho. \n" " Cuando haya terminado, pulse [Hecho]." -#: f.bend.cc:2161 f.menus.cc:252 +#: f.bend.cc:2161 f.menus.cc:214 msgid "Warp affine" msgstr "Deformar afín" -#: f.color.cc:64 f.menus.cc:239 +#: f.color.cc:64 f.menus.cc:201 msgid "Shift Colors" msgstr "Modificar colores" -#: f.color.cc:285 f.menus.cc:240 +#: f.color.cc:285 f.menus.cc:202 msgid "Color Mode" msgstr "Modo de color" @@ -340,8 +340,8 @@ msgid "mouse radius for color sample" msgstr "radio del ratón para muestra de color" -#: f.color.cc:609 f.color.cc:614 f.file.cc:4220 f.menus.cc:208 f.menus.cc:297 -#: f.menus.cc:433 fotoxx.h:1039 +#: f.color.cc:609 f.color.cc:614 f.file.cc:4222 f.menus.cc:172 f.menus.cc:255 +#: f.menus.cc:349 fotoxx.h:1044 msgid "Open" msgstr "Abrir" @@ -365,11 +365,11 @@ msgid "select source image color first" msgstr "seleccionar primero el color de la imagen de origen" -#: f.color.cc:872 f.tools.cc:5665 +#: f.color.cc:872 f.tools.cc:5973 msgid "Click image to select pixels." msgstr "Pulsar en la imagen para seleccionar los píxeles." -#: f.color.cc:911 f.menus.cc:243 +#: f.color.cc:911 f.menus.cc:205 msgid "Revise RGB" msgstr "Revisar RGB" @@ -397,15 +397,15 @@ msgid "+Blue -Yellow" msgstr "+Azul -Amarillo" -#: f.color.cc:1382 fotoxx.h:1050 +#: f.color.cc:1382 fotoxx.h:1055 msgid "Red" msgstr "Rojo" -#: f.color.cc:1383 fotoxx.h:1018 +#: f.color.cc:1383 fotoxx.h:1023 msgid "Green" msgstr "Verde" -#: f.color.cc:1384 fotoxx.h:992 +#: f.color.cc:1384 fotoxx.h:997 msgid "Blue" msgstr "Azul" @@ -438,7 +438,7 @@ msgstr "Pintar y deformar imagen" #: f.combine.cc:2831 f.combine.cc:3485 f.combine.cc:4902 f.combine.cc:5801 -#: f.effects.cc:3478 f.menus.cc:60 f.menus.cc:121 +#: f.effects.cc:3546 f.menus.cc:87 msgid "Image" msgstr "Imagen" @@ -506,7 +506,7 @@ msgid "no curve (scanned image)" msgstr "sin curvatura (imagen escaneada)" -#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:214 f.menus.cc:473 +#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:178 f.menus.cc:386 msgid "Resize" msgstr "Redimensionar" @@ -670,7 +670,7 @@ msgid "Gradual" msgstr "" -#: f.combine.cc:6842 fotoxx.h:1044 +#: f.combine.cc:6842 fotoxx.h:1049 msgid "Power" msgstr "Fuerza" @@ -683,7 +683,7 @@ msgid "Enter text, click/drag on image." msgstr "Introducir texto, lic/arrastrar en la imagen" -#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:850 +#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:844 msgid "Text" msgstr "Texto" @@ -703,8 +703,8 @@ msgid "shadow" msgstr "sombra" -#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:63 f.menus.cc:124 -#: f.menus.cc:292 fotoxx.h:999 +#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:90 f.menus.cc:251 +#: fotoxx.h:1004 msgid "Color" msgstr "Color" @@ -712,7 +712,7 @@ msgid "Transparency" msgstr "Transparencia" -#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1078 +#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1084 msgid "Width" msgstr "Ancho" @@ -757,7 +757,7 @@ msgid "black/white" msgstr " negro/blanco" -#: f.effects.cc:989 f.menus.cc:257 +#: f.effects.cc:989 f.menus.cc:219 msgid "Graduated Blur" msgstr "Desenfoque graduado" @@ -825,7 +825,7 @@ msgid "borders" msgstr "bordes" -#: f.effects.cc:2474 f.menus.cc:262 +#: f.effects.cc:2474 f.menus.cc:224 msgid "Vignette" msgstr "Viñetado" @@ -833,48 +833,64 @@ msgid "Add Texture" msgstr "" -#: f.effects.cc:3040 -msgid "Add pattern" +#: f.effects.cc:3043 +msgid "Background Pattern" msgstr "" -#: f.effects.cc:3044 f.menus.cc:264 -msgid "Pattern" +#: f.effects.cc:3047 +msgid "Pattern File:" +msgstr "" + +#: f.effects.cc:3052 +msgid "Geometry" +msgstr "" + +#: f.effects.cc:3053 +msgid "Calculate" +msgstr "" + +#: f.effects.cc:3055 +msgid "Zoom" msgstr "" -#: f.effects.cc:3051 -msgid "Pattern size" +#: f.effects.cc:3066 f.menus.cc:226 +msgid "Pattern" msgstr "" -#: f.effects.cc:3062 f.effects.cc:3066 +#: f.effects.cc:3073 msgid "Overlap" msgstr "" -#: f.effects.cc:3107 +#: f.effects.cc:3080 +msgid "Opacity" +msgstr "" + +#: f.effects.cc:3116 msgid "choose pattern tile" msgstr "" -#: f.effects.cc:3382 +#: f.effects.cc:3450 msgid "Create Mosaic" msgstr "" -#: f.effects.cc:3468 +#: f.effects.cc:3536 msgid "Tile" msgstr "" -#: f.effects.cc:3476 f.menus.cc:259 +#: f.effects.cc:3544 f.menus.cc:221 msgid "Tiles" msgstr "Mosaico" -#: f.effects.cc:3482 +#: f.effects.cc:3550 msgid "Tile blending" msgstr "" -#: f.effects.cc:3560 +#: f.effects.cc:3628 #, c-format msgid "exceeded max. tiles: %d" msgstr "" -#: f.effects.cc:3575 +#: f.effects.cc:3643 #, c-format msgid "only %d tile images found" msgstr "" @@ -887,7 +903,7 @@ msgid "no more images" msgstr "no hay más imágenes" -#: f.file.cc:330 f.menus.cc:153 f.menus.cc:482 +#: f.file.cc:330 f.menus.cc:118 f.menus.cc:395 msgid "Open RAW file (ufraw)" msgstr "Abrir archivo RAW (ufraw)" @@ -944,7 +960,7 @@ "¿Sobreescribir archivo? \n" " %s" -#: f.file.cc:836 f.menus.cc:155 +#: f.file.cc:836 f.menus.cc:120 msgid "Rename Image File" msgstr "Renombrar archivo de imagen" @@ -952,7 +968,7 @@ msgid "Old Name" msgstr "nombre antiguo" -#: f.file.cc:844 f.tools.cc:4504 +#: f.file.cc:844 f.tools.cc:4803 msgid "New Name" msgstr "nombre nuevo" @@ -1000,7 +1016,7 @@ msgid "new location" msgstr "nueva ubicación" -#: f.file.cc:1233 f.tools.cc:4809 +#: f.file.cc:1233 f.tools.cc:5108 msgid "Select directory" msgstr "seleccionar directorio" @@ -1025,7 +1041,7 @@ msgid "(automatic step to next image)" msgstr "(pase automático a la nueva imagen)" -#: f.file.cc:1457 f.menus.cc:157 +#: f.file.cc:1457 f.menus.cc:122 msgid "Trash Image File" msgstr "Enviar imagen a la papelera" @@ -1071,7 +1087,7 @@ " %s" msgstr "" -#: f.file.cc:2191 f.menus.cc:149 +#: f.file.cc:2191 f.menus.cc:114 msgid "Open Image File" msgstr "Abrir archivo de imagen" @@ -1093,103 +1109,107 @@ msgid "file type not supported: %s" msgstr "tipo de archivo no soportado: %s" -#: f.file.cc:4209 f.menus.cc:296 f.menus.cc:432 +#: f.file.cc:4209 f.file.cc:4291 f.menus.cc:360 f.tools.cc:851 +msgid "Scroll" +msgstr "Desplazar" + +#: f.file.cc:4211 f.menus.cc:254 f.menus.cc:348 msgid "Sync.G" msgstr "Sincr.G" -#: f.file.cc:4221 +#: f.file.cc:4223 msgid "change directory" msgstr "cambiar directorio" -#: f.file.cc:4229 f.menus.cc:434 +#: f.file.cc:4231 f.menus.cc:350 msgid "GoTo" msgstr "Ir a" -#: f.file.cc:4234 f.menus.cc:437 +#: f.file.cc:4236 f.menus.cc:353 msgid "Sort" msgstr "Ordenar" -#: f.file.cc:4241 f.file.cc:4665 f.file.cc:4666 f.file.cc:4668 f.menus.cc:435 +#: f.file.cc:4243 f.file.cc:4657 f.file.cc:4658 f.file.cc:4660 f.menus.cc:351 msgid "Zoom+" msgstr "Zoom +" -#: f.file.cc:4252 f.file.cc:4667 f.file.cc:4669 f.menus.cc:436 +#: f.file.cc:4254 f.file.cc:4659 f.file.cc:4661 f.menus.cc:352 msgid "Zoom-" msgstr "Zoom -" -#: f.file.cc:4265 f.file.cc:4673 f.menus.cc:442 +#: f.file.cc:4267 f.file.cc:4665 f.menus.cc:358 msgid "Row↑" msgstr "Fila ↑" -#: f.file.cc:4277 f.file.cc:4674 f.menus.cc:443 +#: f.file.cc:4279 f.file.cc:4666 f.menus.cc:359 msgid "Row↓" msgstr "Fila ↓" -#: f.file.cc:4289 f.file.cc:4676 f.menus.cc:438 +#: f.file.cc:4309 f.file.cc:4668 f.menus.cc:354 msgid "First" msgstr "Primera" -#: f.file.cc:4290 f.file.cc:4677 f.menus.cc:439 +#: f.file.cc:4310 f.file.cc:4669 f.menus.cc:355 msgid "Last" msgstr "Última" -#: f.file.cc:4291 f.file.cc:4671 f.file.cc:4678 f.menus.cc:440 +#: f.file.cc:4311 f.file.cc:4663 f.file.cc:4670 f.menus.cc:356 msgid "Page↑" msgstr "Página ↑" -#: f.file.cc:4292 f.file.cc:4672 f.file.cc:4679 f.menus.cc:441 +#: f.file.cc:4312 f.file.cc:4664 f.file.cc:4671 f.menus.cc:357 msgid "Page↓" msgstr "Página ↓" -#: f.file.cc:4342 +#: f.file.cc:4366 msgid "Choose image directory" msgstr "" -#: f.file.cc:4348 f.file.cc:4363 +#: f.file.cc:4372 f.file.cc:4387 msgid "recent" msgstr "reciente" -#: f.file.cc:4349 f.file.cc:4368 +#: f.file.cc:4373 f.file.cc:4392 msgid "newest" msgstr " más reciente" -#: f.file.cc:4350 f.file.cc:4377 +#: f.file.cc:4374 f.file.cc:4401 msgid "collections" msgstr "colecciones" -#: f.file.cc:4423 f.tools.cc:2476 +#: f.file.cc:4449 f.tools.cc:2451 msgid "no collections found" msgstr "no se han encontrado colecciones" -#: f.file.cc:4430 +#: f.file.cc:4456 msgid "Choose collection" msgstr "escoger colección" -#: f.file.cc:4475 +#: f.file.cc:4503 msgid "Gallery Sort" msgstr "Ordenar galería " -#: f.file.cc:4479 +#: f.file.cc:4507 msgid "File Name" msgstr "Nombre de archivo" -#: f.file.cc:4480 +#: f.file.cc:4508 msgid "File Mod Date/Time" msgstr "Modo de archivo Fecha/Hora" -#: f.file.cc:4481 +#: f.file.cc:4509 msgid "Photo Date/Time (EXIF)" msgstr "Fecha/Hora de la foto (EXIF)" -#: f.file.cc:4483 +#: f.file.cc:4511 msgid "ascending" msgstr "ascendente" -#: f.file.cc:4484 +#: f.file.cc:4512 msgid "descending" msgstr " descendente" -#: f.file.cc:5542 fotoxx.h:1061 +#: f.file.cc:5534 fotoxx.h:1067 msgid "Select Files" msgstr "Seleccionar archivos" @@ -1215,7 +1235,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Rotación : arrastrar al lado derecho con el ratón" -#: f.image.cc:302 f.menus.cc:212 f.menus.cc:472 +#: f.image.cc:302 f.menus.cc:176 f.menus.cc:385 msgid "Trim/Rotate" msgstr "Recortar/Girar" @@ -1231,7 +1251,7 @@ msgid "Lock Ratio" msgstr "Bloquear la relación" -#: f.image.cc:326 f.tools.cc:2793 +#: f.image.cc:326 msgid "Customize" msgstr "Personalizar" @@ -1267,7 +1287,7 @@ msgid "Resize Image" msgstr "Redimensionar imagen" -#: f.image.cc:1650 f.menus.cc:215 +#: f.image.cc:1650 f.menus.cc:179 msgid "Flip" msgstr "Voltear" @@ -1309,1124 +1329,1129 @@ msgid "plugin failed" msgstr "falló el complemento" -#: f.menus.cc:56 f.menus.cc:117 -msgid "File" -msgstr "Archivo" - -#: f.menus.cc:57 f.menus.cc:118 -msgid "Tools" -msgstr "Herramientas" - -#: f.menus.cc:58 f.menus.cc:119 f.menus.cc:462 -msgid "Metadata" -msgstr "Metadatos" - -#: f.menus.cc:59 f.menus.cc:120 -msgid "Areas" -msgstr "Areas" - -#: f.menus.cc:61 f.menus.cc:122 -msgid "Retouch" -msgstr "Retocar" - -#: f.menus.cc:62 f.menus.cc:123 -msgid "Repair" -msgstr "Reparar" - -#: f.menus.cc:64 f.menus.cc:125 -msgid "Bend" -msgstr "Deformar" - -#: f.menus.cc:65 f.menus.cc:126 -msgid "Effects" -msgstr "Efectos" - -#: f.menus.cc:66 f.menus.cc:127 -msgid "Combine" -msgstr "Combinar" - -#: f.menus.cc:67 f.menus.cc:128 -msgid "Plugins" -msgstr "Complementos" - -#: f.menus.cc:68 f.menus.cc:129 fotoxx-14.03.cc:3811 fotoxx.h:1021 -msgid "Help" -msgstr "Ayuda" - -#: f.menus.cc:101 f.menus.cc:290 fotoxx-14.03.cc:3751 +#: f.menus.cc:67 fotoxx-14.04.cc:3775 msgid "Favorite Functions" msgstr "" -#: f.menus.cc:102 +#: f.menus.cc:68 msgid "Open, Save, Trash, Rename, Print" msgstr "Abrir, guardar, papelera, renombrar, imprimir" -#: f.menus.cc:103 +#: f.menus.cc:69 msgid "Index Files, Settings, Collections, Batch Funcs ..." msgstr "Indexar archivos, Ajustes, Colecciones, Funciones de lote,... " -#: f.menus.cc:104 +#: f.menus.cc:70 msgid "Captions, Tags, Ratings, Geotags, Search ... " msgstr "Leyendas, etiquetas, clasificaciones, geoetiquetas, búsquedas ..." -#: f.menus.cc:105 +#: f.menus.cc:71 msgid "Select image areas to edit, copy and paste" msgstr "Selecciones áreas de la imagen para editar" -#: f.menus.cc:106 +#: f.menus.cc:72 msgid "Trim/Crop, Rotate, Resize, Add Text" msgstr "Recortar/girar, rotar, redimensionar, añadir texto" -#: f.menus.cc:107 +#: f.menus.cc:73 msgid "Improve brightness, contrast, color ..." msgstr "Mejorar brillo, contraste, color ..." -#: f.menus.cc:108 +#: f.menus.cc:74 msgid "Sharpen, Clean, Red-eyes, Paint, Clone ..." msgstr "Enfocar, limpiar, ojos rojos, pintar, clonar ..." -#: f.menus.cc:109 +#: f.menus.cc:75 msgid "White Balance, Color Profile, Color Matching" msgstr "Balance de blancos, perfil de color, coincidencia de color" -#: f.menus.cc:110 +#: f.menus.cc:76 msgid "Fix Perspective, Bend/Warp image ..." msgstr "Corregir perspectiva, enderezar/deformar imagen" -#: f.menus.cc:111 +#: f.menus.cc:77 msgid "Special Effects, Arty Transforms" msgstr "Efectos especiales, transformaciones artísticas" -#: f.menus.cc:112 +#: f.menus.cc:78 msgid "HDR, HDF, Panorama, Stack, Mashup" msgstr "HDR, HDF, Panorama, Pila, Fotomontaje" -#: f.menus.cc:113 +#: f.menus.cc:79 msgid "Use other image editors within Fotoxx" msgstr "Usar otro editor de imágenes dentro de Fotoxx" -#: f.menus.cc:114 +#: f.menus.cc:80 msgid "Quick Start, User Guide, Recent Changes ..." msgstr "Inicio rápido, guía de usuario, cambios recientes ..." -#: f.menus.cc:148 +#: f.menus.cc:83 +msgid "File" +msgstr "Archivo" + +#: f.menus.cc:84 +msgid "Tools" +msgstr "Herramientas" + +#: f.menus.cc:85 f.menus.cc:375 +msgid "Metadata" +msgstr "Metadatos" + +#: f.menus.cc:86 +msgid "Areas" +msgstr "Areas" + +#: f.menus.cc:88 +msgid "Retouch" +msgstr "Retocar" + +#: f.menus.cc:89 +msgid "Repair" +msgstr "Reparar" + +#: f.menus.cc:91 +msgid "Bend" +msgstr "Deformar" + +#: f.menus.cc:92 +msgid "Effects" +msgstr "Efectos" + +#: f.menus.cc:93 +msgid "Combine" +msgstr "Combinar" + +#: f.menus.cc:94 +msgid "Plugins" +msgstr "Complementos" + +#: f.menus.cc:95 fotoxx-14.04.cc:3835 fotoxx.h:1026 +msgid "Help" +msgstr "Ayuda" + +#: f.menus.cc:113 msgid "New Window" msgstr "Nueva ventana" -#: f.menus.cc:148 +#: f.menus.cc:113 msgid "Open another window" msgstr "Abrir otra ventana" -#: f.menus.cc:149 f.menus.cc:297 +#: f.menus.cc:114 f.menus.cc:255 msgid "Open a new image file" msgstr "Abrir nueva imagen" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open Previous File" msgstr "Abrir archivo anterior" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open the previously seen file" msgstr "Abrir archivo previamente visto" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Open a recently seen file" msgstr "Abrir un archivo recientemente visto" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Recently Seen Images" msgstr "Imágenes vistas recientemente " -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Newest Images" msgstr "Imágenes más recientes" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Open a newly added file" msgstr "Abrir un archivo añadido nuevo" -#: f.menus.cc:153 +#: f.menus.cc:118 msgid "Open and edit a camera RAW file" msgstr "Abrir y editar un archivo de cámara RAW" -#: f.menus.cc:154 f.menus.cc:300 +#: f.menus.cc:119 f.menus.cc:258 msgid "Save modified image file to disk" msgstr "Guardar imagen modificada en el disco" -#: f.menus.cc:154 +#: f.menus.cc:119 msgid "Save to Disk" msgstr "Guardar en el disco" -#: f.menus.cc:155 +#: f.menus.cc:120 msgid "Change the image file name" msgstr "Cambiar el nombre de la imagen" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "Create a blank image" msgstr "Crear una imagen en blanco" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "New Blank Image" msgstr "Nueva imagen en blanco" -#: f.menus.cc:157 f.menus.cc:301 +#: f.menus.cc:122 f.menus.cc:259 msgid "Move image file to Trash" msgstr "Mover imagen a la papelera" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print Image" msgstr "Imprimir imagen" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print the current image" msgstr "Imprimir la imagen actual" -#: f.menus.cc:159 +#: f.menus.cc:124 msgid "Quit Fotoxx" msgstr "Salir de Fotoxx" -#: f.menus.cc:161 f.tools.cc:92 f.tools.cc:339 +#: f.menus.cc:126 f.tools.cc:92 f.tools.cc:339 msgid "Index Image Files" msgstr "Indexar imágenes" -#: f.menus.cc:161 +#: f.menus.cc:126 msgid "Index new files and make thumbnails" msgstr "Indexar nuevos archivos y crear miniaturas" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "Change user preferences" msgstr "Cambiar preferencias del usuario" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "User Settings" msgstr "Ajustes del usuario" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Change Keyboard Shortcut Keys" msgstr "Canmbiar teclas de atajos de teclado" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Keyboard Shortcuts" msgstr "Atajos de teclado" -#: f.menus.cc:164 f.tools.cc:1943 +#: f.menus.cc:129 f.tools.cc:1918 msgid "Manage Collections" msgstr "Administrar colecciones" -#: f.menus.cc:164 +#: f.menus.cc:129 msgid "Organize images into collections" msgstr "Organizar imágenes en una colección" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Convert for a new top directory" msgstr "Convertir para un nuevo directorio superior" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Move Collections" msgstr "Mover colecciones" -#: f.menus.cc:166 f.tools.cc:2777 f.tools.cc:2780 +#: f.menus.cc:131 f.tools.cc:2728 msgid "Slide Show" msgstr "Diaporama" -#: f.menus.cc:166 +#: f.menus.cc:131 msgid "Start a slide show" msgstr "Iniciar un diaporama" -#: f.menus.cc:167 f.tools.cc:4497 +#: f.menus.cc:132 f.tools.cc:4796 msgid "Batch Convert" msgstr "Convertir en lote" -#: f.menus.cc:167 +#: f.menus.cc:132 msgid "Rename/convert/resize/move multiple files" msgstr "Renombrar/convertir/redimensionar/mover míultiples archivos" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Batch Convert RAW" msgstr "Convertir RAW en lote" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Convert multiple camera RAW files" msgstr "Convertir múltiples archivos de cámara RAW" -#: f.menus.cc:169 -msgid "Brightness Histogram" +#: f.menus.cc:134 f.menus.cc:185 f.menus.cc:390 f.retouch.cc:314 +#: f.tools.cc:5620 +msgid "Brightness Distribution" msgstr "Histograma" -#: f.menus.cc:169 +#: f.menus.cc:134 msgid "Show a brightness distribution graph" msgstr "Mostrar histograma (distribución del brillo)" -#: f.menus.cc:170 f.menus.cc:480 f.tools.cc:5517 +#: f.menus.cc:135 f.menus.cc:393 f.tools.cc:5825 msgid "Grid Lines" msgstr "Lineas de rejilla" -#: f.menus.cc:170 +#: f.menus.cc:135 msgid "Show or revise grid lines" msgstr "Mostrar o revisar líneas de rejilla" -#: f.menus.cc:171 f.tools.cc:5701 +#: f.menus.cc:136 f.tools.cc:6009 msgid "Show RGB" msgstr "Mostrar RGB" -#: f.menus.cc:171 +#: f.menus.cc:136 msgid "Show RGB colors at mouse click" msgstr "Mostrar colores RGB con un clic del ratón" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Dark/Bright Pixels" msgstr "Sobre/subexposición" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Highlight darkest and brightest pixels" msgstr "Resaltar píxels más oscuros y más brillantes" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Chart to adjust monitor color" msgstr "Carta para ajustar el color del monitor" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Monitor Color" msgstr "Color del monitor" -#: f.menus.cc:174 +#: f.menus.cc:139 msgid "Chart to adjust monitor gamma" msgstr "Carta para ajustar la gamma del monitor" -#: f.menus.cc:174 f.tools.cc:6213 +#: f.menus.cc:139 f.tools.cc:6521 msgid "Monitor Gamma" msgstr "Gamma del monitor" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change Language" msgstr "Cambiar idioma" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change the GUI language" msgstr "cambiar el idioma de la interfaz de usuario" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Missing Translations" msgstr "Traducciones que faltan" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Report missing translations" msgstr "Informe de traducciones que faltan" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Create a Gnome menu and launcher" msgstr "Crear un menú y lanzador de Gnome" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Menu and Launcher" msgstr "Menú y lanzador" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn Images to CD/DVD" msgstr "Grabar imágenes en un CD/DVD" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn selected image files to CD or DVD" msgstr "Grabar imágenes seleccionadas en un CD o DVD" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Memory and CPU (to terminal/logfile)" msgstr "Memoria y CPU (al terminal/archivo de registro)" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Resources" msgstr "Recursos" -#: f.menus.cc:183 f.meta.cc:121 f.meta.cc:1945 +#: f.menus.cc:147 f.meta.cc:121 f.meta.cc:1946 msgid "Edit Metadata" msgstr "Editar metadatos" -#: f.menus.cc:183 +#: f.menus.cc:147 msgid "Edit image tags/caption/rating ..." msgstr "Editar etiquetas/leyenda/clasificación de la imagen ..." -#: f.menus.cc:184 +#: f.menus.cc:148 msgid "Add/remove tags for multiple images" msgstr "Añadir/eliminar etiquetas para múltiples imágenes " -#: f.menus.cc:184 f.meta.cc:1547 +#: f.menus.cc:148 f.meta.cc:1547 msgid "Batch Add/Remove Tags" msgstr "Añadir/eliminar etiquetas en lote" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "List a few key metadata items" msgstr "Listar algunos datos clave de metadatos" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "View Metadata (short)" msgstr "Ver metadatos (corto)" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "List all metadata items" msgstr "Listar todos los items de metadatos" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "View Metadata (long)" msgstr "Ver metadatos (largo)" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "List captions and comments only" msgstr "Listar sólo las leyendas y comentarios" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "View Captions and Comments" msgstr "Ver leyendas y comentarios" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit Any Metadata" msgstr "Editar cualquier metadato" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit any image metadata" msgstr "Editar cualquier metadato de la imagen" -#: f.menus.cc:189 f.meta.cc:2039 +#: f.menus.cc:153 f.meta.cc:2040 msgid "Delete Metadata" msgstr "Borrar metadatos" -#: f.menus.cc:189 +#: f.menus.cc:153 msgid "Remove all metadata from an image" msgstr "Quitar todos los metadatos de una imagen" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "(Toggle) show captions and comments" msgstr "(Cambiar) muestra leyendas y comentarios" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "Show Captions on Image" msgstr "Mostrar leyendas en la imagen" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download Geolocations" msgstr "Descargar geolocalizaciones" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download initial geolocation database" msgstr "Descargar base de datos de geolocalización inicial" -#: f.menus.cc:193 f.meta.cc:3023 +#: f.menus.cc:157 f.meta.cc:3027 msgid "Edit Geotags" msgstr "Editar Geoetiquetas" -#: f.menus.cc:193 +#: f.menus.cc:157 msgid "Edit image location and geotags" msgstr "Editar ubicación y geoetiquetas de la " -#: f.menus.cc:194 +#: f.menus.cc:158 msgid "Add geotags to multiple images" msgstr "Añadir geoetiquetas a múltiples imágenes" -#: f.menus.cc:194 f.meta.cc:3225 +#: f.menus.cc:158 f.meta.cc:3229 msgid "Batch Add Geotags" msgstr "Añadir geoetiquetas en lote" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Find all images for a location [date]" msgstr "Encontrar todas las imágenes para una localización (fecha)" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Images by Location/Date" msgstr "Imágenes por localización/fecha" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Find images by clicking a world map" msgstr "Encontrar imágenes clicando en un mapa mundial" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Images by Map Location" msgstr "Imágenes por localización en el mapa" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Find images meeting select criteria" msgstr "Encontrar imágenes que cumplan un criterio de selección" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Search Images" msgstr "Buscar imágenes" -#: f.menus.cc:199 fotoxx.h:1060 +#: f.menus.cc:163 fotoxx.h:1066 msgid "Select" msgstr "Seleccionar" -#: f.menus.cc:199 +#: f.menus.cc:163 msgid "Select object or area for editing" msgstr "Seleccionar objeto o área para editar" -#: f.menus.cc:200 fotoxx.h:1062 +#: f.menus.cc:164 fotoxx.h:1068 msgid "Show" msgstr "Mostrar" -#: f.menus.cc:200 +#: f.menus.cc:164 msgid "Show (outline) existing area" msgstr "Mostrar un área existente (contorno)" -#: f.menus.cc:201 fotoxx.h:1022 +#: f.menus.cc:165 fotoxx.h:1027 msgid "Hide" msgstr "Ocultar" -#: f.menus.cc:201 +#: f.menus.cc:165 msgid "Hide existing area" msgstr "Ocultar áreas existentes" -#: f.menus.cc:202 fotoxx.h:1011 +#: f.menus.cc:166 fotoxx.h:1016 msgid "Enable" msgstr "Activar" -#: f.menus.cc:202 +#: f.menus.cc:166 msgid "Enable area for editing" msgstr "activar áre para editar" -#: f.menus.cc:203 fotoxx.h:1006 +#: f.menus.cc:167 fotoxx.h:1011 msgid "Disable" msgstr "Desactivar" -#: f.menus.cc:203 +#: f.menus.cc:167 msgid "Disable area for editing" msgstr "Desactivar área para editar" -#: f.menus.cc:204 fotoxx.h:1025 +#: f.menus.cc:168 fotoxx.h:1030 msgid "Invert" msgstr "Invertir" -#: f.menus.cc:204 +#: f.menus.cc:168 msgid "Reverse existing area" msgstr "Invertir área existente" -#: f.menus.cc:205 +#: f.menus.cc:169 msgid "Erase existing area" msgstr "Borrar área existente" -#: f.menus.cc:205 fotoxx.h:1074 +#: f.menus.cc:169 fotoxx.h:1080 msgid "Unselect" msgstr "Deseleccionar" -#: f.menus.cc:206 fotoxx.h:1001 +#: f.menus.cc:170 fotoxx.h:1006 msgid "Copy" msgstr "Copiar" -#: f.menus.cc:206 +#: f.menus.cc:170 msgid "Copy an area for later pasting" msgstr "Copiaar un área para posterior pegado" -#: f.menus.cc:207 fotoxx.h:1041 +#: f.menus.cc:171 fotoxx.h:1046 msgid "Paste" msgstr "Pegar" -#: f.menus.cc:207 +#: f.menus.cc:171 msgid "Paste an area into the current image" msgstr "Pegar un área en la imagen actual" -#: f.menus.cc:208 +#: f.menus.cc:172 msgid "Open a file with a saved area" msgstr "Abrir un archivo con un área guardada" -#: f.menus.cc:209 f.menus.cc:300 fotoxx.h:1057 +#: f.menus.cc:173 f.menus.cc:258 fotoxx.h:1062 msgid "Save" msgstr "Guardar" -#: f.menus.cc:209 +#: f.menus.cc:173 msgid "Save an area to a file" msgstr "Guardar un área en un archivo" -#: f.menus.cc:211 +#: f.menus.cc:175 msgid "Rotate 90 degrees" msgstr "Rotar 90º" -#: f.menus.cc:211 f.menus.cc:474 +#: f.menus.cc:175 f.menus.cc:387 msgid "Rotate 90º" msgstr "Rotar 90º" -#: f.menus.cc:212 +#: f.menus.cc:176 msgid "Trim/Crop margins and/or Rotate" msgstr "Recortar/cortar márgenes y/o girar" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Auto-Trim" msgstr "Recorte automático" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Remove margins from warp, panorama, etc." msgstr "Eliminar márgenes de una deformación, panorama, etc." -#: f.menus.cc:214 +#: f.menus.cc:178 msgid "Change pixel dimensions" msgstr "Cambiar dimensiones en píxeles" -#: f.menus.cc:215 +#: f.menus.cc:179 msgid "Mirror image horizontally or vertically" msgstr "Reflejar horizontal o verticalmente la imagen" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Add Text" msgstr "Añadir texto" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Write text on image" msgstr "Escribir un texto sobre la imagen" -#: f.menus.cc:218 +#: f.menus.cc:182 msgid "Fast auto enhance that may work OK" msgstr "Mejora automática rápida" -#: f.menus.cc:218 f.menus.cc:475 +#: f.menus.cc:182 f.menus.cc:388 msgid "Voodoo Enhance" msgstr "Mejora automática" -#: f.menus.cc:219 +#: f.menus.cc:183 msgid "Adjust brightness, contrast, color" msgstr "Ajustar brillo, contraste, color" -#: f.menus.cc:219 f.menus.cc:476 f.retouch.cc:265 +#: f.menus.cc:183 f.menus.cc:389 f.retouch.cc:271 msgid "Retouch Combo" msgstr "Retocar luz y color" -#: f.menus.cc:222 +#: f.menus.cc:184 msgid "Add local contrast, enhance details" msgstr "Añadir contraste local, mejorar detalles" -#: f.menus.cc:222 f.menus.cc:478 f.retouch.cc:929 +#: f.menus.cc:184 f.menus.cc:391 f.retouch.cc:1039 msgid "Tone Mapping" msgstr "Mapeo de tonos" -#: f.menus.cc:223 +#: f.menus.cc:185 msgid "Adjust brightness distribution" msgstr "Ajustar distribución del brillo" -#: f.menus.cc:223 f.menus.cc:477 f.tools.cc:5314 -msgid "Brightness Distribution" -msgstr "Histograma" - -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Brightness Ramp" msgstr "Rampa de brillo" -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Fix brightness uniformity across image" msgstr "Corregir la uniformidad de brillo por zonas en la imagen" -#: f.menus.cc:225 f.retouch.cc:2050 +#: f.menus.cc:187 f.retouch.cc:2159 msgid "Paint Edits" msgstr "Editar pintando" -#: f.menus.cc:225 +#: f.menus.cc:187 msgid "Paint edit function gradually with mouse" msgstr "Función de edición pintando gradualmente con el ratón" -#: f.menus.cc:227 +#: f.menus.cc:188 f.retouch.cc:2390 +msgid "Leverage Edits" +msgstr "Editar por niveles" + +#: f.menus.cc:188 +msgid "Leverage edits by brightness or color" +msgstr "Edición de niveles por brillo o color" + +#: f.menus.cc:190 msgid "Make the image look sharper" msgstr "Hacer que la imagen se vea más enfocada" -#: f.menus.cc:227 f.repair.cc:79 f.tools.cc:4535 f.tools.cc:4904 +#: f.menus.cc:190 f.repair.cc:79 f.tools.cc:4834 f.tools.cc:5203 msgid "Sharpen" msgstr "Enfocar" -#: f.menus.cc:228 f.repair.cc:1565 +#: f.menus.cc:191 f.repair.cc:1565 msgid "Blur" msgstr "Desenfocar" -#: f.menus.cc:228 +#: f.menus.cc:191 msgid "Make the image look fuzzy" msgstr "Hacer que la imagen se vea desenfocada" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Filter noise from low-light photos" msgstr "Filtrar ruido de fotos hechas con poca luz" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Reduce Noise" msgstr "Reducir ruido" -#: f.menus.cc:230 +#: f.menus.cc:193 msgid "Remove unwanted objects" msgstr "Eliminar objetos no deseados" -#: f.menus.cc:230 f.repair.cc:1558 +#: f.menus.cc:193 f.repair.cc:1558 msgid "Smart Erase" msgstr "Borrado inteligente" -#: f.menus.cc:231 +#: f.menus.cc:194 msgid "Fix red-eyes from electronic flash" msgstr "Corregir ojos rojos producidos por un flash electrónico" -#: f.menus.cc:231 f.menus.cc:479 +#: f.menus.cc:194 f.menus.cc:392 msgid "Red Eyes" msgstr "Ojos rojos" -#: f.menus.cc:232 +#: f.menus.cc:195 msgid "Paint image pixels using the mouse" msgstr "Pintar usando el ratón" -#: f.menus.cc:232 f.repair.cc:2403 +#: f.menus.cc:195 f.repair.cc:2403 msgid "Paint/Clone" msgstr "Pintar/Clonar" -#: f.menus.cc:233 f.repair.cc:2995 +#: f.menus.cc:196 f.repair.cc:2995 msgid "Remove Dust" msgstr "Retirar polvo" -#: f.menus.cc:233 +#: f.menus.cc:196 msgid "Remove dust spots from scanned slides" msgstr "Eliminar motas de polvo de diapositivas escaneadas" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Anti-alias" msgstr "Suavizar" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Smoothen edges with jaggies" msgstr "Suavizar bordes con dientes de sierra" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Fix Color Fringes" msgstr "Corregir franjas de color" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Reduce Chromatic Abberation" msgstr "Rducir aberración cromática" -#: f.menus.cc:236 +#: f.menus.cc:199 msgid "Erase known hot and dark pixels" msgstr "Eliminar píxeles calientes y negros conocidos" -#: f.menus.cc:236 f.repair.cc:4008 +#: f.menus.cc:199 f.repair.cc:4008 msgid "Fix Stuck Pixels" msgstr "Corregir los píxeles retenidos" -#: f.menus.cc:239 +#: f.menus.cc:201 msgid "Shift/convert colors into other colors" msgstr "Cambiar/convertir colores en otros" -#: f.menus.cc:240 +#: f.menus.cc:202 msgid "Make BW/color, negative/positive, sepia" msgstr "Cambiar blanco y negro/color, negativo/positivo, sepia" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Color Profile" msgstr "perfil de color" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Convert to another color profile" msgstr "Convertir a otro perfil de color" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match Colors" msgstr "Concordancia de colores" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match colors on one image with another" msgstr "Concordar colores de una imagen con los de otra" -#: f.menus.cc:243 +#: f.menus.cc:205 msgid "Adjust color in selected image areas" msgstr "Ajustar color en áreas seleccionadas de la imagen" -#: f.menus.cc:244 +#: f.menus.cc:206 msgid "Adjust color using CMYK or RGB values" msgstr "Ajustar color usando valores CMYK o RGB" -#: f.menus.cc:246 +#: f.menus.cc:208 msgid "Remove curvature, esp. panoramas" msgstr "Eliminar curvatura, esp. panoramas" -#: f.menus.cc:247 +#: f.menus.cc:209 msgid "Straighten objects seen from an angle" msgstr "Enderezar objetos vistos desde un ángulo" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten Book Page" msgstr "Aplanar página impresa" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten a photographed book page" msgstr "Aplanar foto de una página impresa " -#: f.menus.cc:249 +#: f.menus.cc:211 msgid "Distort image areas using the mouse" msgstr "Deformar áreas de la imagen usando el ratón" -#: f.menus.cc:250 f.menus.cc:251 f.menus.cc:252 +#: f.menus.cc:212 f.menus.cc:213 f.menus.cc:214 msgid "Distort the whole image using the mouse" msgstr "Deformar toda la imagen usando el ratón" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Color Depth" msgstr "Profundidad de color" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Reduce color depth (posterize)" msgstr "Reducir profundidad de color (posterizar)" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Convert to pencil sketch" msgstr "Convertir a un esbozo a lápiz" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Sketch" msgstr " Esbozo" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Convert to colored line drawing" msgstr "Convertir a dibujo de líneas coloreadas" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Drawing" msgstr "Dibujando" -#: f.menus.cc:257 +#: f.menus.cc:219 msgid "Graduated Blur depending on contrast" msgstr "Desenfoque graduado dependiendo del contraste" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Create an embossed or 3D appearance" msgstr "Crear un relieve o apariencia 3D" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Embossing" msgstr "Relieve" -#: f.menus.cc:259 +#: f.menus.cc:221 msgid "Convert to square tiles" msgstr "Convertir a baldosas cuadradas" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Convertir a puntos (efecto Roy Lichtenstein)" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Dots" msgstr "Puntos" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Convert into a simulated painting" msgstr "Convertir a pintura simulada" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Painting" msgstr "Pintura" -#: f.menus.cc:262 +#: f.menus.cc:224 msgid "Change brightness or color radially" msgstr "Cambiar radialmente el brillo o el color" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Add texture to an image" msgstr "Añadir textura a una imagen" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Texture" msgstr "Textura" -#: f.menus.cc:264 +#: f.menus.cc:226 msgid "Tile image with a repeating pattern" msgstr "" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Create a mosaic with tiles made from all images" msgstr "" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Mosaic" msgstr "" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "Combine bright/dark images for better detail" msgstr "Combinar imágenes brillantes/oscuras para mejorar detalles" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "High Dynamic Range" msgstr "HDR alto rango dinámico" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "Combine near/far focus images for deeper focus" msgstr "" "Combinar imágenes enfocadas cerca/lejos para mayor profundidad de campo" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "High Depth of Field" msgstr "HDF alta profundidad de campo" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Combine images to erase passing people, etc." msgstr "Combinar imágenes para borrar gente, coches, etc" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Stack / Paint" msgstr "Apilar/pintar" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Combine noisy images into a low-noise image" msgstr "Combinaar imágenes ruidosas en una imagen de bajo ruido" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Stack / Noise" msgstr "Apilar/ruido" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Combine images into a panorama" msgstr "Combinar imágenes en una panorámica" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Panorama" msgstr "Panorama" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Combine images into a vertical panorama" msgstr "Combinar imágenes en un panorama vertical" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Vertical Panorama" msgstr "Panorama vertical " -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Arrange multiple images on a background image" msgstr "Organizar múltiples imágenes sobre una imagen de fondo" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Mashup" msgstr "Fotomontaje" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Add another image editor to the menu" msgstr "añadir otro editor de imágenes al menú" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Edit Plugins" msgstr "Editar complementos (plugins)" -#: f.menus.cc:277 fotoxx-14.03.cc:3777 +#: f.menus.cc:239 fotoxx-14.04.cc:3801 msgid "Quick Start" msgstr "Referencia rápida" -#: f.menus.cc:277 +#: f.menus.cc:239 msgid "Quick Start mini-guide" msgstr "Mini guía de referencia rápida" -#: f.menus.cc:278 +#: f.menus.cc:240 msgid "Read the user guide" msgstr "Leer la guía de usuario" -#: f.menus.cc:278 fotoxx-14.03.cc:3780 +#: f.menus.cc:240 fotoxx-14.04.cc:3804 msgid "User Guide" msgstr "Guia de usuario" -#: f.menus.cc:279 +#: f.menus.cc:241 msgid "Recent user guide changes" msgstr "Cambios reciuentes en la guia de usuario" -#: f.menus.cc:279 fotoxx-14.03.cc:3783 +#: f.menus.cc:241 fotoxx-14.04.cc:3807 msgid "User Guide Changes" msgstr "Cambios en la guía de usuario" -#: f.menus.cc:280 +#: f.menus.cc:242 msgid "Fotoxx updates notification" msgstr "Notificaciones de actualizaciones de Fotoxx" -#: f.menus.cc:280 fotoxx-14.03.cc:3786 +#: f.menus.cc:242 fotoxx-14.04.cc:3810 msgid "Program Updates" msgstr "Actualizaciones del programa" -#: f.menus.cc:281 fotoxx-14.03.cc:3792 +#: f.menus.cc:243 fotoxx-14.04.cc:3816 msgid "Edit Functions Summary" msgstr "Resumen de las funciones de edición" -#: f.menus.cc:281 +#: f.menus.cc:243 msgid "Summary of image edit functions" msgstr "Resumen de las funciones de edición de imágenes" -#: f.menus.cc:282 fotoxx-14.03.cc:3789 +#: f.menus.cc:244 fotoxx-14.04.cc:3813 msgid "README" msgstr "LÉAME" -#: f.menus.cc:282 +#: f.menus.cc:244 msgid "Technical installation notes" msgstr "Notas técnicas de instalación" -#: f.menus.cc:283 fotoxx-14.03.cc:3795 +#: f.menus.cc:245 fotoxx-14.04.cc:3819 msgid "Change Log" msgstr "Registro de cambios" -#: f.menus.cc:283 +#: f.menus.cc:245 msgid "List updates by Fotoxx version" msgstr "Listar actualizaciones por versión de Fotoxx" -#: f.menus.cc:284 fotoxx-14.03.cc:3798 +#: f.menus.cc:246 fotoxx-14.04.cc:3822 msgid "Log File" msgstr "Archivo de registro" -#: f.menus.cc:284 +#: f.menus.cc:246 msgid "View the log file and error messages" msgstr "Ver el archivo de registro y mensajes de error" -#: f.menus.cc:285 +#: f.menus.cc:247 msgid "How to do Fotoxx translations" msgstr "Cómo hacer traducciones de Fotoxx" -#: f.menus.cc:285 fotoxx-14.03.cc:3801 +#: f.menus.cc:247 fotoxx-14.04.cc:3825 msgid "Translations" msgstr "Traducciones" -#: f.menus.cc:286 fotoxx-14.03.cc:3804 +#: f.menus.cc:248 fotoxx-14.04.cc:3828 msgid "Home Page" msgstr "Página web" -#: f.menus.cc:286 +#: f.menus.cc:248 msgid "Show the Fotoxx web page" msgstr "Muestra la páfina web de Fotoxx" -#: f.menus.cc:287 fotoxx-14.03.cc:3807 +#: f.menus.cc:249 fotoxx-14.04.cc:3831 msgid "About" msgstr "Acerca de" -#: f.menus.cc:287 +#: f.menus.cc:249 msgid "Version, license, contact, credits" msgstr "Versión, licencia, contacto, créditos" -#: f.menus.cc:290 -msgid "Favs" -msgstr "Favoritos" - -#: f.menus.cc:292 +#: f.menus.cc:251 msgid "Color of area borders etc." msgstr "Color de los bordes de área etc. " -#: f.menus.cc:293 fotoxx.h:1072 +#: f.menus.cc:252 fotoxx.h:1078 msgid "Undo" msgstr "Deshacer" -#: f.menus.cc:293 +#: f.menus.cc:252 msgid "Undo one edit" msgstr "Deshacer una edición" -#: f.menus.cc:294 fotoxx.h:1051 +#: f.menus.cc:253 fotoxx.h:1056 msgid "Redo" msgstr "Rehacer" -#: f.menus.cc:294 +#: f.menus.cc:253 msgid "Redo one edit" msgstr "Rehacer una edición" -#: f.menus.cc:296 f.menus.cc:432 +#: f.menus.cc:254 f.menus.cc:348 msgid "Set gallery from current image file" msgstr "Establecer galería desde la imagen actual" -#: f.menus.cc:298 +#: f.menus.cc:256 msgid "Open the previous file" msgstr "Abrir el archivo anterior" -#: f.menus.cc:298 fotoxx.h:1046 +#: f.menus.cc:256 fotoxx.h:1051 msgid "Prev" msgstr "Anterior" -#: f.menus.cc:299 fotoxx.h:1034 +#: f.menus.cc:257 fotoxx.h:1039 msgid "Next" msgstr "Siguiente" -#: f.menus.cc:299 +#: f.menus.cc:257 msgid "Open the next file" msgstr "Abrir el archivo siguiente" -#: f.menus.cc:301 f.menus.cc:483 fotoxx.h:1068 +#: f.menus.cc:259 f.menus.cc:396 fotoxx.h:1074 msgid "Trash" msgstr "Papelera" -#: f.menus.cc:344 f.menus.cc:373 +#: f.menus.cc:306 msgid "Run as Fotoxx edit function" msgstr "Abrir como una función de edición de Fotoxx" -#: f.menus.cc:412 +#: f.menus.cc:328 msgid "Top" msgstr "Arriba" -#: f.menus.cc:433 +#: f.menus.cc:349 msgid "open another directory" msgstr "Abrir otro directorio" -#: f.menus.cc:434 +#: f.menus.cc:350 msgid "go to bookmarked image" msgstr "ir a una imagen marcada" -#: f.menus.cc:435 +#: f.menus.cc:351 msgid "increase thumbnail size" msgstr "aumentar tamaño de miniatura" -#: f.menus.cc:436 +#: f.menus.cc:352 msgid "reduce thumbnail size" msgstr "reducir tamaño de la miniatura" -#: f.menus.cc:437 +#: f.menus.cc:353 msgid "change sort order" msgstr "cambiar criterio de ordenación" -#: f.menus.cc:438 +#: f.menus.cc:354 msgid "jump to beginning (top)" msgstr "ir al principio (arriba)" -#: f.menus.cc:439 +#: f.menus.cc:355 msgid "jump to end (bottom)" msgstr "ir al final (abajo)" -#: f.menus.cc:440 +#: f.menus.cc:356 msgid "previous page" msgstr "página anterior" -#: f.menus.cc:441 +#: f.menus.cc:357 msgid "next page" msgstr "página siguiente" -#: f.menus.cc:442 +#: f.menus.cc:358 msgid "previous row" msgstr "fila anterior" -#: f.menus.cc:443 +#: f.menus.cc:359 msgid "next row" msgstr "fila siguiente" -#: f.menus.cc:461 +#: f.menus.cc:360 +msgid "slow scroll" +msgstr "" + +#: f.menus.cc:374 msgid "Popup Image" msgstr "" -#: f.menus.cc:463 fotoxx.h:1054 +#: f.menus.cc:376 fotoxx.h:1059 msgid "Rename" msgstr "Renombrar" -#: f.menus.cc:464 +#: f.menus.cc:377 msgid "Copy to Location" msgstr "Cambiar a la ubicación" -#: f.menus.cc:465 +#: f.menus.cc:378 msgid "Move to Location" msgstr "Mover a la ubicación" -#: f.menus.cc:466 +#: f.menus.cc:379 msgid "Copy to Clipboard" msgstr "Copiar al portapapeles" -#: f.menus.cc:467 +#: f.menus.cc:380 msgid "Remove from Collection" msgstr "Eliminar de la colección" -#: f.menus.cc:468 +#: f.menus.cc:381 msgid "Cut to Image Cache" msgstr " Cortar al caché de imagen" -#: f.menus.cc:469 +#: f.menus.cc:382 msgid "Copy to Image Cache" msgstr "Copiar al caché de imagen " -#: f.menus.cc:470 +#: f.menus.cc:383 msgid "Paste Image Cache Here (clear)" msgstr "Pegar caché de imagen aquí (borrar)" -#: f.menus.cc:471 +#: f.menus.cc:384 msgid "Paste Image Cache Here (keep)" msgstr "Pegar caché de imagen aquí (guardar)" -#: f.menus.cc:481 +#: f.menus.cc:394 msgid "Select Area" msgstr "Seleccionar área" @@ -2435,7 +2460,7 @@ msgid "Rating: %c (stars)" msgstr "Clasificación : %c (estrellas)" -#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1939 f.meta.cc:3036 f.meta.cc:3311 +#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1940 f.meta.cc:3040 f.meta.cc:3315 msgid "file type cannot have metadata" msgstr "" @@ -2487,7 +2512,7 @@ msgid "Recent Tags" msgstr "etiquetas recientes" -#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4267 +#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4271 msgid "Defined Tags" msgstr "etiquetas definidas" @@ -2507,7 +2532,7 @@ msgid "time is invalid" msgstr "hora no válida" -#: f.meta.cc:532 fotoxx.h:1029 +#: f.meta.cc:532 fotoxx.h:1034 msgid "Manage Tags" msgstr "Administrar etiquetas" @@ -2523,11 +2548,11 @@ msgid "tag" msgstr "etiqueta" -#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1474 +#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1449 msgid "file not found" msgstr "archivo no encontrado" -#: f.meta.cc:1552 f.meta.cc:3257 f.tools.cc:4501 f.tools.cc:4966 +#: f.meta.cc:1552 f.meta.cc:3261 f.tools.cc:4800 f.tools.cc:5265 msgid "0 files selected" msgstr "0 archivos seleccionados" @@ -2552,7 +2577,7 @@ msgid "specify files and tags" msgstr "especificar archivos y etiquetas" -#: f.meta.cc:1788 f.meta.cc:3369 f.tools.cc:4800 f.tools.cc:5185 +#: f.meta.cc:1788 f.meta.cc:3373 f.tools.cc:5099 f.tools.cc:5484 #, c-format msgid "%d files selected" msgstr "%d archivos seleccionados" @@ -2561,11 +2586,11 @@ msgid "View Metadata" msgstr "Ver metadatos" -#: f.meta.cc:1903 +#: f.meta.cc:1904 msgid "Caption: \n" msgstr "Leyenda : \n" -#: f.meta.cc:1905 +#: f.meta.cc:1906 msgid "" "\n" "Comment: \n" @@ -2573,23 +2598,23 @@ "\n" "Comentario : \n" -#: f.meta.cc:1949 +#: f.meta.cc:1950 msgid "key name" msgstr "nombre clave" -#: f.meta.cc:1951 +#: f.meta.cc:1952 msgid "key value" msgstr "valor clave" -#: f.meta.cc:2041 fotoxx.h:985 +#: f.meta.cc:2042 fotoxx.h:990 msgid "All" msgstr "Todo" -#: f.meta.cc:2042 +#: f.meta.cc:2043 msgid "One Key:" msgstr "Una clave:" -#: f.meta.cc:2222 +#: f.meta.cc:2223 #, c-format msgid "" "Download geotags data (8 megabytes). \n" @@ -2600,48 +2625,40 @@ "Guardar en %s \n" "¿proceder?" -#: f.meta.cc:2261 +#: f.meta.cc:2262 msgid "download failed" msgstr "fallo en la descarga" -#: f.meta.cc:2292 fotoxx-14.03.cc:1079 -msgid "Location from World Map" -msgstr "Localización desde el mapa mundial" - -#: f.meta.cc:2294 -msgid "Loading world map" -msgstr "Cargando mapa mundial" - -#: f.meta.cc:2304 f.meta.cc:2449 +#: f.meta.cc:2298 f.meta.cc:2445 msgid "please download geolocations data" msgstr "por favor descargar datos de geolocalizaciones" -#: f.meta.cc:2309 +#: f.meta.cc:2304 msgid "Loading geolocations" msgstr "Cargando geolocalizaciones" -#: f.meta.cc:2737 f.meta.cc:3209 f.meta.cc:3477 +#: f.meta.cc:2741 f.meta.cc:3213 f.meta.cc:3481 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "latitud/longitud incorrecta: %s %s" -#: f.meta.cc:3024 +#: f.meta.cc:3028 msgid "Geocoding web service courtesy of" msgstr "Servicio web de geocódigos cortesía de" -#: f.meta.cc:3045 f.meta.cc:3259 f.meta.cc:4772 +#: f.meta.cc:3049 f.meta.cc:3263 f.meta.cc:4778 msgid "city" msgstr "ciudad" -#: f.meta.cc:3048 f.meta.cc:3262 f.meta.cc:4775 +#: f.meta.cc:3052 f.meta.cc:3266 f.meta.cc:4781 msgid "country" msgstr "pais" -#: f.meta.cc:3120 f.meta.cc:3390 +#: f.meta.cc:3124 f.meta.cc:3394 msgid "city not found" msgstr "ciudad no encontrada" -#: f.meta.cc:3455 +#: f.meta.cc:3459 msgid "" "data is incomplete \n" " proceed?" @@ -2649,139 +2666,139 @@ "los datos están incompletos \n" " ¿proceder?" -#: f.meta.cc:3481 f.tools.cc:4844 +#: f.meta.cc:3485 f.tools.cc:5143 msgid "no files selected" msgstr "no hay archivos seleccionados" -#: f.meta.cc:3513 +#: f.meta.cc:3517 msgid "choose city" msgstr "escoger ciudad" -#: f.meta.cc:3599 +#: f.meta.cc:3603 msgid "not found" msgstr "no encontrada" -#: f.meta.cc:3600 +#: f.meta.cc:3604 msgid "city and country required" msgstr "ciudad y pais requeridos" -#: f.meta.cc:3692 +#: f.meta.cc:3696 msgid "Report Geotag Groups" msgstr "Informe de grupos de etiquetas" -#: f.meta.cc:3693 +#: f.meta.cc:3697 msgid "Group by country" msgstr "Agrupar por país" -#: f.meta.cc:3694 +#: f.meta.cc:3698 msgid "Group by country/city" msgstr "Agrupar por país/ciudad" -#: f.meta.cc:3695 +#: f.meta.cc:3699 msgid "Group by country/city/date" msgstr "Agrupar por país/ciudad/fecha" -#: f.meta.cc:3698 +#: f.meta.cc:3702 msgid "Combine within" msgstr "Combinar dentro" -#: f.meta.cc:3700 +#: f.meta.cc:3704 msgid "days" msgstr "dias" -#: f.meta.cc:3815 +#: f.meta.cc:3819 msgid "geotag groups" msgstr "grupos de geoetiquetas" -#: f.meta.cc:4043 +#: f.meta.cc:4047 msgid "search range (km)" msgstr "buscar en un rango (km)" -#: f.meta.cc:4116 +#: f.meta.cc:4120 msgid "No matching images found" msgstr "No encontradas imagenes coincidentes" -#: f.meta.cc:4202 +#: f.meta.cc:4206 msgid "Search Image Metadata" msgstr "Buscar los metadatos de la imagen" -#: f.meta.cc:4206 +#: f.meta.cc:4210 msgid "images to search:" msgstr "imágenes a buscar:" -#: f.meta.cc:4207 +#: f.meta.cc:4211 msgid "all" msgstr "todo" -#: f.meta.cc:4208 +#: f.meta.cc:4212 msgid "current set only" msgstr "sólo selección actual" -#: f.meta.cc:4211 +#: f.meta.cc:4215 msgid "matching images:" msgstr "imágenes coincidentes" -#: f.meta.cc:4212 +#: f.meta.cc:4216 msgid "new set" msgstr "nueva selección" -#: f.meta.cc:4213 +#: f.meta.cc:4217 msgid "add to set" msgstr "añadir a la selección" -#: f.meta.cc:4214 +#: f.meta.cc:4218 msgid "remove" msgstr "eliminar" -#: f.meta.cc:4217 +#: f.meta.cc:4221 msgid "report type:" msgstr "" -#: f.meta.cc:4218 +#: f.meta.cc:4222 msgid "gallery" msgstr "" -#: f.meta.cc:4219 +#: f.meta.cc:4223 msgid "metadata" msgstr "" -#: f.meta.cc:4225 +#: f.meta.cc:4229 msgid "date range" msgstr "rango de fechas" -#: f.meta.cc:4226 +#: f.meta.cc:4230 msgid "stars range" msgstr "rango de estrellas" -#: f.meta.cc:4227 +#: f.meta.cc:4231 msgid "search tags" msgstr "buscar etiquetas" -#: f.meta.cc:4228 +#: f.meta.cc:4232 msgid "search text" msgstr "buscar texto" -#: f.meta.cc:4229 +#: f.meta.cc:4233 msgid "search files" msgstr "buscar archivos" -#: f.meta.cc:4234 +#: f.meta.cc:4238 msgid "(yyyymmdd)" msgstr "(aaaammdd)" -#: f.meta.cc:4240 +#: f.meta.cc:4244 msgid "all/any" msgstr "todo/cualquiera" -#: f.meta.cc:4259 +#: f.meta.cc:4263 msgid "other criteria" msgstr "otro criterio" -#: f.meta.cc:4263 +#: f.meta.cc:4267 msgid "other" msgstr "otro" -#: f.meta.cc:4398 +#: f.meta.cc:4402 msgid "" "to remove images from current set, \n" "search current set" @@ -2789,7 +2806,7 @@ "para eliminar imágenes de la selección actual, \n" "buscar en la selección actual" -#: f.meta.cc:4405 +#: f.meta.cc:4409 msgid "" "to add images to current set, \n" "search all images" @@ -2797,28 +2814,28 @@ "para añadir imágenes a la selección actual, \n" "buscar en todas las imágenes" -#: f.meta.cc:4632 +#: f.meta.cc:4636 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "imágenes añadidas: %d eliminadas: %d nueva cantidad: %d" -#: f.meta.cc:4635 +#: f.meta.cc:4639 msgid "no changes made" msgstr "no se han efectuado cambios" -#: f.meta.cc:4769 +#: f.meta.cc:4775 msgid "Add Geotags Search Criteria" msgstr "Añadir criterios de búsqueda de geoetiquetas" -#: f.meta.cc:4788 +#: f.meta.cc:4794 msgid "range (km)" msgstr "rango (km)" -#: f.meta.cc:4881 +#: f.meta.cc:4885 msgid "error in latitude/longitude/range" msgstr "error en latitud/longitud/rango" -#: f.meta.cc:4946 +#: f.meta.cc:4950 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2826,19 +2843,19 @@ "Siempre se informa de estos elementos: \n" "fecha, estrellas, etiquetas, leyenda, comentario" -#: f.meta.cc:4970 +#: f.meta.cc:4974 msgid "Additional Items for Report" msgstr "Elementos adicionales para el informe" -#: f.meta.cc:4976 +#: f.meta.cc:4980 msgid "Keyword" msgstr "Palabra clave" -#: f.meta.cc:4983 +#: f.meta.cc:4987 msgid "Match Criteria" msgstr "Criterio de coincidencia" -#: f.meta.cc:5554 f.tools.cc:300 +#: f.meta.cc:5558 f.tools.cc:300 msgid "image index is missing" msgstr "necesario indexar imágenes" @@ -2882,7 +2899,7 @@ "1. Arrastre el ratón para seleccionar. \n" "2. Borrar. 3. Repetir." -#: f.repair.cc:1563 fotoxx.h:1048 +#: f.repair.cc:1563 fotoxx.h:1053 msgid "Radius" msgstr "Radio" @@ -3003,87 +3020,95 @@ msgid "Stuck Pixels file" msgstr "Archivo de píxeles defectuosos" -#: f.repair.cc:4203 +#: f.repair.cc:4203 f.tools.cc:3380 msgid "file format error" msgstr "error de formato de archivo" -#: f.retouch.cc:292 fotoxx.h:993 +#: f.retouch.cc:292 +msgid "Amplifier" +msgstr "" + +#: f.retouch.cc:293 fotoxx.h:998 msgid "Brightness" msgstr "Brillo -" -#: f.retouch.cc:293 fotoxx.h:1000 +#: f.retouch.cc:294 fotoxx.h:1005 msgid "Contrast" msgstr "Contraste" -#: f.retouch.cc:294 +#: f.retouch.cc:295 msgid "Low Color" msgstr "Color -" -#: f.retouch.cc:295 +#: f.retouch.cc:296 msgid "Warmer" msgstr "Calidez" -#: f.retouch.cc:296 +#: f.retouch.cc:297 msgid "Dark Areas" msgstr "Sombras" -#: f.retouch.cc:304 f.retouch.cc:305 f.retouch.cc:306 +#: f.retouch.cc:306 +msgid "Max." +msgstr "" + +#: f.retouch.cc:307 f.retouch.cc:308 f.retouch.cc:309 msgid "High" msgstr "+" -#: f.retouch.cc:307 +#: f.retouch.cc:310 msgid "Cooler" msgstr "Frio" -#: f.retouch.cc:308 +#: f.retouch.cc:311 msgid "Bright" msgstr "Luces" -#: f.retouch.cc:311 +#: f.retouch.cc:317 msgid "Click for white balance or black level" msgstr "Clic para balance de blancos o punto negro" -#: f.retouch.cc:957 +#: f.retouch.cc:1067 msgid "low" msgstr "bajo" -#: f.retouch.cc:959 +#: f.retouch.cc:1069 msgid "high" msgstr "alto" -#: f.retouch.cc:962 +#: f.retouch.cc:1072 msgid "Amplify" msgstr "Ampliar" -#: f.retouch.cc:1301 +#: f.retouch.cc:1411 msgid "Adjust Brightness Distribution" msgstr "Ajustar histograma" -#: f.retouch.cc:1339 +#: f.retouch.cc:1449 msgid "Flatten" msgstr "Aplanar" -#: f.retouch.cc:1340 +#: f.retouch.cc:1450 msgid "Deband" msgstr "Eliminar bandas" -#: f.retouch.cc:1341 +#: f.retouch.cc:1451 msgid "Darken" msgstr "Oscurecer" -#: f.retouch.cc:1342 +#: f.retouch.cc:1452 msgid "Brighten" msgstr "Aclarar" -#: f.retouch.cc:1675 +#: f.retouch.cc:1784 msgid "Ramp brightness across image" msgstr "Rampa de brillo a traves de la imagen" -#: f.retouch.cc:2052 f.tools.cc:5777 +#: f.retouch.cc:2161 f.retouch.cc:2398 f.tools.cc:6085 msgid "Edit function must be active" msgstr "la función de edición debe estar activa" -#: f.retouch.cc:2060 fotoxx-14.03.cc:3108 +#: f.retouch.cc:2169 fotoxx-14.04.cc:3132 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -3091,14 +3116,26 @@ "No se puede conservar la selección de área.\n" "¿Continuar" -#: f.retouch.cc:2089 +#: f.retouch.cc:2198 msgid "power: center" msgstr "fuerza: centro" -#: f.retouch.cc:2094 +#: f.retouch.cc:2203 msgid "reset area" msgstr "restablecer área" +#: f.retouch.cc:2391 +msgid "Edit Function Amplifier" +msgstr "Amplificador de la función de edición" + +#: f.retouch.cc:2427 +msgid "minimum" +msgstr "mínimo" + +#: f.retouch.cc:2429 +msgid "maximum" +msgstr "máximo" + #: f.tools.cc:95 msgid "Top Image Directories" msgstr "directorios principales de imágenes" @@ -3154,152 +3191,136 @@ msgid "COMPLETED" msgstr "COMPLETADO" -#: f.tools.cc:818 +#: f.tools.cc:817 msgid "Settings" msgstr "Ajustes" -#: f.tools.cc:821 +#: f.tools.cc:820 msgid "Startup Display" msgstr "Pantalla de inicio" -#: f.tools.cc:823 +#: f.tools.cc:822 msgid "Recent Files Gallery" msgstr "Galería de archivos recientes" -#: f.tools.cc:825 +#: f.tools.cc:824 msgid "Newest Files Gallery" msgstr "Galería de archivos más recientes" -#: f.tools.cc:827 +#: f.tools.cc:826 msgid "Previous Gallery" msgstr "" -#: f.tools.cc:829 +#: f.tools.cc:828 msgid "Previous Image" msgstr "" -#: f.tools.cc:831 +#: f.tools.cc:830 msgid "Blank Window" msgstr "Ventana vacía" -#: f.tools.cc:833 +#: f.tools.cc:832 msgid "Directory Gallery" msgstr "Directorio de la galería" -#: f.tools.cc:837 +#: f.tools.cc:836 msgid "Image File" msgstr "Archivo de imagen" -#: f.tools.cc:844 -msgid "Menu Style" -msgstr "Estilo de menú" - -#: f.tools.cc:845 -msgid "Classic" -msgstr "Clásico" - -#: f.tools.cc:846 -msgid "Vertical" -msgstr "Vertical" - -#: f.tools.cc:849 +#: f.tools.cc:843 msgid "Toolbar Style" msgstr "Estilo de la barra de herramientas" -#: f.tools.cc:851 +#: f.tools.cc:845 msgid "Icons" msgstr "Iconos" -#: f.tools.cc:852 +#: f.tools.cc:846 msgid "Both" msgstr "Ambos" -#: f.tools.cc:855 +#: f.tools.cc:849 msgid "Image Pan" msgstr "Movimiento de imagen" -#: f.tools.cc:856 +#: f.tools.cc:850 msgid "Drag" msgstr "Arrastrar" -#: f.tools.cc:857 -msgid "Scroll" -msgstr "Desplazar" - -#: f.tools.cc:858 +#: f.tools.cc:852 msgid "Magnified" msgstr "Ampliada" -#: f.tools.cc:867 +#: f.tools.cc:861 msgid "Default JPEG quality" msgstr "calidad JPEG por defecto" -#: f.tools.cc:871 +#: f.tools.cc:865 msgid "Zooms for 200%" msgstr "Zooms para 200%" -#: f.tools.cc:875 +#: f.tools.cc:869 msgid "RAW command" msgstr "Comando RAW" -#: f.tools.cc:879 +#: f.tools.cc:873 msgid "RAW file types" msgstr "Tipos de archivos RAW" -#: f.tools.cc:1027 +#: f.tools.cc:1016 msgid "startup directory is invalid" msgstr "El directorio de inicio no es correcto" -#: f.tools.cc:1035 +#: f.tools.cc:1024 msgid "startup file is invalid" msgstr "El archivo de inicio no es correcto" -#: f.tools.cc:1130 +#: f.tools.cc:1105 msgid "Select startup directory" msgstr "Seleccionar el directorio de inicio" -#: f.tools.cc:1138 +#: f.tools.cc:1113 msgid "Select startup image file" msgstr "Seleccionar el archivo de imagen de inicio" -#: f.tools.cc:1176 +#: f.tools.cc:1151 msgid "Click list position. Click thumbnail to add." msgstr "Clic en una posición de la lista. Clic en la miniatura para añadir" -#: f.tools.cc:1201 f.tools.cc:1418 +#: f.tools.cc:1176 f.tools.cc:1393 msgid "Edit Bookmarks" msgstr "Añadir marcadores" -#: f.tools.cc:1349 +#: f.tools.cc:1324 msgid "unable to save bookmarks file" msgstr "incapaz de guardar archivo de marcadores" -#: f.tools.cc:1418 +#: f.tools.cc:1393 msgid "Go To Bookmark" msgstr "Ir a un marcador" -#: f.tools.cc:1563 +#: f.tools.cc:1538 msgid "Edit KB Shortcuts" msgstr "Editar atajos de teclado" -#: f.tools.cc:1568 +#: f.tools.cc:1543 msgid "shortcut key:" msgstr "atajo de teclado" -#: f.tools.cc:1569 +#: f.tools.cc:1544 msgid "(enter key)" msgstr "" -#: f.tools.cc:1695 +#: f.tools.cc:1670 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Reservada, no se puede utilizar" -#: f.tools.cc:1826 +#: f.tools.cc:1801 msgid "unable to save KB-shortcuts file" msgstr "imposible guardar archivos de atajos de teclado" -#: f.tools.cc:1914 +#: f.tools.cc:1889 msgid "" "Right-click collection thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -3307,280 +3328,313 @@ "Clic derecho en la miniatura de la colección para cortar/copiar \n" "al caché, insertar desde el caché, o borrar" -#: f.tools.cc:1955 +#: f.tools.cc:1930 msgid "Start a new collection, add images" msgstr "Empezar una nueva colección, añadir imágenes" -#: f.tools.cc:1957 +#: f.tools.cc:1932 msgid "New collection from current gallery" msgstr "Nueva colección desde la galería actual" -#: f.tools.cc:1959 +#: f.tools.cc:1934 msgid "Collection to view or edit" msgstr "Colección para ver o editar" -#: f.tools.cc:1961 +#: f.tools.cc:1936 msgid "Select images, add to cache" msgstr "Seleccionar imágenes, añadir al caché" -#: f.tools.cc:1963 +#: f.tools.cc:1938 msgid "Clear image cache" msgstr "Limpiar caché de imagen" -#: f.tools.cc:1964 +#: f.tools.cc:1939 msgid "(0 images)" msgstr "(0 imágenes)" -#: f.tools.cc:1966 +#: f.tools.cc:1941 msgid "Delete a collection" msgstr "Borrar una colección" -#: f.tools.cc:1987 +#: f.tools.cc:1962 msgid "New Collection" msgstr "Nueva colección" -#: f.tools.cc:1988 +#: f.tools.cc:1963 msgid "Choose Collection" msgstr "Elegir colección" -#: f.tools.cc:1989 +#: f.tools.cc:1964 msgid "Delete Collection" msgstr "Borrar colección" -#: f.tools.cc:1990 +#: f.tools.cc:1965 #, c-format msgid "(%d images)" msgstr "(%d imágenes)" -#: f.tools.cc:1991 +#: f.tools.cc:1966 #, c-format msgid "%d images remaining in cache" msgstr "%d imágenes permanecen en caché" -#: f.tools.cc:2025 f.tools.cc:2064 +#: f.tools.cc:2000 f.tools.cc:2039 msgid "New collection created" msgstr "Nueva colección creada" -#: f.tools.cc:2031 +#: f.tools.cc:2006 msgid "gallery is empty" msgstr "la galería está vacía" -#: f.tools.cc:2105 +#: f.tools.cc:2080 #, c-format msgid "delete %s ?" msgstr "¿borrar %s ?" -#: f.tools.cc:2461 +#: f.tools.cc:2436 msgid "all collections" msgstr "todas las colecciones" -#: f.tools.cc:2495 +#: f.tools.cc:2470 msgid "Move Collection" msgstr "Mover la colección" -#: f.tools.cc:2497 +#: f.tools.cc:2472 msgid "collection name" msgstr "nombre de la colección" -#: f.tools.cc:2500 +#: f.tools.cc:2475 msgid "old path segment" msgstr "antigua rama de directorio" -#: f.tools.cc:2503 +#: f.tools.cc:2478 msgid "new path segment" msgstr "nueva rama de directorio" -#: f.tools.cc:2592 +#: f.tools.cc:2567 msgid "Replace Collection?" msgstr "¿Sustituir colección?" -#: f.tools.cc:2708 +#: f.tools.cc:2694 msgid "Press ESC to exit slide show" msgstr "Pulse ESC para salir del diaporama" -#: f.tools.cc:2709 -msgid "last versions" -msgstr "últimas versiones" - -#: f.tools.cc:2713 +#: f.tools.cc:2696 msgid "instant" msgstr "instantánea" -#: f.tools.cc:2714 +#: f.tools.cc:2697 msgid "fade-in" msgstr "fundido" -#: f.tools.cc:2715 +#: f.tools.cc:2698 msgid "roll-right" msgstr "desenrollar hacia la derecha" -#: f.tools.cc:2716 +#: f.tools.cc:2699 msgid "roll-down" msgstr "desenrollar hacia abajo" -#: f.tools.cc:2717 +#: f.tools.cc:2700 msgid "venetian" msgstr "persiana" -#: f.tools.cc:2718 +#: f.tools.cc:2701 msgid "grate" msgstr "enrejado" -#: f.tools.cc:2719 +#: f.tools.cc:2702 msgid "rectangle" msgstr "rectángulo" -#: f.tools.cc:2720 +#: f.tools.cc:2703 msgid "radar" msgstr "radar" -#: f.tools.cc:2721 +#: f.tools.cc:2704 msgid "jaws" msgstr "dientes" -#: f.tools.cc:2722 +#: f.tools.cc:2705 msgid "ellipse" msgstr "elipse" -#: f.tools.cc:2723 +#: f.tools.cc:2706 msgid "raindrops" msgstr "gotas de lluvia" -#: f.tools.cc:2724 +#: f.tools.cc:2707 msgid "doubledoor" msgstr "doble puerta" -#: f.tools.cc:2725 +#: f.tools.cc:2708 msgid "rotate" msgstr "" -#: f.tools.cc:2787 -msgid "Pause List" -msgstr "Listar pausas" +#: f.tools.cc:2739 +msgid "Clip Limit" +msgstr "Límite de secuencia" -#: f.tools.cc:2794 -msgid "transitions" -msgstr "transiciones" +#: f.tools.cc:2741 +msgid "Show Captions" +msgstr "Mostrar leyendas" -#: f.tools.cc:2796 -msgid "seconds" -msgstr "segundos" +#: f.tools.cc:2744 +msgid "Music File" +msgstr "Archivo de Música" -#: f.tools.cc:2800 -msgid "Clip Limit (%)" -msgstr "Límite de secuencia (%)" - -#: f.tools.cc:2802 -msgid "show captions" +#: f.tools.cc:2749 +msgid "Customize:" msgstr "" -#: f.tools.cc:2805 -msgid "music file" -msgstr "archivo de música" +#: f.tools.cc:2750 +msgid "transitions" +msgstr "transiciones" + +#: f.tools.cc:2751 +msgid "image files" +msgstr "" -#: f.tools.cc:2820 f.tools.cc:2828 f.tools.cc:2956 f.tools.cc:2979 -#: f.tools.cc:2992 +#: f.tools.cc:2759 f.tools.cc:2880 #, c-format msgid "%d images" msgstr "%d imágenes" -#: f.tools.cc:2854 -msgid "no image files selected" -msgstr "no hay imágenes seleccionadas" +#: f.tools.cc:2781 f.tools.cc:2847 f.tools.cc:2875 f.tools.cc:2937 +#: f.tools.cc:3033 f.tools.cc:3189 f.tools.cc:3236 f.tools.cc:3253 +#: f.tools.cc:3396 +msgid "invalid collection" +msgstr "colección no nválida" -#: f.tools.cc:2945 f.tools.cc:2968 +#: f.tools.cc:2860 msgid "open collection" msgstr "abrir colección" -#: f.tools.cc:3013 +#: f.tools.cc:2900 msgid "Select music file or playlist" msgstr "Seleccionar un archivo de música o una lista de reproducción" -#: f.tools.cc:3046 -msgid "invalid collection" -msgstr "colección no nválida" - -#: f.tools.cc:3061 f.tools.cc:3131 -msgid "empty collection" -msgstr "colección vacía" - -#: f.tools.cc:3167 +#: f.tools.cc:2917 msgid "select random (if 5+ enabled)" msgstr "" -#: f.tools.cc:3186 +#: f.tools.cc:2941 msgid "Transition Preferences" msgstr "Preferencias de transición" -#: f.tools.cc:3196 +#: f.tools.cc:2950 msgid "transition" msgstr "transición" -#: f.tools.cc:3197 +#: f.tools.cc:2951 msgid "enabled" msgstr "habilitado" -#: f.tools.cc:3198 +#: f.tools.cc:2952 msgid "slowdown" msgstr "ralentizar" -#: f.tools.cc:3199 +#: f.tools.cc:2953 msgid "preference" msgstr "preferencia" -#: f.tools.cc:4506 +#: f.tools.cc:3037 +msgid "Image Preferences" +msgstr "" + +#: f.tools.cc:3041 f.tools.cc:3090 f.tools.cc:3202 +msgid "Image File:" +msgstr "" + +#: f.tools.cc:3044 +msgid "Play tone" +msgstr "" + +#: f.tools.cc:3046 +msgid "Transition" +msgstr "" + +#: f.tools.cc:3051 f.tools.cc:3071 +msgid "+Seconds" +msgstr "" + +#: f.tools.cc:3053 +msgid "before zoom" +msgstr "" + +#: f.tools.cc:3056 +msgid "Zoom size %" +msgstr "" + +#: f.tools.cc:3059 +msgid "Steps" +msgstr "" + +#: f.tools.cc:3063 +msgid "Zoom center" +msgstr "" + +#: f.tools.cc:3073 +msgid "after zoom" +msgstr "" + +#: f.tools.cc:3075 +msgid "next" +msgstr "siguiente" + +#: f.tools.cc:4805 msgid "base" msgstr "inicio" -#: f.tools.cc:4508 +#: f.tools.cc:4807 msgid "adder" msgstr "inceremento" -#: f.tools.cc:4512 +#: f.tools.cc:4811 msgid "New Location" msgstr "Nueva ubicación" -#: f.tools.cc:4517 +#: f.tools.cc:4816 msgid "New File Type" msgstr "Nuevo tipo de archivo" -#: f.tools.cc:4521 f.tools.cc:4529 +#: f.tools.cc:4820 f.tools.cc:4828 msgid "no change" msgstr "sin cambios" -#: f.tools.cc:4524 +#: f.tools.cc:4823 msgid "max. Width" msgstr "Ancho máx." -#: f.tools.cc:4527 fotoxx.h:1020 +#: f.tools.cc:4826 fotoxx.h:1025 msgid "Height" msgstr "Alto" -#: f.tools.cc:4532 f.tools.cc:4905 +#: f.tools.cc:4831 f.tools.cc:5204 msgid "Delete Originals" msgstr "Borrar originales" -#: f.tools.cc:4533 f.tools.cc:4902 +#: f.tools.cc:4832 f.tools.cc:5201 msgid "Copy Metadata" msgstr "Copiar metadatos" -#: f.tools.cc:4534 f.tools.cc:4903 +#: f.tools.cc:4833 f.tools.cc:5202 msgid "Upright" msgstr "Enderezar" -#: f.tools.cc:4626 +#: f.tools.cc:4925 msgid "file already exists" msgstr "el archivo ya existe" -#: f.tools.cc:4634 +#: f.tools.cc:4933 msgid "file type not supported" msgstr "tipo de archivo no soportad" -#: f.tools.cc:4703 +#: f.tools.cc:5002 msgid "cannot create new file" msgstr "no se puede crear el nuevo archivo" -#: f.tools.cc:4854 +#: f.tools.cc:5153 msgid "" "new name/base/adder unreasonable\n" " e.g. newname ### 100 10" @@ -3588,117 +3642,117 @@ "nuevo nombre/inicio/incremento no razonable\n" "p.e. nuevonombre ### 100 10" -#: f.tools.cc:4877 +#: f.tools.cc:5176 #, c-format msgid "max. size %d x %d is not reasonable" msgstr "el tamaño máximo %d x %d no es razonable" -#: f.tools.cc:4896 +#: f.tools.cc:5195 #, c-format msgid "Convert %d image files" msgstr "Convertit %d imágenes" -#: f.tools.cc:4897 +#: f.tools.cc:5196 msgid "Rename to" msgstr "Renombrar como" -#: f.tools.cc:4898 +#: f.tools.cc:5197 msgid "Convert to" msgstr "Convertir a" -#: f.tools.cc:4899 +#: f.tools.cc:5198 msgid "Resize within" msgstr "Redimensionar dentro de " -#: f.tools.cc:4900 +#: f.tools.cc:5199 msgid "Output to" msgstr "Salida como" -#: f.tools.cc:4906 +#: f.tools.cc:5205 msgid "PROCEED?" -msgstr "" +msgstr "PROCEDER?" -#: f.tools.cc:4938 +#: f.tools.cc:5237 msgid "Batch Convert RAW Files" msgstr "Convertir en lote archivos RAW" -#: f.tools.cc:4969 +#: f.tools.cc:5268 msgid "output file type" msgstr "tipo de archivo de salida" -#: f.tools.cc:4981 +#: f.tools.cc:5280 msgid "white balance" msgstr "balance de blancos" -#: f.tools.cc:4982 +#: f.tools.cc:5281 msgid "interpolation" msgstr "interpolacion" -#: f.tools.cc:4983 +#: f.tools.cc:5282 msgid "color space" msgstr "espacio de color" -#: f.tools.cc:4984 +#: f.tools.cc:5283 msgid "gamma curve" msgstr "curva Gamma" -#: f.tools.cc:4987 +#: f.tools.cc:5286 msgid "camera" msgstr "cámara" -#: f.tools.cc:4988 +#: f.tools.cc:5287 msgid "fixed" msgstr "fijado" -#: f.tools.cc:4989 +#: f.tools.cc:5288 msgid "calculated" msgstr "calculado" -#: f.tools.cc:5006 +#: f.tools.cc:5305 msgid "default" msgstr "por defecto" -#: f.tools.cc:5012 +#: f.tools.cc:5311 msgid "defaults" msgstr "por defecto" -#: f.tools.cc:5526 +#: f.tools.cc:5834 msgid "x-spacing" msgstr "espaciado X" -#: f.tools.cc:5527 +#: f.tools.cc:5835 msgid "x-count" msgstr "conteo X" -#: f.tools.cc:5528 +#: f.tools.cc:5836 msgid "x-enable" msgstr "activar X" -#: f.tools.cc:5534 +#: f.tools.cc:5842 msgid "y-spacing" msgstr "espaciado Y" -#: f.tools.cc:5535 +#: f.tools.cc:5843 msgid "y-count" msgstr "conteo Y" -#: f.tools.cc:5536 +#: f.tools.cc:5844 msgid "y-enable" msgstr "activar Y" -#: f.tools.cc:5984 +#: f.tools.cc:6292 msgid "Darkest and Brightest Pixels" msgstr "Píxeles más oscuros y más brillantes" -#: f.tools.cc:6007 +#: f.tools.cc:6315 msgid "Dark Limit" msgstr "Límite de oscuridad" -#: f.tools.cc:6008 +#: f.tools.cc:6316 msgid "Bright Limit" msgstr "Límite de brillo" -#: f.tools.cc:6115 +#: f.tools.cc:6423 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3706,31 +3760,31 @@ "El brillo debe mostrar una rampa gradual \n" "Extender hasta el final de los bordes." -#: f.tools.cc:6272 +#: f.tools.cc:6580 msgid "Available Translations" msgstr "Traducciones disponibles" -#: f.tools.cc:6276 +#: f.tools.cc:6584 msgid "Set Language" msgstr "Seleccionar el idioma" -#: f.tools.cc:6364 +#: f.tools.cc:6672 msgid "Make Launcher" msgstr "Crear un lanzador" -#: fotoxx-14.03.cc:312 +#: fotoxx-14.04.cc:309 msgid "Tab F: image file view/edit" msgstr "Peswtaña F : ver/editar imagen" -#: fotoxx-14.03.cc:321 +#: fotoxx-14.04.cc:318 msgid "Tab G: image gallery" msgstr "Pestaña G : galería de imágenes" -#: fotoxx-14.03.cc:330 +#: fotoxx-14.04.cc:327 msgid "Tab W: world map" msgstr "Pestaña W : mapa mundial" -#: fotoxx-14.03.cc:447 +#: fotoxx-14.04.cc:441 msgid "" "First time Fotoxx startup. \n" "Latest version: http://www.kornelix.com/fotoxx \n" @@ -3741,59 +3795,63 @@ "Empezará el proceso de sincronización de imágenes (puede necesitar cierto " "tiemo) \n" -#: fotoxx-14.03.cc:492 +#: fotoxx-14.04.cc:488 msgid "Please install missing programs:" msgstr "Por favor instalar los programas necesarios:" -#: fotoxx-14.03.cc:901 +#: fotoxx-14.04.cc:904 msgid "(reduced)" msgstr "(reducido)" -#: fotoxx-14.03.cc:902 +#: fotoxx-14.04.cc:905 msgid "area active" msgstr "área activa" -#: fotoxx-14.03.cc:903 +#: fotoxx-14.04.cc:906 msgid "dialog open" msgstr "diálogo abierto" -#: fotoxx-14.03.cc:904 +#: fotoxx-14.04.cc:907 msgid "function busy" msgstr "función trabajando" -#: fotoxx-14.03.cc:905 +#: fotoxx-14.04.cc:908 msgid "file index busy" msgstr "indexado de archivos trabajando " -#: fotoxx-14.03.cc:906 +#: fotoxx-14.04.cc:909 msgid "menu locked" msgstr "menú bloqueado" -#: fotoxx-14.03.cc:953 +#: fotoxx-14.04.cc:956 msgid "edits" msgstr "ediciones" -#: fotoxx-14.03.cc:999 +#: fotoxx-14.04.cc:1002 msgid "Kill active dialog?" msgstr "¿Cerrar diálogo activo?" -#: fotoxx-14.03.cc:2768 +#: fotoxx-14.04.cc:1082 +msgid "Location from World Map" +msgstr "Localización desde el mapa mundial" + +#: fotoxx-14.04.cc:2792 msgid "Exceed 50 anchor points" msgstr "Excedidos 50 puntos de anclaje" -#: fotoxx-14.03.cc:2951 +#: fotoxx-14.04.cc:2975 msgid "load curve from a file" msgstr "Cargar curva desde un archivo" -#: fotoxx-14.03.cc:3026 +#: fotoxx-14.04.cc:3050 msgid "save curve to a file" msgstr "Guardar la curva como un archivo" -#: fotoxx-14.03.cc:3101 +#: fotoxx-14.04.cc:3125 msgid "Too many edits, please save image" msgstr "Demasiadas ediciones, por favcor guarde la imagen" -#: fotoxx-14.03.cc:3116 +#: fotoxx-14.04.cc:3140 msgid "" "Select area not active.\n" "Continue?" @@ -3801,288 +3859,292 @@ "La selección de área no está activada.\n" "¿Continuar?" -#: fotoxx-14.03.cc:3503 +#: fotoxx-14.04.cc:3527 msgid "This action will discard changes\n" msgstr "Esta acción descartará los cambios\n" -#: fotoxx-14.03.cc:3504 fotoxx.h:1026 +#: fotoxx-14.04.cc:3528 fotoxx.h:1031 msgid "Keep" msgstr "Guardar" -#: fotoxx-14.03.cc:3505 +#: fotoxx-14.04.cc:3529 msgid "Discard" msgstr "Descartar" -#: fotoxx-14.03.cc:3519 fotoxx-14.03.cc:3539 +#: fotoxx-14.04.cc:3543 fotoxx-14.04.cc:3563 msgid "prior function active" msgstr "función anterior activa" -#: fotoxx.h:983 +#: fotoxx.h:988 msgid "Add" msgstr "Añadir" -#: fotoxx.h:984 +#: fotoxx.h:989 msgid "Add All" msgstr "Añadir todo" -#: fotoxx.h:986 +#: fotoxx.h:991 msgid "Amount" msgstr "Cantidad" -#: fotoxx.h:987 +#: fotoxx.h:992 msgid "Angle" msgstr "Ángulo" -#: fotoxx.h:988 +#: fotoxx.h:993 msgid "Apply" msgstr "Aplicar" -#: fotoxx.h:989 +#: fotoxx.h:994 msgid "Autocomplete" msgstr "Autocompletado" -#: fotoxx.h:990 +#: fotoxx.h:995 msgid "Black" msgstr "Negro" -#: fotoxx.h:991 +#: fotoxx.h:996 msgid "Blend Width" msgstr "Ancho de mezclado" -#: fotoxx.h:994 +#: fotoxx.h:999 msgid "Browse" msgstr "Examinar" -#: fotoxx.h:995 +#: fotoxx.h:1000 msgid "Cancel" msgstr "Cancelar" -#: fotoxx.h:996 +#: fotoxx.h:1001 msgid "center" msgstr "centro" -#: fotoxx.h:997 +#: fotoxx.h:1002 msgid "Choose" msgstr "Elegir" -#: fotoxx.h:998 +#: fotoxx.h:1003 msgid "Clear" msgstr "Limpiar" -#: fotoxx.h:1002 +#: fotoxx.h:1007 msgid "Create" msgstr "" -#: fotoxx.h:1003 +#: fotoxx.h:1008 msgid "Curve File:" msgstr "Archivo de curva:" -#: fotoxx.h:1004 +#: fotoxx.h:1009 msgid "Cut" msgstr "Cortar" -#: fotoxx.h:1005 +#: fotoxx.h:1010 msgid "Delete" msgstr "Borrar" -#: fotoxx.h:1007 -msgid "Bdist" -msgstr "Histograma" +#: fotoxx.h:1012 +msgid "Dist" +msgstr "" -#: fotoxx.h:1008 +#: fotoxx.h:1013 msgid "Done" msgstr "Hecho" -#: fotoxx.h:1009 +#: fotoxx.h:1014 msgid "edge" msgstr "borde" -#: fotoxx.h:1010 +#: fotoxx.h:1015 msgid "Edit" msgstr "Editar" -#: fotoxx.h:1012 +#: fotoxx.h:1017 msgid "Erase" msgstr "Borrar" -#: fotoxx.h:1013 +#: fotoxx.h:1018 msgid "Fetch" msgstr "Extraer" -#: fotoxx.h:1014 +#: fotoxx.h:1019 msgid "Find" msgstr "Encontrar" -#: fotoxx.h:1015 +#: fotoxx.h:1020 msgid "Finish" msgstr "Terminar" -#: fotoxx.h:1016 +#: fotoxx.h:1021 msgid "Font" msgstr "Tipo de letra" -#: fotoxx.h:1017 +#: fotoxx.h:1022 msgid "Geotags" msgstr "Geoetiquetas" -#: fotoxx.h:1019 +#: fotoxx.h:1024 msgid "Grid" msgstr "Rejilla" -#: fotoxx.h:1023 +#: fotoxx.h:1028 msgid "Images" msgstr " Imágenes" -#: fotoxx.h:1024 +#: fotoxx.h:1029 msgid "Insert" msgstr "Insertar" -#: fotoxx.h:1027 +#: fotoxx.h:1032 msgid "limit" msgstr "límite" -#: fotoxx.h:1028 +#: fotoxx.h:1033 msgid "Make" msgstr "Hacer" -#: fotoxx.h:1030 +#: fotoxx.h:1035 msgid "Map" msgstr "Mapa" -#: fotoxx.h:1031 +#: fotoxx.h:1036 msgid "Max" msgstr "Máx" -#: fotoxx.h:1032 +#: fotoxx.h:1037 msgid "Negative" msgstr "Negativo" -#: fotoxx.h:1033 +#: fotoxx.h:1038 msgid "New" msgstr "Nuevo" -#: fotoxx.h:1035 zfuncs.cc:8589 +#: fotoxx.h:1040 zfuncs.cc:8589 msgid "No" msgstr "No" -#: fotoxx.h:1036 +#: fotoxx.h:1041 msgid "no images" msgstr "sin imágenes" -#: fotoxx.h:1037 +#: fotoxx.h:1042 msgid "no selection" msgstr "sin selección" -#: fotoxx.h:1038 +#: fotoxx.h:1043 msgid "OK" msgstr "OK" -#: fotoxx.h:1040 +#: fotoxx.h:1045 msgid "Open RAW File" msgstr "Abrir archivo RAW" -#: fotoxx.h:1042 +#: fotoxx.h:1047 msgid "Pause" msgstr "Pausa" -#: fotoxx.h:1043 +#: fotoxx.h:1048 msgid "Percent" msgstr "Porcentaje" -#: fotoxx.h:1045 +#: fotoxx.h:1050 msgid "Presets" msgstr "Predefinidos" -#: fotoxx.h:1047 +#: fotoxx.h:1052 msgid "Proceed" msgstr "Proceder" -#: fotoxx.h:1049 +#: fotoxx.h:1054 msgid "range" msgstr "rango" -#: fotoxx.h:1052 +#: fotoxx.h:1057 msgid "Reduce" msgstr "Reducir" -#: fotoxx.h:1053 +#: fotoxx.h:1058 msgid "Remove" msgstr "Eliminar" -#: fotoxx.h:1055 +#: fotoxx.h:1060 msgid "Reset" msgstr "Restablecer" -#: fotoxx.h:1056 +#: fotoxx.h:1061 msgid "Rotate" msgstr "Rotar" -#: fotoxx.h:1058 +#: fotoxx.h:1063 msgid "Unknown file type, save as tiff/jpeg/png to edit" msgstr "Tipo de archivo desconocido, guarde como tiff/jpeg/png para editarlo" -#: fotoxx.h:1059 +#: fotoxx.h:1064 msgid "Search" msgstr "Buscar" -#: fotoxx.h:1063 +#: fotoxx.h:1065 +msgid "Seconds" +msgstr "Segundos" + +#: fotoxx.h:1069 msgid "Size" msgstr "Tamaño" -#: fotoxx.h:1064 +#: fotoxx.h:1070 msgid "Start" msgstr "Comenzar" -#: fotoxx.h:1065 +#: fotoxx.h:1071 msgid "Strength" msgstr "Fuerza" -#: fotoxx.h:1066 +#: fotoxx.h:1072 msgid "Threshold" msgstr "Umbral" -#: fotoxx.h:1067 +#: fotoxx.h:1073 #, c-format msgid "exceed %d files" msgstr "se excedió en %d archivos" -#: fotoxx.h:1069 +#: fotoxx.h:1075 msgid "Trim" msgstr "Recortar" -#: fotoxx.h:1070 +#: fotoxx.h:1076 msgid "Undo All" msgstr "Deshacer todo" -#: fotoxx.h:1071 +#: fotoxx.h:1077 msgid "Undo Last" msgstr "Deshacer el último" -#: fotoxx.h:1073 +#: fotoxx.h:1079 msgid "Unfinish" msgstr "Sin cerrar" -#: fotoxx.h:1075 +#: fotoxx.h:1081 msgid "View" msgstr "Ver" -#: fotoxx.h:1076 +#: fotoxx.h:1082 msgid "Web" msgstr "Web" -#: fotoxx.h:1077 +#: fotoxx.h:1083 msgid "White" msgstr "Blanco" -#: fotoxx.h:1079 +#: fotoxx.h:1085 msgid "x-offset" msgstr "desplazamiento X" -#: fotoxx.h:1080 +#: fotoxx.h:1086 msgid "y-offset" msgstr "desplazamiento Y" -#: fotoxx.h:1081 zfuncs.cc:8589 +#: fotoxx.h:1087 zfuncs.cc:8589 msgid "Yes" msgstr "Sí" @@ -4236,731 +4298,3 @@ #: zfuncs.cc:10232 msgid "add parameter" msgstr "añadir parámetro" - -#~ msgid "Choose top image directory" -#~ msgstr "Elegir directorio principal de imagen" - -#~ msgid "Favorites Menu" -#~ msgstr "Menú favoritos" - -#~ msgid "Leverage Edits" -#~ msgstr "Editar por niveles" - -#~ msgid "Leverage edits by brightness or color" -#~ msgstr "Edición de niveles por brillo o color" - -#~ msgid "create" -#~ msgstr "crear" - -#~ msgid "delete" -#~ msgstr "borrar" - -#~ msgid "Edit Function Amplifier" -#~ msgstr "Amplificador de la función de edición" - -#~ msgid "minimum" -#~ msgstr "mínimo" - -#~ msgid "maximum" -#~ msgstr "máximo" - -#~ msgid "Thumbnail Directory" -#~ msgstr "Directorio de miniaturas" - -#~ msgid "location is not a valid directory" -#~ msgstr "la localización no es un directorio valido" - -#~ msgid "Adjust White Balance" -#~ msgstr "Ajustar balance de blanco" - -#~ msgid "Click white or gray image location" -#~ msgstr "Haga clic en una zona blanca o gris en la imagen" - -#~ msgid "reduce" -#~ msgstr "reducir" - -#~ msgid "outline threshold" -#~ msgstr "umbral del contorno" - -#~ msgid "outline width" -#~ msgstr "ancho del contorno" - -#~ msgid "image brightness" -#~ msgstr "brillo de la imagen" - -#~ msgid "portrait" -#~ msgstr "retrato" - -#~ msgid "landscape" -#~ msgstr "paisaje" - -#~ msgid "customize" -#~ msgstr "personalizar" - -#~ msgid "Brightness/Contrast/Color" -#~ msgstr "Brillo/Contraste/Color" - -#~ msgid "Adjust contrast using a gamma curve" -#~ msgstr "Ajustar contraste usando una curva gamma" - -#~ msgid "Gamma Curves" -#~ msgstr "Curvas Gamma" - -#~ msgid "Click on a white/gray area to fix color tint" -#~ msgstr "Clic en un área blanca o gris para corregir dominante de color" - -#~ msgid "White Balance" -#~ msgstr "Balance de blancos" - -#~ msgid "Brightness/Color" -#~ msgstr "Brillo/Color/Saturación" - -#~ msgid "edge detection" -#~ msgstr "detección de borde" - -#~ msgid "cycles" -#~ msgstr "ciclos" - -#~ msgid "small-steps" -#~ msgstr "gradualmente" - -#~ msgid "Saturation" -#~ msgstr "Saturación" - -#~ msgid " reset 1 " -#~ msgstr " restablecer 1 " - -#~ msgid "reset all" -#~ msgstr "restablecer todo" - -#~ msgid "previous" -#~ msgstr "anterior" - -#~ msgid "adjust image gamma" -#~ msgstr "ajustar Gamma de la imagen" - -#~ msgid "arrow keys" -#~ msgstr "teclas de flecha" - -#~ msgid "curve file is invalid" -#~ msgstr "El archivo de curva no es valido" - -#~ msgid "curve file has different no. of curves" -#~ msgstr "El archivo de curvas tiene un número diferente de curvas" - -#~ msgid "histogram" -#~ msgstr "histograma" - -#~ msgid "Blend Width for edits in area" -#~ msgstr "Ancho de mezclado para ediciones en el área" - -#~ msgid "" -#~ "layout image file error: \n" -#~ " %s" -#~ msgstr "" -#~ "error en imagen de capa \n" -#~ " %s" - -#~ msgid "" -#~ "overlay image file error: \n" -#~ " %s" -#~ msgstr "" -#~ "error en imagen superpuesta \n" -#~ " %s" - -#~ msgid "Edge Blend Width" -#~ msgstr "Ancho de mezcla de borde" - -#~ msgid "Batch Convert/Resize/Move" -#~ msgstr "Convertir/Redimensionar/Mover en lote" - -#~ msgid "latest versions only" -#~ msgstr "sólo últimas versiones" - -#~ msgid "continuous loop" -#~ msgstr "bucle contínuo" - -#~ msgid "start with current image" -#~ msgstr "iniciar con la imagen actual" - -#~ msgid "collection:" -#~ msgstr "colección" - -#~ msgid "save as collection" -#~ msgstr "guardar como colección" - -#~ msgid "same" -#~ msgstr "el mismo" - -#~ msgid "replace originals" -#~ msgstr "sustituír originales" - -#~ msgid "remove EXIF" -#~ msgstr "retirar EXIF" - -#~ msgid "delete originals" -#~ msgstr "borrar originales" - -#~ msgid "replace original files?" -#~ msgstr "¿reemplazar archivos originales?" - -#~ msgid "replace original files? (max. %d x %d)" -#~ msgstr "¿sustituír los archivos originales? (máx. %d x %d)" - -#~ msgid "working" -#~ msgstr "trabajando" - -#~ msgid "Darker Areas" -#~ msgstr "Áreas oscuras" - -#~ msgid "Lighter Areas" -#~ msgstr "Áreas más iluminadas" - -#~ msgid " BUSY %d%c " -#~ msgstr "TRABAJANDO %d%c" - -#~ msgid " BUSY " -#~ msgstr "TRABAJANDO " - -#~ msgid "negative" -#~ msgstr "negativo" - -#~ msgid "nothing in cache" -#~ msgstr "caché vacio" - -#~ msgid "new gallery from tab F" -#~ msgstr "nueva galería desde pestaña F" - -#~ msgid "Convert into a cartoon drawing" -#~ msgstr "Convertir a estilo de dibujo animado" - -#~ msgid "Cartoon" -#~ msgstr "Estilo dibujo animado" - -#~ msgid "Rotate Left 90 degrees" -#~ msgstr "Girar a la izquierda 90º" - -#~ msgid "Rotate Left" -#~ msgstr "Girar a la izquierda" - -#~ msgid "Rotate Right 90 degrees" -#~ msgstr "Girar a la defecha 90º" - -#~ msgid "Rotate Right" -#~ msgstr "Girar a la defecha" - -#~ msgid "invert" -#~ msgstr "invertir" - -#~ msgid "Use buttons or drag right edge with mouse" -#~ msgstr "Usar los botones o arrastrar el borde derecho con el ratón" - -#~ msgid "Contrast Saturation" -#~ msgstr "Saturación de contraste" - -#~ msgid "Contrast Spread" -#~ msgstr "Extensión de contraste" - -#~ msgid "Contrast Span" -#~ msgstr "Medida para contraste" - -#~ msgid "Cartoon Parameters" -#~ msgstr "Parámetros de dibujo animado" - -#~ msgid "Adjust Brightness and Color" -#~ msgstr "Ajustar brillo y color" - -#~ msgid "Save+F" -#~ msgstr "Guardar+Arch" - -#~ msgid "Save to a new file" -#~ msgstr "Guardar en un nuevo archivo" - -#~ msgid "Save+V" -#~ msgstr "Guardar+Vers" - -#~ msgid "Save to a new version" -#~ msgstr "Guardar en una nueva versión" - -#~ msgid "Save to the same file" -#~ msgstr "Guardar en el mismo archivo" - -#~ msgid "Save to a new file name" -#~ msgstr "Guardar en un nuevo nombre de archivo" - -#~ msgid "Save to New File" -#~ msgstr "Guardar en un archivo nuevo" - -#~ msgid "Save to a new (next) version" -#~ msgstr "Guardar como una nueva (próxima) versión" - -#~ msgid "Save to New Version" -#~ msgstr "Guardar como nueva versión" - -#~ msgid "Save to the same file (replace)" -#~ msgstr "Guardar en el mismo archivo (reemplazar)" - -#~ msgid "Save to Same File" -#~ msgstr "Guardar en el mismo archivo" - -#~ msgid "Save File" -#~ msgstr "Guardar el archivo" - -#~ msgid "Warning" -#~ msgstr "Aviso" - -#~ msgid "Do not warn again" -#~ msgstr "No volver a avisar" - -#~ msgid "Overwrite original file?" -#~ msgstr "¿Sobreescribir el archivo original?" - -#~ msgid "Save Stuck Pixels" -#~ msgstr "Guardar los píxeles retenidos" - -#~ msgid "there are zero stuck pixels" -#~ msgstr "hay cero píxeles retenidos" - -#~ msgid "current tags" -#~ msgstr "etiquetas actuales" - -#~ msgid "image stars" -#~ msgstr "estrellas de la imagen" - -#~ msgid "use last" -#~ msgstr "usar el último" - -#~ msgid "image date (yyyymmdd)" -#~ msgstr "fecha de la imagen (aaaammdd)" - -#~ msgid "Edit Caption and Comments" -#~ msgstr "Editar título y comentarios" - -#~ msgid "change sequence" -#~ msgstr "cambiar secuencia" - -#~ msgid "jump to last page" -#~ msgstr "ir a la última página" - -#~ msgid "jump to first page" -#~ msgstr "ir a la primera página" - -#~ msgid "Gallery from Tab F" -#~ msgstr "Galería desde la pestaña F" - -#~ msgid "Edit image geotags" -#~ msgstr "Editar geoetiquetas de la imagen" - -#~ msgid "Batch Tags" -#~ msgstr "Etiquetar en lote" - -#~ msgid "Edit image date/rating/tags" -#~ msgstr "Editar fecha/clasificación/etiquetas de la imagen" - -#~ msgid "Edit image caption or comment" -#~ msgstr "Editar leyenda o comentario de la imagen" - -#~ msgid "Edit Caption/Comments" -#~ msgstr "Editar leyenda/comentarios" - -#~ msgid "User Guide etc." -#~ msgstr "Guía de usuariuo, etc." - -#~ msgid "no plugin command" -#~ msgstr "sin orden de complemento" - -#~ msgid "cmsCreateTransform() failed" -#~ msgstr "Falló crear transformar cms()" - -#~ msgid "angle" -#~ msgstr "ángulo" - -#~ msgid "Start a new collection" -#~ msgstr "Iniciar una nueva colección" - -#~ msgid "" -#~ "Right-click collection thumbnails to \n" -#~ "cut/copy to cache, paste cache, remove." -#~ msgstr "" -#~ "Clic derecho en la colección de miniaturas para \n" -#~ "cortar/copiar al caché, pegar en la caché, eliminar" - -#~ msgid "Warn Overwrite Original" -#~ msgstr "Avisar sobreescritura del original" - -#~ msgid "bright pixels" -#~ msgstr "píxeles brillantes" - -#~ msgid "Expand Brightness Range" -#~ msgstr "Expandir histograma hacia los extremos" - -#~ msgid "Flatten Brightness Distribution" -#~ msgstr "Aplanar histograma" - -#~ msgid "Expand brightness range" -#~ msgstr "Desplazar valores centrales del histograma hacia los extremos." - -#~ msgid "Expand Brightness" -#~ msgstr "Expandir histograma" - -#~ msgid "Flatten brightness distribution" -#~ msgstr "Aplanar histograma subiendo valores más pequeños." - -#~ msgid "Flatten Brightness" -#~ msgstr "Aplanar histograma" - -#~ msgid "Cut off unwanted margins" -#~ msgstr "Cortar márgenes no deseados" - -#~ msgid "Rotate by any angle" -#~ msgstr "Girar cualquier ángulo" - -#~ msgid "Rotate, Trim/Crop, Resize, Add Text" -#~ msgstr "Girar, recortar, redimensionar, añadir texto" - -#~ msgid "Trim/Crop" -#~ msgstr "Recortar" - -#~ msgid "Drag middle to move, drag corners to resize." -#~ msgstr "" -#~ "Arrastrar desde el medio para mover, las esquinas para redimensionar" - -#~ msgid "degrees" -#~ msgstr "grados" - -#~ msgid "Rotate Image" -#~ msgstr "Rotar imagen" - -#~ msgid "Drag right edge with mouse" -#~ msgstr "Arrastrar borde derecho con el ratón" - -#~ msgid "Save CMYK parameters" -#~ msgstr "Guardar parámetros CMYK" - -#~ msgid "CMYK parameters file" -#~ msgstr "Archivo de parámetros CMYK" - -#~ msgid "Load CMYK parameters" -#~ msgstr "Cargar parámetros CMYK" - -#~ msgid "Add standard bias" -#~ msgstr "Añadir desviación estándar" - -#~ msgid "Blue: Red" -#~ msgstr "Azul: Rojo" - -#~ msgid "Green: Blue" -#~ msgstr "Verde: Azul" - -#~ msgid "Red: Green" -#~ msgstr "Rojo: Verde" - -#~ msgid "search index file missing" -#~ msgstr "buscar archivo índice perdido" - -#~ msgid "Discard edits?" -#~ msgstr "¿Descartar las ediciones?" - -#~ msgid "prior function still active" -#~ msgstr "la función anterior aún está activada" - -#~ msgid "completed" -#~ msgstr "completado" - -#~ msgid "new top directory" -#~ msgstr "nuevo directorio superior" - -#~ msgid "old top directory" -#~ msgstr "antiguo directorio superior" - -#~ msgid "geotags file must be downloaded" -#~ msgstr "se debe descargar archivo de geoetiquetas" - -#~ msgid "CMYK Density" -#~ msgstr "Densidad CMYK" - -#~ msgid "Newly Added Images" -#~ msgstr " Imágenes añadidas nuevas" - -#~ msgid "Plugins menu is empty" -#~ msgstr "Menú de complementos vacío" - -#~ msgid "menu name" -#~ msgstr "nombre de menu" - -#~ msgid "False Colors" -#~ msgstr "Cambiar colores" - -#~ msgid "+Brightness -Density" -#~ msgstr "+Brillo -Densidad" - -#~ msgid "open folder" -#~ msgstr "abrir carpeta" - -#~ msgid "choose" -#~ msgstr "escoger" - -#~ msgid "open" -#~ msgstr "abrir" - -#~ msgid "search index missing" -#~ msgstr "necesario índice de búsqueda" - -#~ msgid "file sync active" -#~ msgstr "sincronización de archivos activa" - -#~ msgid "file sync busy" -#~ msgstr "sincronización de archivos en curso" - -#~ msgid "edits: %d" -#~ msgstr "ediciones: %d" - -#~ msgid "" -#~ "\n" -#~ " and delete originals" -#~ msgstr "" -#~ "\n" -#~ " y borrar originales" - -#~ msgid "" -#~ "copy files? (max. %d x %d) \n" -#~ " to location %s" -#~ msgstr "" -#~ "¿copiar los archivos? (max. %d x %d) \n" -#~ " a la ubicación %s" - -#~ msgid "" -#~ "copy files? \n" -#~ " to location %s" -#~ msgstr "" -#~ "¿copiar archivos? \n" -#~ " a la ubicación %s" - -#~ msgid "overwrite files? (max. %d x %d)" -#~ msgstr "¿sobreescribir archivos (max. %d x %d)?" - -#~ msgid "overwrite files?" -#~ msgstr "¿sobreescribir archivos?" - -#~ msgid "upright rotation" -#~ msgstr "rotación vertical" - -#~ msgid "delete metadata" -#~ msgstr "borrar metadatos" - -#~ msgid "move to location" -#~ msgstr "mover a la ubicación" - -#~ msgid "copy to location" -#~ msgstr "copiar a la ubicación" - -#~ msgid "overwrite" -#~ msgstr "sobreescribir" - -#~ msgid "max. width" -#~ msgstr "máximo ancho" - -#~ msgid "new file type" -#~ msgstr "nuevo tipo de archivo" - -#~ msgid "base name / sequence / increment not reasonable" -#~ msgstr "nombre base/secuencia/incremento no razonablle" - -#~ msgid "Rename failed:" -#~ msgstr "Fallo al renombrar:" - -#~ msgid "new file already exists:" -#~ msgstr "el nuevo archivo ya existe" - -#~ msgid "increment" -#~ msgstr "incremento" - -#~ msgid "starting sequence" -#~ msgstr "iniciando la secuencia" - -#~ msgid "new base name" -#~ msgstr "nuevo nombre base" - -#~ msgid "Show hidden files" -#~ msgstr "Mostrar archivos ocultos" - -#~ msgid "KILLED" -#~ msgstr "ABORTADO" - -#~ msgid "files found in current index recs: %d \n" -#~ msgstr "archivos encontrados en los registros del actual índice: %d \n" - -#~ msgid "merging old and new index records" -#~ msgstr "combinando antiguos y nuevos registros de índice" - -#~ msgid "found %d image files \n" -#~ msgstr "encontradas % imágenes \n" - -#~ msgid "too many image files" -#~ msgstr "demasiadas imágenes" - -#~ msgid "find all image files and build index records" -#~ msgstr "encontrar todas las imágenes y construir registros de índice" - -#~ msgid "%d current index records found \n" -#~ msgstr "%d registros de índice actual encontrados \n" - -#~ msgid "rebuild search index" -#~ msgstr "reconstruir índice de búsqueda" - -#~ msgid "no search index file is in use" -#~ msgstr "ningún archivo índice de búsqueda en uso" - -#~ msgid "%d thumbnails created, %d errors \n" -#~ msgstr "%d miniaturas creadas, %d errores \n" - -#~ msgid "create missing and update stale thumbnails" -#~ msgstr "crear miniaturas perdidas y actualizar las estropeadas" - -#~ msgid "%d orphan thumbnails deleted \n" -#~ msgstr "%d miniaturas huérfanas borradas\n" - -#~ msgid "delete orphan thumbnails" -#~ msgstr "borrar miniaturas huérfanas" - -#~ msgid "delete all thumbnails" -#~ msgstr "borrar todas las miniaturas" - -#~ msgid "Synchronize Files (may need some time)" -#~ msgstr "Sincronizar archivos (puede necesitar algún tiempo)" - -#~ msgid "thumbnail directory cannot be under top directory" -#~ msgstr "" -#~ "el directorio de miniaturas no puede estar bajo el directorio superior" - -#~ msgid "select a thumbnail option" -#~ msgstr "escoger una opción de miniaturas" - -#~ msgid "directory is invalid" -#~ msgstr "el directorio no es valido" - -#~ msgid "File sync is necessary. Cancel anyway?" -#~ msgstr "Necesario sincronizar los archivos. ¿Cancelar de todas formas?" - -#~ msgid "Initialize Everything" -#~ msgstr "Inicializar todo" - -#~ msgid "Use Directory" -#~ msgstr "Usar directorio" - -#~ msgid "Use hidden directories with images" -#~ msgstr "Usar directorios ocultos con las imágenes" - -#~ msgid "None (galleries are slow)" -#~ msgstr "Ninguna (las galerias serán lentas)" - -#~ msgid "Thumbnail Options:" -#~ msgstr "Opciones de miniaturas" - -#~ msgid "(if NO, metadata functions are disabled)" -#~ msgstr "(si NO, las funciones de metadatos serán dshabilitadas)" - -#~ msgid "Use file sync function (recommended)" -#~ msgstr "Usar función de sincronización (recomendado)" - -#~ msgid "file sync not needed" -#~ msgstr "no necesaria sincronización de archivos" - -#~ msgid "file sync disabled" -#~ msgstr "sincronización de archivos deshabilitada" - -#~ msgid "new/modified files are present" -#~ msgstr "hay archivos nuevos/modificados" - -#~ msgid "last file sync time is unknown" -#~ msgstr "fecha de la ultima sincronización de archivos es desconocido" - -#~ msgid "no search index file is present" -#~ msgstr "no hay ningún archivo de índice de búsquedas" - -#~ msgid "thumbnail directory is invalid" -#~ msgstr "el directorio de miniaturas no es válido" - -#~ msgid "top image directory is invalid" -#~ msgstr "el directorio de imagenes principal no es correcto" - -#~ msgid "" -#~ "Synchronize Files makes gallery windows fast \n" -#~ "and enables metadata functions to work correctly.\n" -#~ msgstr "" -#~ "Sincronizar los archivos da velocidad a la galería \n" -#~ "y facilita un trabajo correcto de las funciones de metadatos.\n" - -#~ msgid "click for white balance or black level" -#~ msgstr "clic para balance de blancos o nivel de negro" - -#~ msgid "bright" -#~ msgstr "brillantes" - -#~ msgid "cooler" -#~ msgstr "frio" - -#~ msgid "dark areas" -#~ msgstr "sombras" - -#~ msgid "warmer" -#~ msgstr "Cálidez" - -#~ msgid "low color" -#~ msgstr "Color -" - -#~ msgid "" -#~ "Metadata index is missing.\n" -#~ "Use Tools > Synchronize Files." -#~ msgstr "" -#~ "Índice de metadatos requerido. \n" -#~ "Use Herramientas > Sincronizar archivos" - -#~ msgid "Convert resize, move multiple files" -#~ msgstr "Convertir, redimensionar, mover múltiples imágenes" - -#~ msgid "Rename multiple image files" -#~ msgstr "Renombrar múltiples imágenes" - -#~ msgid "Batch Rename" -#~ msgstr "Renombrar en lote" - -#~ msgid "Synchronize Files" -#~ msgstr "sincronizar archivos" - -#~ msgid "Synch Files, Settings, Collections, Batch Funcs ..." -#~ msgstr "Sincronizar archivos, ajustes, colecciones, funciones de lote ..." - -#~ msgid "no top image directory defined" -#~ msgstr "no se definió el directorio de imagenes principal" - -#~ msgid "" -#~ "warning: real memory %d MB < required %d MB \n" -#~ "response time may become very long \n" -#~ msgstr "" -#~ "atención: memoria real %d MB < requeridos %d MB \n" -#~ "el tiempo de respuesta se puede volver muy largo \n" - -#~ msgid "select random" -#~ msgstr "selección aleatoria" - -#~ msgid "page-flip" -#~ msgstr "voltear página" - -#~ msgid "shift-left" -#~ msgstr "mauúscula izquierda" - -#~ msgid "(enter keys)" -#~ msgstr " (introducir teclas)" - -#~ msgid "Previous Image Viewed" -#~ msgstr "Imagen vista anterior" - -#~ msgid "invalid thumbnails directory: %s" -#~ msgstr "directorio de miniaturas inválido: %s" - -#~ msgid "Edit translations while using Fotoxx" -#~ msgstr "Editar traducciones mientras se usa Fotoxx" - -#~ msgid "Edit Translations" -#~ msgstr "Editar traducciones" diff -Nru fotoxx-14.03/locales/translate-fr.po fotoxx-14.04/locales/translate-fr.po --- fotoxx-14.03/locales/translate-fr.po 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/locales/translate-fr.po 2014-04-01 06:09:31.000000000 +0000 @@ -10,8 +10,8 @@ msgstr "" "Project-Id-Version: fotoxx_merge\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-01 08:51+0100\n" -"PO-Revision-Date: 2013-09-29 11:18+0100\n" +"POT-Creation-Date: 2014-04-01 08:04+0200\n" +"PO-Revision-Date: 2014-03-03 15:09+0100\n" "Last-Translator: FR_PUPPY_LINUX \n" "Language-Team: FR_PUPPY_LINUX \n" "Language: fr\n" @@ -26,7 +26,7 @@ msgid "Select Area for Edits" msgstr "Sélectionner la Zone de Travail" -#: f.area.cc:57 f.retouch.cc:2051 +#: f.area.cc:57 f.retouch.cc:2160 msgid "Press F1 for help" msgstr "Appuyer sur la touche F1 pour obtenir de l'Aide" @@ -70,7 +70,7 @@ msgid "select all matching colors within mouse" msgstr "Sélectionner toutes les couleurs correspondantes avec la souris" -#: f.area.cc:115 f.retouch.cc:2086 +#: f.area.cc:115 f.retouch.cc:2195 msgid "mouse radius" msgstr "Rayon du pointeur" @@ -89,11 +89,11 @@ #: f.area.cc:129 msgid "Area Edge Blend Width" -msgstr "" +msgstr "Largeur de mélange de bord de zone" #: f.area.cc:132 msgid "Edge Creep" -msgstr "" +msgstr "Fluage du bord" #: f.area.cc:309 f.area.cc:492 #, c-format @@ -163,9 +163,9 @@ msgid "save select area to a file" msgstr "Enregistrer la zone sélectionnée dans un fichier" -#: f.bend.cc:72 f.menus.cc:246 +#: f.bend.cc:72 f.menus.cc:208 msgid "Unbend" -msgstr "Distorsion" +msgstr "Non distorsion" #: f.bend.cc:80 f.image.cc:1655 msgid "vertical" @@ -191,7 +191,7 @@ " Cliquer sur les quatre coins d'un quadrilatère. Cliquer [Appliquer]. \n" " L'image est déformée pour faire du quadrilatère un rectangle." -#: f.bend.cc:353 f.menus.cc:247 +#: f.bend.cc:353 f.menus.cc:209 msgid "Keystone Correction" msgstr "Correction trapèze" @@ -242,7 +242,7 @@ "Répéter plusieurs fois l'opération jusqu'à satisfaction. \n" "Une fois terminé, sélectionner une autre zone ou cliquer sur [Terminé]." -#: f.bend.cc:1105 f.menus.cc:249 +#: f.bend.cc:1105 f.menus.cc:211 msgid "Warp area" msgstr "Déformer la zone" @@ -264,7 +264,7 @@ " Répéter plusieurs fois l'opération jusqu'à satisfaction. \n" " Une fois terminé, cliquer sur [Terminé]." -#: f.bend.cc:1520 f.menus.cc:250 +#: f.bend.cc:1520 f.menus.cc:212 msgid "Warp curved" msgstr "Décintrer" @@ -272,7 +272,7 @@ msgid "warp span" msgstr "Amplitude de la distorsion" -#: f.bend.cc:1830 f.menus.cc:251 +#: f.bend.cc:1830 f.menus.cc:213 msgid "Warp linear" msgstr "Distorsion linéaire" @@ -286,15 +286,15 @@ " Répéter plusieurs fois l'opération jusqu'à satisfaction. \n" " Une fois terminé, cliquer sur [Terminé]." -#: f.bend.cc:2161 f.menus.cc:252 +#: f.bend.cc:2161 f.menus.cc:214 msgid "Warp affine" msgstr "Déformation affinée" -#: f.color.cc:64 f.menus.cc:239 +#: f.color.cc:64 f.menus.cc:201 msgid "Shift Colors" -msgstr "" +msgstr "Couleurs de changement" -#: f.color.cc:285 f.menus.cc:240 +#: f.color.cc:285 f.menus.cc:202 msgid "Color Mode" msgstr "Mode de couleur" @@ -347,8 +347,8 @@ msgid "mouse radius for color sample" msgstr "Rayon du pointeur d'échantillonnage de couleur" -#: f.color.cc:609 f.color.cc:614 f.file.cc:4220 f.menus.cc:208 f.menus.cc:297 -#: f.menus.cc:433 fotoxx.h:1039 +#: f.color.cc:609 f.color.cc:614 f.file.cc:4222 f.menus.cc:172 f.menus.cc:255 +#: f.menus.cc:349 fotoxx.h:1044 msgid "Open" msgstr "Ouvrir" @@ -372,11 +372,11 @@ msgid "select source image color first" msgstr "Sélectionner d'abord la couleur de l'image source" -#: f.color.cc:872 f.tools.cc:5665 +#: f.color.cc:872 f.tools.cc:5973 msgid "Click image to select pixels." msgstr "Cliquer l'image pour sélectionner les pixels." -#: f.color.cc:911 f.menus.cc:243 +#: f.color.cc:911 f.menus.cc:205 msgid "Revise RGB" msgstr "Corriger RVB" @@ -390,7 +390,7 @@ #: f.color.cc:1373 msgid "+Brightness" -msgstr "" +msgstr "+Luminosité" #: f.color.cc:1374 msgid "+Red -Cyan" @@ -404,15 +404,15 @@ msgid "+Blue -Yellow" msgstr "+Bleu -Jaune" -#: f.color.cc:1382 fotoxx.h:1050 +#: f.color.cc:1382 fotoxx.h:1055 msgid "Red" msgstr "Rouge" -#: f.color.cc:1383 fotoxx.h:1018 +#: f.color.cc:1383 fotoxx.h:1023 msgid "Green" msgstr "Vert" -#: f.color.cc:1384 fotoxx.h:992 +#: f.color.cc:1384 fotoxx.h:997 msgid "Blue" msgstr "Bleu" @@ -430,7 +430,7 @@ #: f.combine.cc:2312 msgid "dark pixels" -msgstr "Pixels sombres" +msgstr "Pixels foncés" #: f.combine.cc:2314 msgid "light pixels" @@ -445,7 +445,7 @@ msgstr "Peindre et déformer l'image" #: f.combine.cc:2831 f.combine.cc:3485 f.combine.cc:4902 f.combine.cc:5801 -#: f.effects.cc:3478 f.menus.cc:60 f.menus.cc:121 +#: f.effects.cc:3546 f.menus.cc:87 msgid "Image" msgstr "Image" @@ -513,7 +513,7 @@ msgid "no curve (scanned image)" msgstr "Aucune courbe (image scannée)" -#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:214 f.menus.cc:473 +#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:178 f.menus.cc:386 msgid "Resize" msgstr "Redimensionner" @@ -552,7 +552,7 @@ #: f.combine.cc:6081 msgid "Mashup layout and background image" -msgstr "Disposition Pêle-mêle et image de fond" +msgstr "Disposition Pêle-mêle et image d'arrière-plan" #: f.combine.cc:6110 msgid "choose an image file" @@ -608,7 +608,7 @@ #: f.combine.cc:6263 msgid "delete project file?" -msgstr "" +msgstr "supprimer le fichier du projet?" #: f.combine.cc:6316 msgid "Open Project" @@ -638,6 +638,8 @@ "area info file missing: \n" " %s" msgstr "" +"fichier d'info de la zone manquant: \n" +" %s" #: f.combine.cc:6544 msgid "project file is defective" @@ -653,31 +655,31 @@ #: f.combine.cc:6693 msgid "Scale" -msgstr "" +msgstr "Échelle" #: f.combine.cc:6701 msgid "Base Transparency" -msgstr "" +msgstr "Transparence de base" #: f.combine.cc:6705 msgid "Edge Blend" -msgstr "" +msgstr "Mélange de bord" #: f.combine.cc:6709 msgid "Var. Transparency" -msgstr "" +msgstr "Var. Transparence" #: f.combine.cc:6821 msgid "Paint Image Transparencies" -msgstr "" +msgstr "Peindre les transparences de l'image" #: f.combine.cc:6839 msgid "Gradual" -msgstr "" +msgstr "Progressif" -#: f.combine.cc:6842 fotoxx.h:1044 +#: f.combine.cc:6842 fotoxx.h:1049 msgid "Power" -msgstr "" +msgstr "Puissance" #: f.combine.cc:7084 #, c-format @@ -688,7 +690,7 @@ msgid "Enter text, click/drag on image." msgstr "Saisir du texte, cliquer et glisser sur l'image." -#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:850 +#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:844 msgid "Text" msgstr "Texte" @@ -708,8 +710,8 @@ msgid "shadow" msgstr "ombre" -#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:63 f.menus.cc:124 -#: f.menus.cc:292 fotoxx.h:999 +#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:90 f.menus.cc:251 +#: fotoxx.h:1004 msgid "Color" msgstr "Couleur" @@ -717,7 +719,7 @@ msgid "Transparency" msgstr "Transparence" -#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1078 +#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1084 msgid "Width" msgstr "Largeur" @@ -764,7 +766,7 @@ msgid "black/white" msgstr "Noir/Blanc" -#: f.effects.cc:989 f.menus.cc:257 +#: f.effects.cc:989 f.menus.cc:219 msgid "Graduated Blur" msgstr "Flou progressif" @@ -832,59 +834,75 @@ msgid "borders" msgstr "Bordures" -#: f.effects.cc:2474 f.menus.cc:262 +#: f.effects.cc:2474 f.menus.cc:224 msgid "Vignette" msgstr "Instantané" #: f.effects.cc:2829 msgid "Add Texture" +msgstr "Ajouter texture" + +#: f.effects.cc:3043 +msgid "Background Pattern" msgstr "" -#: f.effects.cc:3040 -msgid "Add pattern" +#: f.effects.cc:3047 +msgid "Pattern File:" msgstr "" -#: f.effects.cc:3044 f.menus.cc:264 -msgid "Pattern" +#: f.effects.cc:3052 +msgid "Geometry" msgstr "" -#: f.effects.cc:3051 -msgid "Pattern size" +#: f.effects.cc:3053 +msgid "Calculate" msgstr "" -#: f.effects.cc:3062 f.effects.cc:3066 +#: f.effects.cc:3055 +msgid "Zoom" +msgstr "" + +#: f.effects.cc:3066 f.menus.cc:226 +msgid "Pattern" +msgstr "Motif" + +#: f.effects.cc:3073 msgid "Overlap" +msgstr "Chevauchement" + +#: f.effects.cc:3080 +msgid "Opacity" msgstr "" -#: f.effects.cc:3107 +#: f.effects.cc:3116 msgid "choose pattern tile" -msgstr "" +msgstr "Choisir le motif" -#: f.effects.cc:3382 +#: f.effects.cc:3450 msgid "Create Mosaic" -msgstr "" +msgstr "Créer une mosaïque" -#: f.effects.cc:3468 +#: f.effects.cc:3536 msgid "Tile" -msgstr "" +msgstr "Motif" -#: f.effects.cc:3476 f.menus.cc:259 +#: f.effects.cc:3544 f.menus.cc:221 msgid "Tiles" msgstr "Mosaïque" -#: f.effects.cc:3482 +#: f.effects.cc:3550 msgid "Tile blending" -msgstr "" +msgstr "Mélange de motifs" -#: f.effects.cc:3560 +#: f.effects.cc:3628 #, c-format msgid "exceeded max. tiles: %d" -msgstr "" +msgstr "Excède le maximum de motifs: %d" -#: f.effects.cc:3575 +#: f.effects.cc:3643 #, c-format msgid "only %d tile images found" -msgstr "" +msgstr "Seulement %d motifs trouvés" #: f.file.cc:219 msgid "no newly added files found" @@ -894,7 +912,7 @@ msgid "no more images" msgstr "Plus d'images" -#: f.file.cc:330 f.menus.cc:153 f.menus.cc:482 +#: f.file.cc:330 f.menus.cc:118 f.menus.cc:395 msgid "Open RAW file (ufraw)" msgstr "Ouvrir un fichier RAW (ufraw)" @@ -932,7 +950,7 @@ #: f.file.cc:446 f.file.cc:2377 msgid "cannot save as RAW type" -msgstr "" +msgstr "Enregistrement en type RAW impossible" #: f.file.cc:557 msgid "make current" @@ -951,7 +969,7 @@ "Écraser le fichier ? \n" " %s" -#: f.file.cc:836 f.menus.cc:155 +#: f.file.cc:836 f.menus.cc:120 msgid "Rename Image File" msgstr "Renommer le fichier image" @@ -959,7 +977,7 @@ msgid "Old Name" msgstr "Ancien nom" -#: f.file.cc:844 f.tools.cc:4504 +#: f.file.cc:844 f.tools.cc:4803 msgid "New Name" msgstr "Nouveau nom" @@ -1007,7 +1025,7 @@ msgid "new location" msgstr "Nouvel emplacement" -#: f.file.cc:1233 f.tools.cc:4809 +#: f.file.cc:1233 f.tools.cc:5108 msgid "Select directory" msgstr "Sélectionner un répertoire" @@ -1032,7 +1050,7 @@ msgid "(automatic step to next image)" msgstr "(Passer automatiquement à l'image suivante)" -#: f.file.cc:1457 f.menus.cc:157 +#: f.file.cc:1457 f.menus.cc:122 msgid "Trash Image File" msgstr "Mettre le fichier image à la Corbeille" @@ -1077,8 +1095,10 @@ "create directory? \n" " %s" msgstr "" +"créer le répertoire? \n" +" %s" -#: f.file.cc:2191 f.menus.cc:149 +#: f.file.cc:2191 f.menus.cc:114 msgid "Open Image File" msgstr "Ouvrir un fichier image" @@ -1100,103 +1120,107 @@ msgid "file type not supported: %s" msgstr "Type de fichier non pris en charge: %s" -#: f.file.cc:4209 f.menus.cc:296 f.menus.cc:432 +#: f.file.cc:4209 f.file.cc:4291 f.menus.cc:360 f.tools.cc:851 +msgid "Scroll" +msgstr "Faire défiler" + +#: f.file.cc:4211 f.menus.cc:254 f.menus.cc:348 msgid "Sync.G" msgstr "Sync. G" -#: f.file.cc:4221 +#: f.file.cc:4223 msgid "change directory" msgstr "Changer de répertoire" -#: f.file.cc:4229 f.menus.cc:434 +#: f.file.cc:4231 f.menus.cc:350 msgid "GoTo" msgstr "Aller à" -#: f.file.cc:4234 f.menus.cc:437 +#: f.file.cc:4236 f.menus.cc:353 msgid "Sort" msgstr "Trier" -#: f.file.cc:4241 f.file.cc:4665 f.file.cc:4666 f.file.cc:4668 f.menus.cc:435 +#: f.file.cc:4243 f.file.cc:4657 f.file.cc:4658 f.file.cc:4660 f.menus.cc:351 msgid "Zoom+" msgstr "Zoom+" -#: f.file.cc:4252 f.file.cc:4667 f.file.cc:4669 f.menus.cc:436 +#: f.file.cc:4254 f.file.cc:4659 f.file.cc:4661 f.menus.cc:352 msgid "Zoom-" msgstr "Zoom-" -#: f.file.cc:4265 f.file.cc:4673 f.menus.cc:442 +#: f.file.cc:4267 f.file.cc:4665 f.menus.cc:358 msgid "Row↑" msgstr "Rangée↑" -#: f.file.cc:4277 f.file.cc:4674 f.menus.cc:443 +#: f.file.cc:4279 f.file.cc:4666 f.menus.cc:359 msgid "Row↓" msgstr "Rangée↓" -#: f.file.cc:4289 f.file.cc:4676 f.menus.cc:438 +#: f.file.cc:4309 f.file.cc:4668 f.menus.cc:354 msgid "First" msgstr "Première" -#: f.file.cc:4290 f.file.cc:4677 f.menus.cc:439 +#: f.file.cc:4310 f.file.cc:4669 f.menus.cc:355 msgid "Last" msgstr "Dernière" -#: f.file.cc:4291 f.file.cc:4671 f.file.cc:4678 f.menus.cc:440 +#: f.file.cc:4311 f.file.cc:4663 f.file.cc:4670 f.menus.cc:356 msgid "Page↑" msgstr "Page↑" -#: f.file.cc:4292 f.file.cc:4672 f.file.cc:4679 f.menus.cc:441 +#: f.file.cc:4312 f.file.cc:4664 f.file.cc:4671 f.menus.cc:357 msgid "Page↓" msgstr "Page↓" -#: f.file.cc:4342 +#: f.file.cc:4366 msgid "Choose image directory" -msgstr "" +msgstr "Choisir le répertoire image" -#: f.file.cc:4348 f.file.cc:4363 +#: f.file.cc:4372 f.file.cc:4387 msgid "recent" msgstr "récents" -#: f.file.cc:4349 f.file.cc:4368 +#: f.file.cc:4373 f.file.cc:4392 msgid "newest" msgstr "derniers" -#: f.file.cc:4350 f.file.cc:4377 +#: f.file.cc:4374 f.file.cc:4401 msgid "collections" msgstr "Collections" -#: f.file.cc:4423 f.tools.cc:2476 +#: f.file.cc:4449 f.tools.cc:2451 msgid "no collections found" msgstr "Collections introuvables" -#: f.file.cc:4430 +#: f.file.cc:4456 msgid "Choose collection" msgstr "Choisir une collection" -#: f.file.cc:4475 +#: f.file.cc:4503 msgid "Gallery Sort" msgstr "Trier la Galerie" -#: f.file.cc:4479 +#: f.file.cc:4507 msgid "File Name" msgstr "Nom du fichier" -#: f.file.cc:4480 +#: f.file.cc:4508 msgid "File Mod Date/Time" msgstr "Mode Date/Heure du fichier" -#: f.file.cc:4481 +#: f.file.cc:4509 msgid "Photo Date/Time (EXIF)" msgstr "Date/Heure de la photo (EXIF)" -#: f.file.cc:4483 +#: f.file.cc:4511 msgid "ascending" msgstr "Croissant" -#: f.file.cc:4484 +#: f.file.cc:4512 msgid "descending" msgstr "Decroissant" -#: f.file.cc:5542 fotoxx.h:1061 +#: f.file.cc:5534 fotoxx.h:1067 msgid "Select Files" msgstr "Sélectionner les fichiers" @@ -1220,7 +1244,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Légère rotation: Glisser le coin droit avec la souris" -#: f.image.cc:302 f.menus.cc:212 f.menus.cc:472 +#: f.image.cc:302 f.menus.cc:176 f.menus.cc:385 msgid "Trim/Rotate" msgstr "Rogner/Pivoter" @@ -1230,15 +1254,15 @@ #: f.image.cc:317 msgid "trim size:" -msgstr "" +msgstr "taille de compensation:" #: f.image.cc:321 msgid "Lock Ratio" msgstr "Verrouiller les proportions" -#: f.image.cc:326 f.tools.cc:2793 +#: f.image.cc:326 msgid "Customize" -msgstr "" +msgstr "Personnaliser" #: f.image.cc:332 msgid "Rotate: degrees" @@ -1272,7 +1296,7 @@ msgid "Resize Image" msgstr "Redimensionner l'image" -#: f.image.cc:1650 f.menus.cc:215 +#: f.image.cc:1650 f.menus.cc:179 msgid "Flip" msgstr "Miroir" @@ -1288,7 +1312,7 @@ #: f.image.cc:1865 msgid "Metadata:" -msgstr "" +msgstr "Métadonnées:" #: f.image.cc:1866 f.meta.cc:168 msgid "Caption" @@ -1296,7 +1320,7 @@ #: f.image.cc:1867 msgid "Comment" -msgstr "" +msgstr "Commentaire" #: f.image.cc:2485 msgid "text file is defective" @@ -1308,1135 +1332,1142 @@ #: f.image.cc:2723 msgid "Plugin working ..." -msgstr "" +msgstr "Greffon en cours de travail..." #: f.image.cc:2727 f.image.cc:2734 msgid "plugin failed" msgstr "Échec du greffon" -#: f.menus.cc:56 f.menus.cc:117 -msgid "File" -msgstr "Fichier" - -#: f.menus.cc:57 f.menus.cc:118 -msgid "Tools" -msgstr "Outils" - -#: f.menus.cc:58 f.menus.cc:119 f.menus.cc:462 -msgid "Metadata" -msgstr "Métadonnées" - -#: f.menus.cc:59 f.menus.cc:120 -msgid "Areas" -msgstr "Zones" - -#: f.menus.cc:61 f.menus.cc:122 -msgid "Retouch" -msgstr "Retoucher" - -#: f.menus.cc:62 f.menus.cc:123 -msgid "Repair" -msgstr "Réparer" - -#: f.menus.cc:64 f.menus.cc:125 -msgid "Bend" -msgstr "Torsion" - -#: f.menus.cc:65 f.menus.cc:126 -msgid "Effects" -msgstr "Effets" - -#: f.menus.cc:66 f.menus.cc:127 -msgid "Combine" -msgstr "Combiner" - -#: f.menus.cc:67 f.menus.cc:128 -msgid "Plugins" -msgstr "Greffons" - -#: f.menus.cc:68 f.menus.cc:129 fotoxx-14.03.cc:3811 fotoxx.h:1021 -msgid "Help" -msgstr "Aide" - -#: f.menus.cc:101 f.menus.cc:290 fotoxx-14.03.cc:3751 +#: f.menus.cc:67 fotoxx-14.04.cc:3775 msgid "Favorite Functions" -msgstr "" +msgstr "Fonctions favorites" -#: f.menus.cc:102 +#: f.menus.cc:68 msgid "Open, Save, Trash, Rename, Print" msgstr "Ouvrir, Enregistrer, Mettre à la corbeille, Renommer, Imprimer" -#: f.menus.cc:103 +#: f.menus.cc:69 msgid "Index Files, Settings, Collections, Batch Funcs ..." -msgstr "" +msgstr "Fichiers d'indexation, Paramètres, Collections, Fonctions batch" -#: f.menus.cc:104 +#: f.menus.cc:70 msgid "Captions, Tags, Ratings, Geotags, Search ... " msgstr "" "Légendes, Balises, Évaluations, Balises de géolocalisation, Recherche..." -#: f.menus.cc:105 +#: f.menus.cc:71 msgid "Select image areas to edit, copy and paste" msgstr "Sélectionner les zones de l'image à éditer, copier et coller" -#: f.menus.cc:106 +#: f.menus.cc:72 msgid "Trim/Crop, Rotate, Resize, Add Text" msgstr "Rogner/Recadrer, Pivoter, Redimensionner, Ajouter du texte" -#: f.menus.cc:107 +#: f.menus.cc:73 msgid "Improve brightness, contrast, color ..." msgstr "Améliorer luminosité, contraste et couleur..." -#: f.menus.cc:108 +#: f.menus.cc:74 msgid "Sharpen, Clean, Red-eyes, Paint, Clone ..." msgstr "Améliorer la netteté, Nettoyer, Yeux rouges, Peinture, Duplication..." -#: f.menus.cc:109 +#: f.menus.cc:75 msgid "White Balance, Color Profile, Color Matching" msgstr "Balance des Blancs, Profile de Couleurs, Couleurs Correspondantes" -#: f.menus.cc:110 +#: f.menus.cc:76 msgid "Fix Perspective, Bend/Warp image ..." msgstr "Corriger la Perspective, Torsion/Déformation d'une image..." -#: f.menus.cc:111 +#: f.menus.cc:77 msgid "Special Effects, Arty Transforms" msgstr "Effets spéciaux, Transformations Style Artistique" -#: f.menus.cc:112 +#: f.menus.cc:78 msgid "HDR, HDF, Panorama, Stack, Mashup" msgstr "HDR, HDF, Panorama, Empilage, Pêle-Mêle" -#: f.menus.cc:113 +#: f.menus.cc:79 msgid "Use other image editors within Fotoxx" msgstr "Utiliser d'autres éditeurs d'images avec Fotoxx" -#: f.menus.cc:114 +#: f.menus.cc:80 msgid "Quick Start, User Guide, Recent Changes ..." msgstr "Démarrage rapide, Manuel de l’Utilisateur, Modifications récentes..." -#: f.menus.cc:148 +#: f.menus.cc:83 +msgid "File" +msgstr "Fichier" + +#: f.menus.cc:84 +msgid "Tools" +msgstr "Outils" + +#: f.menus.cc:85 f.menus.cc:375 +msgid "Metadata" +msgstr "Métadonnées" + +#: f.menus.cc:86 +msgid "Areas" +msgstr "Zones" + +#: f.menus.cc:88 +msgid "Retouch" +msgstr "Retoucher" + +#: f.menus.cc:89 +msgid "Repair" +msgstr "Réparer" + +#: f.menus.cc:91 +msgid "Bend" +msgstr "Torsion" + +#: f.menus.cc:92 +msgid "Effects" +msgstr "Effets" + +#: f.menus.cc:93 +msgid "Combine" +msgstr "Combiner" + +#: f.menus.cc:94 +msgid "Plugins" +msgstr "Greffons" + +#: f.menus.cc:95 fotoxx-14.04.cc:3835 fotoxx.h:1026 +msgid "Help" +msgstr "Aide" + +#: f.menus.cc:113 msgid "New Window" msgstr "Nouvelle fenêtre" -#: f.menus.cc:148 +#: f.menus.cc:113 msgid "Open another window" msgstr "Ouvrir une nouvelle fenêtre" -#: f.menus.cc:149 f.menus.cc:297 +#: f.menus.cc:114 f.menus.cc:255 msgid "Open a new image file" msgstr "Ouvrir un nouveau fichier image" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open Previous File" msgstr "Ouvrir l'image précédente" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open the previously seen file" msgstr "Ouvrir l'image visionnée précédemment" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Open a recently seen file" msgstr "Ouvrir un fichier récemment visionné" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Recently Seen Images" msgstr "Images récemment visionnées" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Newest Images" -msgstr "" +msgstr "Images les plus récentes" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Open a newly added file" msgstr "Ouvrir un fichier ajouté dernièrement" -#: f.menus.cc:153 +#: f.menus.cc:118 msgid "Open and edit a camera RAW file" msgstr "Ouvrir et éditer un fichier image RAW" -#: f.menus.cc:154 f.menus.cc:300 +#: f.menus.cc:119 f.menus.cc:258 msgid "Save modified image file to disk" msgstr "Enregistrer l'image modifiée sur le disque" -#: f.menus.cc:154 +#: f.menus.cc:119 msgid "Save to Disk" msgstr "Enregistrer sur le disque" -#: f.menus.cc:155 +#: f.menus.cc:120 msgid "Change the image file name" msgstr "Changer le nom du fichier image" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "Create a blank image" msgstr "Créer une image vierge" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "New Blank Image" msgstr "Nouvelle image vierge" -#: f.menus.cc:157 f.menus.cc:301 +#: f.menus.cc:122 f.menus.cc:259 msgid "Move image file to Trash" msgstr "Déplacer l'image vers la Corbeille" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print Image" msgstr "Imprimer une image" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print the current image" msgstr "Imprimer l'image actuelle" -#: f.menus.cc:159 +#: f.menus.cc:124 msgid "Quit Fotoxx" msgstr "Quitter Fotoxx" -#: f.menus.cc:161 f.tools.cc:92 f.tools.cc:339 +#: f.menus.cc:126 f.tools.cc:92 f.tools.cc:339 msgid "Index Image Files" -msgstr "" +msgstr "Index des fichiers images" -#: f.menus.cc:161 +#: f.menus.cc:126 msgid "Index new files and make thumbnails" msgstr "Indexer les nouveaux fichiers et créer les miniatures" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "Change user preferences" msgstr "Modifier les préférences de l'utilisateur" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "User Settings" msgstr "Paramètres utilisateur" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Change Keyboard Shortcut Keys" msgstr "Modifier les touches de Raccourcis Clavier" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Keyboard Shortcuts" msgstr "Raccourcis Clavier" -#: f.menus.cc:164 f.tools.cc:1943 +#: f.menus.cc:129 f.tools.cc:1918 msgid "Manage Collections" msgstr "Gestion des collections" -#: f.menus.cc:164 +#: f.menus.cc:129 msgid "Organize images into collections" msgstr "Organiser les images en collections" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Convert for a new top directory" msgstr "Convertir pour un nouveau répertoire racine" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Move Collections" msgstr "Déplacer les collections" -#: f.menus.cc:166 f.tools.cc:2777 f.tools.cc:2780 +#: f.menus.cc:131 f.tools.cc:2728 msgid "Slide Show" msgstr "Diaporama" -#: f.menus.cc:166 +#: f.menus.cc:131 msgid "Start a slide show" msgstr "Démarrer un diaporama" -#: f.menus.cc:167 f.tools.cc:4497 +#: f.menus.cc:132 f.tools.cc:4796 msgid "Batch Convert" msgstr "Convertir par lot" -#: f.menus.cc:167 +#: f.menus.cc:132 msgid "Rename/convert/resize/move multiple files" -msgstr "" +msgstr "Renommer/convertir/redimensionner/déplacer fichier par lots" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Batch Convert RAW" -msgstr "" +msgstr "Batch de conversion RAW" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Convert multiple camera RAW files" msgstr "Convertir plusieurs fichiers RAW d'appareil photo" -#: f.menus.cc:169 -msgid "Brightness Histogram" -msgstr "Histogramme de luminosité" +#: f.menus.cc:134 f.menus.cc:185 f.menus.cc:390 f.retouch.cc:314 +#: f.tools.cc:5620 +msgid "Brightness Distribution" +msgstr "Répartition de la luminosité" -#: f.menus.cc:169 +#: f.menus.cc:134 msgid "Show a brightness distribution graph" msgstr "Montrer un graphique de répartition de la luminosité" -#: f.menus.cc:170 f.menus.cc:480 f.tools.cc:5517 +#: f.menus.cc:135 f.menus.cc:393 f.tools.cc:5825 msgid "Grid Lines" msgstr "Guides de la grille" -#: f.menus.cc:170 +#: f.menus.cc:135 msgid "Show or revise grid lines" msgstr "Montrer ou régler les guides de la grille" -#: f.menus.cc:171 f.tools.cc:5701 +#: f.menus.cc:136 f.tools.cc:6009 msgid "Show RGB" msgstr "Montrer les couleurs RVB" -#: f.menus.cc:171 +#: f.menus.cc:136 msgid "Show RGB colors at mouse click" msgstr "Montrer les couleurs RGB au clic de souris" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Dark/Bright Pixels" -msgstr "" +msgstr "Pixels foncés/clairs" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Highlight darkest and brightest pixels" -msgstr "" +msgstr "Mettre les pixels les plus foncés/clairs en évidence" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Chart to adjust monitor color" msgstr "Diagramme d'ajustement de la couleur de l'écran" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Monitor Color" msgstr "Couleurs de l'écran" -#: f.menus.cc:174 +#: f.menus.cc:139 msgid "Chart to adjust monitor gamma" msgstr "Diagramme d'ajustement du gamma de l'écran" -#: f.menus.cc:174 f.tools.cc:6213 +#: f.menus.cc:139 f.tools.cc:6521 msgid "Monitor Gamma" msgstr "Gamma de l'écran" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change Language" msgstr "Changer de langue" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change the GUI language" msgstr "Changer la langue de l'interface" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Missing Translations" msgstr "Traductions manquantes" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Report missing translations" msgstr "Faire un rapport des traductions manquantes" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Create a Gnome menu and launcher" msgstr "Créer menu et lanceur Gnome" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Menu and Launcher" msgstr "Menu et Lanceur" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn Images to CD/DVD" msgstr "Graver des images sur un CD/DVD" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn selected image files to CD or DVD" msgstr "Graver les fichiers images sélectionnés sur un CD/DVD" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Memory and CPU (to terminal/logfile)" msgstr "Mémoire et CPU (vers terminal/fichier-journal)" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Resources" msgstr "Ressources" -#: f.menus.cc:183 f.meta.cc:121 f.meta.cc:1945 +#: f.menus.cc:147 f.meta.cc:121 f.meta.cc:1946 msgid "Edit Metadata" msgstr "Éditer les métadonnées" -#: f.menus.cc:183 +#: f.menus.cc:147 msgid "Edit image tags/caption/rating ..." msgstr "Éditer balises/légende/évaluation de l'image..." -#: f.menus.cc:184 +#: f.menus.cc:148 msgid "Add/remove tags for multiple images" msgstr "Ajouter/Enlever les balises de plusieurs images" -#: f.menus.cc:184 f.meta.cc:1547 +#: f.menus.cc:148 f.meta.cc:1547 msgid "Batch Add/Remove Tags" msgstr "Ajouter/Retirer des balises par lots" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "List a few key metadata items" msgstr "Lister quelques éléments de mots-clés de métadonnées" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "View Metadata (short)" msgstr "Afficher les Métadonnées (résumé)" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "List all metadata items" msgstr "Lister tous les éléments des métadonnées" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "View Metadata (long)" msgstr "Informations complètes" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "List captions and comments only" msgstr "Ne lister que les légendes et les commentaires" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "View Captions and Comments" msgstr "Afficher Légendes et Commentaires" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit Any Metadata" msgstr "Éditer les métadonnées" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit any image metadata" msgstr "Éditer n'importe quelle métadonnée de l'image" -#: f.menus.cc:189 f.meta.cc:2039 +#: f.menus.cc:153 f.meta.cc:2040 msgid "Delete Metadata" msgstr "Supprimer les métadonnées" -#: f.menus.cc:189 +#: f.menus.cc:153 msgid "Remove all metadata from an image" msgstr "Enlever toutes les métadonnées d'une image" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "(Toggle) show captions and comments" -msgstr "" +msgstr "(Basculer) afficher légendes et commentaires" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "Show Captions on Image" -msgstr "" +msgstr "Afficher les légendes sur l'image" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download Geolocations" msgstr "Télécharger les Géolocalisations" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download initial geolocation database" msgstr "Télécharger la base de données initiale des géolocalisations" -#: f.menus.cc:193 f.meta.cc:3023 +#: f.menus.cc:157 f.meta.cc:3027 msgid "Edit Geotags" msgstr "Éditer les balises de géolocalisation" -#: f.menus.cc:193 +#: f.menus.cc:157 msgid "Edit image location and geotags" msgstr "Éditer le lieu et les balises de géolocalisation de l'image" -#: f.menus.cc:194 +#: f.menus.cc:158 msgid "Add geotags to multiple images" msgstr "Ajouter des balises de géolocalisation à plusieurs images" -#: f.menus.cc:194 f.meta.cc:3225 +#: f.menus.cc:158 f.meta.cc:3229 msgid "Batch Add Geotags" msgstr "Ajouter des balises de géolocalisation par lots" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Find all images for a location [date]" msgstr "Rechercher toutes les images pour un lieu géographique [date]" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Images by Location/Date" msgstr "Images par Lieu géographique/Date" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Find images by clicking a world map" msgstr "Rechercher des images en cliquant sur une mappemonde" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Images by Map Location" msgstr "Images par Lieu sur la Mappemonde" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Find images meeting select criteria" msgstr "Rechercher les images correspondant au critère de sélection" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Search Images" msgstr "Rechercher des images" -#: f.menus.cc:199 fotoxx.h:1060 +#: f.menus.cc:163 fotoxx.h:1066 msgid "Select" msgstr "Sélection" -#: f.menus.cc:199 +#: f.menus.cc:163 msgid "Select object or area for editing" msgstr "Sélectionner un objet ou une zone de travail" -#: f.menus.cc:200 fotoxx.h:1062 +#: f.menus.cc:164 fotoxx.h:1068 msgid "Show" msgstr "Montrer" -#: f.menus.cc:200 +#: f.menus.cc:164 msgid "Show (outline) existing area" msgstr "Montrer la zone existante (contours)" -#: f.menus.cc:201 fotoxx.h:1022 +#: f.menus.cc:165 fotoxx.h:1027 msgid "Hide" msgstr "Masquer" -#: f.menus.cc:201 +#: f.menus.cc:165 msgid "Hide existing area" msgstr "Masquer la zone existante" -#: f.menus.cc:202 fotoxx.h:1011 +#: f.menus.cc:166 fotoxx.h:1016 msgid "Enable" msgstr "Activer" -#: f.menus.cc:202 +#: f.menus.cc:166 msgid "Enable area for editing" msgstr "Activer la zone de travail" -#: f.menus.cc:203 fotoxx.h:1006 +#: f.menus.cc:167 fotoxx.h:1011 msgid "Disable" msgstr "Désactiver" -#: f.menus.cc:203 +#: f.menus.cc:167 msgid "Disable area for editing" msgstr "Désactiver la zone de travail" -#: f.menus.cc:204 fotoxx.h:1025 +#: f.menus.cc:168 fotoxx.h:1030 msgid "Invert" msgstr "Inverser" -#: f.menus.cc:204 +#: f.menus.cc:168 msgid "Reverse existing area" msgstr "Inverser la zone existante" -#: f.menus.cc:205 +#: f.menus.cc:169 msgid "Erase existing area" msgstr "Effacer la zone existante" -#: f.menus.cc:205 fotoxx.h:1074 +#: f.menus.cc:169 fotoxx.h:1080 msgid "Unselect" msgstr "Dé-sélectionner" -#: f.menus.cc:206 fotoxx.h:1001 +#: f.menus.cc:170 fotoxx.h:1006 msgid "Copy" msgstr "Copier" -#: f.menus.cc:206 +#: f.menus.cc:170 msgid "Copy an area for later pasting" msgstr "Copier une zone pour un collage ultérieur" -#: f.menus.cc:207 fotoxx.h:1041 +#: f.menus.cc:171 fotoxx.h:1046 msgid "Paste" msgstr "Coller" -#: f.menus.cc:207 +#: f.menus.cc:171 msgid "Paste an area into the current image" msgstr "Coller une zone dans l'image actuelle" -#: f.menus.cc:208 +#: f.menus.cc:172 msgid "Open a file with a saved area" msgstr "Ouvrir un fichier avec une zone enregistrée" -#: f.menus.cc:209 f.menus.cc:300 fotoxx.h:1057 +#: f.menus.cc:173 f.menus.cc:258 fotoxx.h:1062 msgid "Save" msgstr "Enregistrer" -#: f.menus.cc:209 +#: f.menus.cc:173 msgid "Save an area to a file" msgstr "Enregistrer une zone dans un fichier" -#: f.menus.cc:211 +#: f.menus.cc:175 msgid "Rotate 90 degrees" msgstr "Pivoter de 90 degrés" -#: f.menus.cc:211 f.menus.cc:474 +#: f.menus.cc:175 f.menus.cc:387 msgid "Rotate 90º" msgstr "Pivoter 90°" -#: f.menus.cc:212 +#: f.menus.cc:176 msgid "Trim/Crop margins and/or Rotate" msgstr "Rogner/Recadrer les marges et/ou Pivoter" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Auto-Trim" msgstr "Rognage automatique" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Remove margins from warp, panorama, etc." msgstr "Supprimer les marges d'une déformation, d'une image panoramique, etc" -#: f.menus.cc:214 +#: f.menus.cc:178 msgid "Change pixel dimensions" msgstr "Changer la dimension des pixels" -#: f.menus.cc:215 +#: f.menus.cc:179 msgid "Mirror image horizontally or vertically" msgstr "Miroir horizontal ou vertical de l'image" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Add Text" msgstr "Ajouter du texte" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Write text on image" msgstr "Écrire du texte sur l'image" -#: f.menus.cc:218 +#: f.menus.cc:182 msgid "Fast auto enhance that may work OK" msgstr "" "Amélioration automatique rapide donnant généralement des résultats " "satisfaisants" -#: f.menus.cc:218 f.menus.cc:475 +#: f.menus.cc:182 f.menus.cc:388 msgid "Voodoo Enhance" msgstr "Amélioration Voodoo" -#: f.menus.cc:219 +#: f.menus.cc:183 msgid "Adjust brightness, contrast, color" msgstr "Ajuster luminosité, contraste et couleur" -#: f.menus.cc:219 f.menus.cc:476 f.retouch.cc:265 +#: f.menus.cc:183 f.menus.cc:389 f.retouch.cc:271 msgid "Retouch Combo" -msgstr "" +msgstr "Combo de retouche" -#: f.menus.cc:222 +#: f.menus.cc:184 msgid "Add local contrast, enhance details" msgstr "Ajouter du contraste localement, améliorer des détails" -#: f.menus.cc:222 f.menus.cc:478 f.retouch.cc:929 +#: f.menus.cc:184 f.menus.cc:391 f.retouch.cc:1039 msgid "Tone Mapping" msgstr "Mappage de tons" -#: f.menus.cc:223 +#: f.menus.cc:185 msgid "Adjust brightness distribution" msgstr "Ajuster la répartition de la luminosité" -#: f.menus.cc:223 f.menus.cc:477 f.tools.cc:5314 -msgid "Brightness Distribution" -msgstr "Répartition de la luminosité" - -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Brightness Ramp" msgstr "Courbes de luminosité" -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Fix brightness uniformity across image" msgstr "Uniformiser la luminosité à travers l'image" -#: f.menus.cc:225 f.retouch.cc:2050 +#: f.menus.cc:187 f.retouch.cc:2159 msgid "Paint Edits" msgstr "Opérations de Peinture" -#: f.menus.cc:225 +#: f.menus.cc:187 msgid "Paint edit function gradually with mouse" msgstr "Fonction d'édition de peinture graduelle au moyen de la souris" -#: f.menus.cc:227 +#: f.menus.cc:188 f.retouch.cc:2390 +msgid "Leverage Edits" +msgstr "Opérations à effets de Levier" + +#: f.menus.cc:188 +msgid "Leverage edits by brightness or color" +msgstr "Opérations à effet de levier par luminosité ou couleur" + +#: f.menus.cc:190 msgid "Make the image look sharper" msgstr "Rendre l'image plus nette" -#: f.menus.cc:227 f.repair.cc:79 f.tools.cc:4535 f.tools.cc:4904 +#: f.menus.cc:190 f.repair.cc:79 f.tools.cc:4834 f.tools.cc:5203 msgid "Sharpen" msgstr "Renforcer la netteté" -#: f.menus.cc:228 f.repair.cc:1565 +#: f.menus.cc:191 f.repair.cc:1565 msgid "Blur" msgstr "Flou" -#: f.menus.cc:228 +#: f.menus.cc:191 msgid "Make the image look fuzzy" msgstr "Donner un effet de flou à une image" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Filter noise from low-light photos" msgstr "Filtrer le bruit de photos sous-exposées" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Reduce Noise" msgstr "Réduction de bruit" -#: f.menus.cc:230 +#: f.menus.cc:193 msgid "Remove unwanted objects" msgstr "Faire disparaître les objets superflus" -#: f.menus.cc:230 f.repair.cc:1558 +#: f.menus.cc:193 f.repair.cc:1558 msgid "Smart Erase" msgstr "Effaçage intelligent" -#: f.menus.cc:231 +#: f.menus.cc:194 msgid "Fix red-eyes from electronic flash" msgstr "Supprimer les yeux rouges dus au flash électronique" -#: f.menus.cc:231 f.menus.cc:479 +#: f.menus.cc:194 f.menus.cc:392 msgid "Red Eyes" msgstr "Yeux rouges" -#: f.menus.cc:232 +#: f.menus.cc:195 msgid "Paint image pixels using the mouse" msgstr "Dessiner les pixels de l'image au moyen de la souris" -#: f.menus.cc:232 f.repair.cc:2403 +#: f.menus.cc:195 f.repair.cc:2403 msgid "Paint/Clone" msgstr "Peinture/Duplication" -#: f.menus.cc:233 f.repair.cc:2995 +#: f.menus.cc:196 f.repair.cc:2995 msgid "Remove Dust" msgstr "Anti-poussières" -#: f.menus.cc:233 +#: f.menus.cc:196 msgid "Remove dust spots from scanned slides" msgstr "Ôter les grains de poussière des diapositives scannées" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Anti-alias" msgstr "Anticrénelage" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Smoothen edges with jaggies" msgstr "Adoucir les bords crénelés" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Fix Color Fringes" msgstr "Corriger les franges de couleurs" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Reduce Chromatic Abberation" msgstr "Réduire les aberrations chromatiques" -#: f.menus.cc:236 +#: f.menus.cc:199 msgid "Erase known hot and dark pixels" -msgstr "Effacer les pixels chauds et sombres connus" +msgstr "Effacer les pixels chauds et foncés connus" -#: f.menus.cc:236 f.repair.cc:4008 +#: f.menus.cc:199 f.repair.cc:4008 msgid "Fix Stuck Pixels" msgstr "Corriger les pixels bloqués" -#: f.menus.cc:239 +#: f.menus.cc:201 msgid "Shift/convert colors into other colors" msgstr "Changer/convertir des couleurs en d'autres couleurs" -#: f.menus.cc:240 +#: f.menus.cc:202 msgid "Make BW/color, negative/positive, sepia" msgstr "Convertir NB/couleur, négatif/positif, sépia" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Color Profile" msgstr "Profil de couleur" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Convert to another color profile" msgstr "Convertir en un autre profil de couleurs" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match Colors" msgstr "Synchroniser des couleurs" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match colors on one image with another" msgstr "Faire correspondre les couleurs d'une image avec celles d'une autre" -#: f.menus.cc:243 +#: f.menus.cc:205 msgid "Adjust color in selected image areas" msgstr "Ajuster les couleurs dans les zones sélectionnées de l'image" -#: f.menus.cc:244 +#: f.menus.cc:206 msgid "Adjust color using CMYK or RGB values" msgstr "Ajuster les couleurs au moyen des valeurs CMYK ou RGB" -#: f.menus.cc:246 +#: f.menus.cc:208 msgid "Remove curvature, esp. panoramas" msgstr "Corriger la courbure, principalement des images panoramiques" -#: f.menus.cc:247 +#: f.menus.cc:209 msgid "Straighten objects seen from an angle" msgstr "Redresser l'angle de vue des objets (perspective)" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten Book Page" msgstr "Aplatir une page de livre" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten a photographed book page" msgstr "Aplatir une photographie de page de livre" -#: f.menus.cc:249 +#: f.menus.cc:211 msgid "Distort image areas using the mouse" msgstr "Déformer les zones de l'image au moyen de la souris" -#: f.menus.cc:250 f.menus.cc:251 f.menus.cc:252 +#: f.menus.cc:212 f.menus.cc:213 f.menus.cc:214 msgid "Distort the whole image using the mouse" msgstr "Déformer l'image entière au moyen de la souris" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Color Depth" msgstr "Profondeur de couleurs" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Reduce color depth (posterize)" msgstr "Réduire la profondeur de couleur (postérisation)" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Convert to pencil sketch" msgstr "Transformer en esquisse au crayon" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Sketch" msgstr "Esquisse" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Convert to colored line drawing" msgstr "Transformer en dessin de lignes colorées/lumineuses" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Drawing" msgstr "Dessin" -#: f.menus.cc:257 +#: f.menus.cc:219 msgid "Graduated Blur depending on contrast" msgstr "Flou progressif dépendant du contraste" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Create an embossed or 3D appearance" msgstr "Donner l'apparence d'un estampage ou tridimensionnelle" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Embossing" msgstr "Estampage" -#: f.menus.cc:259 +#: f.menus.cc:221 msgid "Convert to square tiles" msgstr "Transformer en mosaïque" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Convertir en trame de points (effet Roy Lichtenstein)" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Dots" msgstr "Trame de points" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Convert into a simulated painting" msgstr "Simuler une peinture" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Painting" msgstr "Peinture" -#: f.menus.cc:262 +#: f.menus.cc:224 msgid "Change brightness or color radially" msgstr "Modifier la luminosité ou la couleur radialement" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Add texture to an image" -msgstr "" +msgstr "Ajouter une texture à une image" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Texture" -msgstr "" +msgstr "Texture" -#: f.menus.cc:264 +#: f.menus.cc:226 msgid "Tile image with a repeating pattern" -msgstr "" +msgstr "Carreler l'image avec un motif répétitif" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Create a mosaic with tiles made from all images" msgstr "" +"Créer une mosaïque par juxtaposition de motifs obtenus à partir de toutes " +"les images " -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Mosaic" -msgstr "" +msgstr "Mosaïque" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "Combine bright/dark images for better detail" -msgstr "Combiner les images claires/sombres pour de meilleurs détails" +msgstr "Combiner les images claires/foncées pour affiner les détails" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "High Dynamic Range" msgstr "Plage dynamique étendue" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "Combine near/far focus images for deeper focus" msgstr "" "Combiner les mises au point proche/lointain d'images pour une netteté " "optimale" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "High Depth of Field" msgstr "Grande profondeur de champ" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Combine images to erase passing people, etc." msgstr "Combiner les images pour effacer les passants, etc." -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Stack / Paint" msgstr "Empilage / Peinture" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Combine noisy images into a low-noise image" msgstr "Combiner des images fortement bruitées en une image légèrement bruitée" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Stack / Noise" msgstr "Empilage / Bruit" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Combine images into a panorama" msgstr "Combiner des images en une image panoramique" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Panorama" msgstr "Panorama" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Combine images into a vertical panorama" msgstr "Combiner des images en une image panoramique verticale" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Vertical Panorama" msgstr "Panorama vertical" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Arrange multiple images on a background image" -msgstr "Disposer plusieurs images sur une image de fond" +msgstr "Disposer plusieurs images sur une image d'arrière-plan" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Mashup" msgstr "Pêle-Mêle" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Add another image editor to the menu" msgstr "Ajouter un autre éditeur d'images au menu" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Edit Plugins" msgstr "Éditer les greffons" -#: f.menus.cc:277 fotoxx-14.03.cc:3777 +#: f.menus.cc:239 fotoxx-14.04.cc:3801 msgid "Quick Start" msgstr "Démarrage rapide" -#: f.menus.cc:277 +#: f.menus.cc:239 msgid "Quick Start mini-guide" msgstr "Mini-guide pour un démarrage rapide" -#: f.menus.cc:278 +#: f.menus.cc:240 msgid "Read the user guide" msgstr "Consulter le manuel utilisateur" -#: f.menus.cc:278 fotoxx-14.03.cc:3780 +#: f.menus.cc:240 fotoxx-14.04.cc:3804 msgid "User Guide" msgstr "Manuel utilisateur" -#: f.menus.cc:279 +#: f.menus.cc:241 msgid "Recent user guide changes" msgstr "Derniers changements du manuel utilisateur" -#: f.menus.cc:279 fotoxx-14.03.cc:3783 +#: f.menus.cc:241 fotoxx-14.04.cc:3807 msgid "User Guide Changes" msgstr "Changements du manuel utilisateur" -#: f.menus.cc:280 +#: f.menus.cc:242 msgid "Fotoxx updates notification" msgstr "Notification des mises à jour de Fotoxx" -#: f.menus.cc:280 fotoxx-14.03.cc:3786 +#: f.menus.cc:242 fotoxx-14.04.cc:3810 msgid "Program Updates" msgstr "Mises à jours du programme" -#: f.menus.cc:281 fotoxx-14.03.cc:3792 +#: f.menus.cc:243 fotoxx-14.04.cc:3816 msgid "Edit Functions Summary" msgstr "Éditer le sommaire des fonctions" -#: f.menus.cc:281 +#: f.menus.cc:243 msgid "Summary of image edit functions" msgstr "Sommaire des fonctions d’édition d'image" -#: f.menus.cc:282 fotoxx-14.03.cc:3789 +#: f.menus.cc:244 fotoxx-14.04.cc:3813 msgid "README" msgstr "LISEZ-MOI" -#: f.menus.cc:282 +#: f.menus.cc:244 msgid "Technical installation notes" msgstr "Notes techniques d'installation" -#: f.menus.cc:283 fotoxx-14.03.cc:3795 +#: f.menus.cc:245 fotoxx-14.04.cc:3819 msgid "Change Log" msgstr "Journal des changements" -#: f.menus.cc:283 +#: f.menus.cc:245 msgid "List updates by Fotoxx version" msgstr "Lister les mises à jour par version de Fotoxx" -#: f.menus.cc:284 fotoxx-14.03.cc:3798 +#: f.menus.cc:246 fotoxx-14.04.cc:3822 msgid "Log File" msgstr "Fichier-journal" -#: f.menus.cc:284 +#: f.menus.cc:246 msgid "View the log file and error messages" msgstr "Afficher le fichier-journal et les messages d'erreur" -#: f.menus.cc:285 +#: f.menus.cc:247 msgid "How to do Fotoxx translations" msgstr "Comment faire les traductions de Fotoxx" -#: f.menus.cc:285 fotoxx-14.03.cc:3801 +#: f.menus.cc:247 fotoxx-14.04.cc:3825 msgid "Translations" msgstr "Traductions" -#: f.menus.cc:286 fotoxx-14.03.cc:3804 +#: f.menus.cc:248 fotoxx-14.04.cc:3828 msgid "Home Page" msgstr "Site web" -#: f.menus.cc:286 +#: f.menus.cc:248 msgid "Show the Fotoxx web page" msgstr "Aller à la page web de Fotoxx" -#: f.menus.cc:287 fotoxx-14.03.cc:3807 +#: f.menus.cc:249 fotoxx-14.04.cc:3831 msgid "About" msgstr "À propos" -#: f.menus.cc:287 +#: f.menus.cc:249 msgid "Version, license, contact, credits" msgstr "Version, licence, contact, crédits" -#: f.menus.cc:290 -msgid "Favs" -msgstr "Favoris" - -#: f.menus.cc:292 +#: f.menus.cc:251 msgid "Color of area borders etc." msgstr "Couleur des bords de la zone etc." -#: f.menus.cc:293 fotoxx.h:1072 +#: f.menus.cc:252 fotoxx.h:1078 msgid "Undo" msgstr "Annuler" -#: f.menus.cc:293 +#: f.menus.cc:252 msgid "Undo one edit" msgstr "Annuler une modification" -#: f.menus.cc:294 fotoxx.h:1051 +#: f.menus.cc:253 fotoxx.h:1056 msgid "Redo" msgstr "Rétablir" -#: f.menus.cc:294 +#: f.menus.cc:253 msgid "Redo one edit" msgstr "Rétablir une modification" -#: f.menus.cc:296 f.menus.cc:432 +#: f.menus.cc:254 f.menus.cc:348 msgid "Set gallery from current image file" msgstr "" "Afficher le répertoire contenant le fichier image actuel dans la galerie" -#: f.menus.cc:298 +#: f.menus.cc:256 msgid "Open the previous file" msgstr "Ouvrir le fichier précédent" -#: f.menus.cc:298 fotoxx.h:1046 +#: f.menus.cc:256 fotoxx.h:1051 msgid "Prev" msgstr "Préc." -#: f.menus.cc:299 fotoxx.h:1034 +#: f.menus.cc:257 fotoxx.h:1039 msgid "Next" msgstr "Suiv." -#: f.menus.cc:299 +#: f.menus.cc:257 msgid "Open the next file" msgstr "Ouvrir le fichier suivant" -#: f.menus.cc:301 f.menus.cc:483 fotoxx.h:1068 +#: f.menus.cc:259 f.menus.cc:396 fotoxx.h:1074 msgid "Trash" msgstr "Corbeille" -#: f.menus.cc:344 f.menus.cc:373 +#: f.menus.cc:306 msgid "Run as Fotoxx edit function" msgstr "Exécuter comme fonction d'édition de Fotoxx" -#: f.menus.cc:412 +#: f.menus.cc:328 msgid "Top" msgstr "Racine" -#: f.menus.cc:433 +#: f.menus.cc:349 msgid "open another directory" msgstr "Ouvrir un autre dossier" -#: f.menus.cc:434 +#: f.menus.cc:350 msgid "go to bookmarked image" msgstr "Aller à l'image marquée du signet" -#: f.menus.cc:435 +#: f.menus.cc:351 msgid "increase thumbnail size" msgstr "Augmenter la taille des miniatures" -#: f.menus.cc:436 +#: f.menus.cc:352 msgid "reduce thumbnail size" msgstr "Diminuer la taille des miniatures" -#: f.menus.cc:437 +#: f.menus.cc:353 msgid "change sort order" msgstr "Changer l'ordre de tri" -#: f.menus.cc:438 +#: f.menus.cc:354 msgid "jump to beginning (top)" msgstr "Aller au début (racine)" -#: f.menus.cc:439 +#: f.menus.cc:355 msgid "jump to end (bottom)" msgstr "Aller à la fin (bas)" -#: f.menus.cc:440 +#: f.menus.cc:356 msgid "previous page" msgstr "Page précédente" -#: f.menus.cc:441 +#: f.menus.cc:357 msgid "next page" msgstr "Page suivante" -#: f.menus.cc:442 +#: f.menus.cc:358 msgid "previous row" msgstr "Rangée précédente" -#: f.menus.cc:443 +#: f.menus.cc:359 msgid "next row" msgstr "Rangée suivante" -#: f.menus.cc:461 -msgid "Popup Image" +#: f.menus.cc:360 +msgid "slow scroll" msgstr "" -#: f.menus.cc:463 fotoxx.h:1054 +#: f.menus.cc:374 +msgid "Popup Image" +msgstr "Image contextuelle" + +#: f.menus.cc:376 fotoxx.h:1059 msgid "Rename" msgstr "Renommer" -#: f.menus.cc:464 +#: f.menus.cc:377 msgid "Copy to Location" msgstr "Copier vers l'Emplacement" -#: f.menus.cc:465 +#: f.menus.cc:378 msgid "Move to Location" msgstr "Déplacer vers l'Emplacement" -#: f.menus.cc:466 +#: f.menus.cc:379 msgid "Copy to Clipboard" msgstr "Copier dans le presse-papier" -#: f.menus.cc:467 +#: f.menus.cc:380 msgid "Remove from Collection" msgstr "Retirer de la collection" -#: f.menus.cc:468 +#: f.menus.cc:381 msgid "Cut to Image Cache" msgstr "Couper vers le cache de l'image" -#: f.menus.cc:469 +#: f.menus.cc:382 msgid "Copy to Image Cache" msgstr "Copier vers le cache de l'image" -#: f.menus.cc:470 +#: f.menus.cc:383 msgid "Paste Image Cache Here (clear)" msgstr "Coller le cache de l'image ici (effacer)" -#: f.menus.cc:471 +#: f.menus.cc:384 msgid "Paste Image Cache Here (keep)" msgstr "Coller le cache de l'image ici (conserver)" -#: f.menus.cc:481 +#: f.menus.cc:394 msgid "Select Area" msgstr "Sélectionner une zone" @@ -2445,9 +2476,9 @@ msgid "Rating: %c (stars)" msgstr "Évaluation: %c (étoiles)" -#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1939 f.meta.cc:3036 f.meta.cc:3311 +#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1940 f.meta.cc:3040 f.meta.cc:3315 msgid "file type cannot have metadata" -msgstr "" +msgstr "Type de fichier ne supportant pas les métadonnées" #: f.meta.cc:126 f.repair.cc:4141 msgid "File:" @@ -2497,7 +2528,7 @@ msgid "Recent Tags" msgstr "Balises Récentes" -#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4267 +#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4271 msgid "Defined Tags" msgstr "Balises définies" @@ -2517,7 +2548,7 @@ msgid "time is invalid" msgstr "Heure incorrecte" -#: f.meta.cc:532 fotoxx.h:1029 +#: f.meta.cc:532 fotoxx.h:1034 msgid "Manage Tags" msgstr "Gestion des balises" @@ -2533,11 +2564,11 @@ msgid "tag" msgstr "Balise" -#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1474 +#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1449 msgid "file not found" msgstr "Fichier introuvable" -#: f.meta.cc:1552 f.meta.cc:3257 f.tools.cc:4501 f.tools.cc:4966 +#: f.meta.cc:1552 f.meta.cc:3261 f.tools.cc:4800 f.tools.cc:5265 msgid "0 files selected" msgstr "0 fichier sélectionné" @@ -2562,7 +2593,7 @@ msgid "specify files and tags" msgstr "Spécifier fichiers et balises" -#: f.meta.cc:1788 f.meta.cc:3369 f.tools.cc:4800 f.tools.cc:5185 +#: f.meta.cc:1788 f.meta.cc:3373 f.tools.cc:5099 f.tools.cc:5484 #, c-format msgid "%d files selected" msgstr "%d fichiers sélectionnés" @@ -2571,11 +2602,11 @@ msgid "View Metadata" msgstr "Afficher les métadonnées" -#: f.meta.cc:1903 +#: f.meta.cc:1904 msgid "Caption: \n" msgstr "Légende: \n" -#: f.meta.cc:1905 +#: f.meta.cc:1906 msgid "" "\n" "Comment: \n" @@ -2583,23 +2614,23 @@ "\n" "Commentaire: \n" -#: f.meta.cc:1949 +#: f.meta.cc:1950 msgid "key name" msgstr "Nom de la clé" -#: f.meta.cc:1951 +#: f.meta.cc:1952 msgid "key value" msgstr "Valeur de la clé" -#: f.meta.cc:2041 fotoxx.h:985 +#: f.meta.cc:2042 fotoxx.h:990 msgid "All" msgstr "Toutes" -#: f.meta.cc:2042 +#: f.meta.cc:2043 msgid "One Key:" msgstr "Un mot-clé: " -#: f.meta.cc:2222 +#: f.meta.cc:2223 #, c-format msgid "" "Download geotags data (8 megabytes). \n" @@ -2610,48 +2641,40 @@ "Enregistrement dans %s \n" "Effectuer?" -#: f.meta.cc:2261 +#: f.meta.cc:2262 msgid "download failed" msgstr "Échec du téléchargement" -#: f.meta.cc:2292 fotoxx-14.03.cc:1079 -msgid "Location from World Map" -msgstr "Lieu à partir de la Mappemonde" - -#: f.meta.cc:2294 -msgid "Loading world map" -msgstr "Chargement de la mappemonde en cours" - -#: f.meta.cc:2304 f.meta.cc:2449 +#: f.meta.cc:2298 f.meta.cc:2445 msgid "please download geolocations data" msgstr "Veuillez télécharger les données de géolocalisation" -#: f.meta.cc:2309 +#: f.meta.cc:2304 msgid "Loading geolocations" msgstr "Chargement des géolocalisations en cours" -#: f.meta.cc:2737 f.meta.cc:3209 f.meta.cc:3477 +#: f.meta.cc:2741 f.meta.cc:3213 f.meta.cc:3481 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "Latitude/longitude incorrectes: %s %s" -#: f.meta.cc:3024 +#: f.meta.cc:3028 msgid "Geocoding web service courtesy of" msgstr "Service Web de Géocodage avec l'aimable autorisation de" -#: f.meta.cc:3045 f.meta.cc:3259 f.meta.cc:4772 +#: f.meta.cc:3049 f.meta.cc:3263 f.meta.cc:4778 msgid "city" msgstr "Ville" -#: f.meta.cc:3048 f.meta.cc:3262 f.meta.cc:4775 +#: f.meta.cc:3052 f.meta.cc:3266 f.meta.cc:4781 msgid "country" msgstr "Pays" -#: f.meta.cc:3120 f.meta.cc:3390 +#: f.meta.cc:3124 f.meta.cc:3394 msgid "city not found" msgstr "Ville introuvable" -#: f.meta.cc:3455 +#: f.meta.cc:3459 msgid "" "data is incomplete \n" " proceed?" @@ -2659,140 +2682,140 @@ "Données incomplètes \n" " Effectuer?" -#: f.meta.cc:3481 f.tools.cc:4844 +#: f.meta.cc:3485 f.tools.cc:5143 msgid "no files selected" msgstr "Aucun fichiers sélectionnés" -#: f.meta.cc:3513 +#: f.meta.cc:3517 msgid "choose city" msgstr "Choisir une ville" -#: f.meta.cc:3599 +#: f.meta.cc:3603 msgid "not found" msgstr "introuvable" -#: f.meta.cc:3600 +#: f.meta.cc:3604 msgid "city and country required" msgstr "Ville et pays requis" -#: f.meta.cc:3692 +#: f.meta.cc:3696 msgid "Report Geotag Groups" msgstr "Faire le rapport des groupes de balises de géolocalisation" -#: f.meta.cc:3693 +#: f.meta.cc:3697 msgid "Group by country" msgstr "Grouper par pays" -#: f.meta.cc:3694 +#: f.meta.cc:3698 msgid "Group by country/city" msgstr "Grouper par pays/ville" -#: f.meta.cc:3695 +#: f.meta.cc:3699 msgid "Group by country/city/date" msgstr "Grouper par pays/ville/date" -#: f.meta.cc:3698 +#: f.meta.cc:3702 msgid "Combine within" msgstr "Combiner avec" -#: f.meta.cc:3700 +#: f.meta.cc:3704 msgid "days" msgstr "Jours" -#: f.meta.cc:3815 +#: f.meta.cc:3819 msgid "geotag groups" msgstr "Groupes de balises de géolocalisation" # ?? -#: f.meta.cc:4043 +#: f.meta.cc:4047 msgid "search range (km)" msgstr "Plage de recherche (km)" -#: f.meta.cc:4116 +#: f.meta.cc:4120 msgid "No matching images found" msgstr "Aucun résultat pour cette recherche" -#: f.meta.cc:4202 +#: f.meta.cc:4206 msgid "Search Image Metadata" msgstr "Rechercher des métadonnées de l'image" -#: f.meta.cc:4206 +#: f.meta.cc:4210 msgid "images to search:" msgstr "Images à rechercher:" -#: f.meta.cc:4207 +#: f.meta.cc:4211 msgid "all" msgstr "Toutes" -#: f.meta.cc:4208 +#: f.meta.cc:4212 msgid "current set only" msgstr "Ensemble actuel uniquement" -#: f.meta.cc:4211 +#: f.meta.cc:4215 msgid "matching images:" msgstr "Images correspondantes:" -#: f.meta.cc:4212 +#: f.meta.cc:4216 msgid "new set" msgstr "Nouvel ensemble" -#: f.meta.cc:4213 +#: f.meta.cc:4217 msgid "add to set" msgstr "Ajouter à l'ensemble" -#: f.meta.cc:4214 +#: f.meta.cc:4218 msgid "remove" msgstr "Retirer" -#: f.meta.cc:4217 +#: f.meta.cc:4221 msgid "report type:" -msgstr "" +msgstr "Type de rapport:" -#: f.meta.cc:4218 +#: f.meta.cc:4222 msgid "gallery" -msgstr "" +msgstr "galerie" -#: f.meta.cc:4219 +#: f.meta.cc:4223 msgid "metadata" -msgstr "" +msgstr "métadonnées" -#: f.meta.cc:4225 +#: f.meta.cc:4229 msgid "date range" msgstr "Date comprise entre" -#: f.meta.cc:4226 +#: f.meta.cc:4230 msgid "stars range" msgstr "Plage d'étoiles" -#: f.meta.cc:4227 +#: f.meta.cc:4231 msgid "search tags" msgstr "Rechercher les balises" -#: f.meta.cc:4228 +#: f.meta.cc:4232 msgid "search text" msgstr "Rechercher le texte" -#: f.meta.cc:4229 +#: f.meta.cc:4233 msgid "search files" msgstr "Rechercher les fichiers" -#: f.meta.cc:4234 +#: f.meta.cc:4238 msgid "(yyyymmdd)" msgstr "(aaaammjj)" -#: f.meta.cc:4240 +#: f.meta.cc:4244 msgid "all/any" msgstr "toutes/quelconques" -#: f.meta.cc:4259 +#: f.meta.cc:4263 msgid "other criteria" msgstr "Autre critère" -#: f.meta.cc:4263 +#: f.meta.cc:4267 msgid "other" msgstr "Autre" -#: f.meta.cc:4398 +#: f.meta.cc:4402 msgid "" "to remove images from current set, \n" "search current set" @@ -2800,7 +2823,7 @@ "pour retirer des images de l'ensemble actuel, \n" "rechercher l'ensemble actuel" -#: f.meta.cc:4405 +#: f.meta.cc:4409 msgid "" "to add images to current set, \n" "search all images" @@ -2808,28 +2831,28 @@ "Pour ajouter des images à l'ensemble actuel, \n" "rechercher toutes les images" -#: f.meta.cc:4632 +#: f.meta.cc:4636 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "Images ajoutées: %d retirées: %d nouveau nombre: %d" -#: f.meta.cc:4635 +#: f.meta.cc:4639 msgid "no changes made" msgstr "Aucune modification apportée" -#: f.meta.cc:4769 +#: f.meta.cc:4775 msgid "Add Geotags Search Criteria" msgstr "Ajouter un critère de recherche de balises de géolocalisation" -#: f.meta.cc:4788 +#: f.meta.cc:4794 msgid "range (km)" msgstr "Plage (km)" -#: f.meta.cc:4881 +#: f.meta.cc:4885 msgid "error in latitude/longitude/range" msgstr "Erreur de latitude/longitude/plage" -#: f.meta.cc:4946 +#: f.meta.cc:4950 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2837,21 +2860,21 @@ "Ces éléments sont toujours rapportés: \n" "date, étoiles, balises, légende, commentaire" -#: f.meta.cc:4970 +#: f.meta.cc:4974 msgid "Additional Items for Report" msgstr "Éléments supplémentaires du rapport" -#: f.meta.cc:4976 +#: f.meta.cc:4980 msgid "Keyword" msgstr "Mots-clés" -#: f.meta.cc:4983 +#: f.meta.cc:4987 msgid "Match Criteria" msgstr "Critère de correspondance" -#: f.meta.cc:5554 f.tools.cc:300 +#: f.meta.cc:5558 f.tools.cc:300 msgid "image index is missing" -msgstr "" +msgstr "Index d'images manquant" #: f.repair.cc:86 msgid "unsharp mask" @@ -2863,7 +2886,7 @@ #: f.repair.cc:107 msgid "Kuwahara method" -msgstr "" +msgstr "Méthode Kuwahara" #: f.repair.cc:694 msgid "Set Blur Radius" @@ -2893,7 +2916,7 @@ "1. Glisser la souris pour sélectionner. \n" "2. Effacer. 3. Répéter." -#: f.repair.cc:1563 fotoxx.h:1048 +#: f.repair.cc:1563 fotoxx.h:1053 msgid "Radius" msgstr "Rayon" @@ -3014,87 +3037,95 @@ msgid "Stuck Pixels file" msgstr "Fichier des pixels bloqués" -#: f.repair.cc:4203 +#: f.repair.cc:4203 f.tools.cc:3380 msgid "file format error" msgstr "Erreur de format de fichier" -#: f.retouch.cc:292 fotoxx.h:993 +#: f.retouch.cc:292 +msgid "Amplifier" +msgstr "" + +#: f.retouch.cc:293 fotoxx.h:998 msgid "Brightness" msgstr "Luminosité" -#: f.retouch.cc:293 fotoxx.h:1000 +#: f.retouch.cc:294 fotoxx.h:1005 msgid "Contrast" msgstr "Contraste" -#: f.retouch.cc:294 +#: f.retouch.cc:295 msgid "Low Color" -msgstr "" +msgstr "Couleur basse" -#: f.retouch.cc:295 +#: f.retouch.cc:296 msgid "Warmer" -msgstr "" +msgstr "Plus chaud" -#: f.retouch.cc:296 +#: f.retouch.cc:297 msgid "Dark Areas" +msgstr "Zones foncées" + +#: f.retouch.cc:306 +msgid "Max." msgstr "" -#: f.retouch.cc:304 f.retouch.cc:305 f.retouch.cc:306 +#: f.retouch.cc:307 f.retouch.cc:308 f.retouch.cc:309 msgid "High" -msgstr "" +msgstr "Haute" -#: f.retouch.cc:307 +#: f.retouch.cc:310 msgid "Cooler" -msgstr "" +msgstr "Plus froid" -#: f.retouch.cc:308 +#: f.retouch.cc:311 msgid "Bright" -msgstr "" +msgstr "Clair" -#: f.retouch.cc:311 +#: f.retouch.cc:317 msgid "Click for white balance or black level" -msgstr "" +msgstr "Cliquer pour la balance des niveaux de blanc ou de noir" -#: f.retouch.cc:957 +#: f.retouch.cc:1067 msgid "low" msgstr "faible" -#: f.retouch.cc:959 +#: f.retouch.cc:1069 msgid "high" msgstr "haute" -#: f.retouch.cc:962 +#: f.retouch.cc:1072 msgid "Amplify" msgstr "Intensifier" -#: f.retouch.cc:1301 +#: f.retouch.cc:1411 msgid "Adjust Brightness Distribution" msgstr "Ajuster la Répartition de la Luminosité" -#: f.retouch.cc:1339 +#: f.retouch.cc:1449 msgid "Flatten" msgstr "Aplatir" -#: f.retouch.cc:1340 +#: f.retouch.cc:1450 msgid "Deband" msgstr "Détendre" -#: f.retouch.cc:1341 +#: f.retouch.cc:1451 msgid "Darken" msgstr "Assombrir" -#: f.retouch.cc:1342 +#: f.retouch.cc:1452 msgid "Brighten" msgstr "Éclaircir" -#: f.retouch.cc:1675 +#: f.retouch.cc:1784 msgid "Ramp brightness across image" msgstr "Corriger la luminosité à travers l'image" -#: f.retouch.cc:2052 f.tools.cc:5777 +#: f.retouch.cc:2161 f.retouch.cc:2398 f.tools.cc:6085 msgid "Edit function must be active" msgstr "La fonction d'édition doit être active" -#: f.retouch.cc:2060 fotoxx-14.03.cc:3108 +#: f.retouch.cc:2169 fotoxx-14.04.cc:3132 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -3102,14 +3133,26 @@ "Impossible de conserver la sélection de zone.\n" "Voulez-vous continuer?" -#: f.retouch.cc:2089 +#: f.retouch.cc:2198 msgid "power: center" msgstr "Puissance: Centre" -#: f.retouch.cc:2094 +#: f.retouch.cc:2203 msgid "reset area" msgstr "Réinitialiser la zone" +#: f.retouch.cc:2391 +msgid "Edit Function Amplifier" +msgstr "Éditer l'Amplificateur de Fonction" + +#: f.retouch.cc:2427 +msgid "minimum" +msgstr "minimum" + +#: f.retouch.cc:2429 +msgid "maximum" +msgstr "maximum" + #: f.tools.cc:95 msgid "Top Image Directories" msgstr "Répertoires d'images racines" @@ -3120,11 +3163,11 @@ #: f.tools.cc:105 msgid "Thumbnails" -msgstr "" +msgstr "Vignettes" #: f.tools.cc:143 f.tools.cc:742 msgid "terminated by user" -msgstr "" +msgstr "terminé par l'utilisateur" #: f.tools.cc:194 msgid "Choose top image directories" @@ -3132,25 +3175,25 @@ #: f.tools.cc:195 msgid "Choose thumbnail directory" -msgstr "" +msgstr "Choisir le répertoire des miniatures" #: f.tools.cc:311 #, c-format msgid "invalid top image directory: %s" -msgstr "" +msgstr "répertoire d'images racine incorrect: %s" #: f.tools.cc:317 msgid "no thumbnails directory defined" -msgstr "" +msgstr "Répertoire des miniatures non défini" #: f.tools.cc:323 msgid "thumbnails directory not .../thumbnails" -msgstr "" +msgstr "le répertoire des miniature n'est pas .../thumbnails" #: f.tools.cc:369 f.tools.cc:396 #, c-format msgid "exceeded max. images: %d" -msgstr "" +msgstr "excède le max' d'images: %d" #: f.tools.cc:493 msgid "updating index records" @@ -3165,152 +3208,136 @@ msgid "COMPLETED" msgstr "COMPLÉTÉ" -#: f.tools.cc:818 +#: f.tools.cc:817 msgid "Settings" msgstr "Paramètres" -#: f.tools.cc:821 +#: f.tools.cc:820 msgid "Startup Display" msgstr "Afficher au démarrage" -#: f.tools.cc:823 +#: f.tools.cc:822 msgid "Recent Files Gallery" msgstr "Galerie des fichiers récents" -#: f.tools.cc:825 +#: f.tools.cc:824 msgid "Newest Files Gallery" msgstr "Galerie des derniers fichiers" -#: f.tools.cc:827 +#: f.tools.cc:826 msgid "Previous Gallery" -msgstr "" +msgstr "Galerie précédente" -#: f.tools.cc:829 +#: f.tools.cc:828 msgid "Previous Image" -msgstr "" +msgstr "Image précédente" -#: f.tools.cc:831 +#: f.tools.cc:830 msgid "Blank Window" msgstr "Fenêtre vierge" -#: f.tools.cc:833 +#: f.tools.cc:832 msgid "Directory Gallery" msgstr "Répertoire de la Galerie" -#: f.tools.cc:837 +#: f.tools.cc:836 msgid "Image File" msgstr "Fichier image" -#: f.tools.cc:844 -msgid "Menu Style" -msgstr "Style du Menu" - -#: f.tools.cc:845 -msgid "Classic" -msgstr "Standard" - -#: f.tools.cc:846 -msgid "Vertical" -msgstr "Vertical" - -#: f.tools.cc:849 +#: f.tools.cc:843 msgid "Toolbar Style" msgstr "Style de la barre d'outils" -#: f.tools.cc:851 +#: f.tools.cc:845 msgid "Icons" msgstr "Icônes" -#: f.tools.cc:852 +#: f.tools.cc:846 msgid "Both" msgstr "Les deux" -#: f.tools.cc:855 +#: f.tools.cc:849 msgid "Image Pan" msgstr "Déplacement dans l'image" -#: f.tools.cc:856 +#: f.tools.cc:850 msgid "Drag" msgstr "Glisser" -#: f.tools.cc:857 -msgid "Scroll" -msgstr "Faire défiler" - -#: f.tools.cc:858 +#: f.tools.cc:852 msgid "Magnified" msgstr "Amplifié" -#: f.tools.cc:867 +#: f.tools.cc:861 msgid "Default JPEG quality" msgstr "Qualité JPEG par défaut" -#: f.tools.cc:871 +#: f.tools.cc:865 msgid "Zooms for 200%" msgstr "Zooms à 200%" -#: f.tools.cc:875 +#: f.tools.cc:869 msgid "RAW command" msgstr "Commande RAW" -#: f.tools.cc:879 +#: f.tools.cc:873 msgid "RAW file types" msgstr "Type de fichier RAW" -#: f.tools.cc:1027 +#: f.tools.cc:1016 msgid "startup directory is invalid" msgstr "Répertoire de démarrage incorrect" -#: f.tools.cc:1035 +#: f.tools.cc:1024 msgid "startup file is invalid" msgstr "Fichier de démarrage incorrect" -#: f.tools.cc:1130 +#: f.tools.cc:1105 msgid "Select startup directory" msgstr "Sélectionner le répertoire de démarrage" -#: f.tools.cc:1138 +#: f.tools.cc:1113 msgid "Select startup image file" msgstr "Sélectionner le fichier image de démarrage" -#: f.tools.cc:1176 +#: f.tools.cc:1151 msgid "Click list position. Click thumbnail to add." msgstr "Cliquer sur l'endroit de la liste. Cliquer sur la miniature à ajouter." -#: f.tools.cc:1201 f.tools.cc:1418 +#: f.tools.cc:1176 f.tools.cc:1393 msgid "Edit Bookmarks" msgstr "Éditer les signets" -#: f.tools.cc:1349 +#: f.tools.cc:1324 msgid "unable to save bookmarks file" msgstr "Impossible d'enregistrer le fichier des signets" -#: f.tools.cc:1418 +#: f.tools.cc:1393 msgid "Go To Bookmark" msgstr "Aller au signet" -#: f.tools.cc:1563 +#: f.tools.cc:1538 msgid "Edit KB Shortcuts" msgstr "Éditer les Raccourcis Clavier" -#: f.tools.cc:1568 +#: f.tools.cc:1543 msgid "shortcut key:" msgstr "Touche de raccourci:" -#: f.tools.cc:1569 +#: f.tools.cc:1544 msgid "(enter key)" -msgstr "" +msgstr "(touche entrée)" -#: f.tools.cc:1695 +#: f.tools.cc:1670 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Réservé, inutilisable" -#: f.tools.cc:1826 +#: f.tools.cc:1801 msgid "unable to save KB-shortcuts file" msgstr "Impossible d'enregistrer le fichier des Raccourcis Clavier" -#: f.tools.cc:1914 +#: f.tools.cc:1889 msgid "" "Right-click collection thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -3318,396 +3345,431 @@ "Clic droit sur une miniature de la collection pour couper/copier \n" "vers le cache, insérer à partir du cache ou retirer." -#: f.tools.cc:1955 +#: f.tools.cc:1930 msgid "Start a new collection, add images" msgstr "Commencer une nouvelle collection, ajouter des images" -#: f.tools.cc:1957 +#: f.tools.cc:1932 msgid "New collection from current gallery" msgstr "Nouvelle collection à partir de la Galerie actuelle" -#: f.tools.cc:1959 +#: f.tools.cc:1934 msgid "Collection to view or edit" msgstr "Collection à afficher ou éditer" -#: f.tools.cc:1961 +#: f.tools.cc:1936 msgid "Select images, add to cache" msgstr "Sélectionner les images, ajouter au cache" -#: f.tools.cc:1963 +#: f.tools.cc:1938 msgid "Clear image cache" msgstr "Effacer le cache de l'image" -#: f.tools.cc:1964 +#: f.tools.cc:1939 msgid "(0 images)" -msgstr "" +msgstr "(0 images)" -#: f.tools.cc:1966 +#: f.tools.cc:1941 msgid "Delete a collection" msgstr "Supprimer une collection" -#: f.tools.cc:1987 +#: f.tools.cc:1962 msgid "New Collection" msgstr "Nouvelle Collection" -#: f.tools.cc:1988 +#: f.tools.cc:1963 msgid "Choose Collection" msgstr "Choisir une collection" -#: f.tools.cc:1989 +#: f.tools.cc:1964 msgid "Delete Collection" msgstr "Supprimer la collection" -#: f.tools.cc:1990 +#: f.tools.cc:1965 #, c-format msgid "(%d images)" -msgstr "" +msgstr "(%d images)" -#: f.tools.cc:1991 +#: f.tools.cc:1966 #, c-format msgid "%d images remaining in cache" -msgstr "" +msgstr "%d images restant dans le cache" -#: f.tools.cc:2025 f.tools.cc:2064 +#: f.tools.cc:2000 f.tools.cc:2039 msgid "New collection created" msgstr "Création de la nouvelle terminée" -#: f.tools.cc:2031 +#: f.tools.cc:2006 msgid "gallery is empty" msgstr "Il n'y a rien dans la Galerie" -#: f.tools.cc:2105 +#: f.tools.cc:2080 #, c-format msgid "delete %s ?" msgstr "supprimer %s ?" -#: f.tools.cc:2461 +#: f.tools.cc:2436 msgid "all collections" -msgstr "" +msgstr "toutes les collections" -#: f.tools.cc:2495 +#: f.tools.cc:2470 msgid "Move Collection" msgstr "Déplacer la collection" -#: f.tools.cc:2497 +#: f.tools.cc:2472 msgid "collection name" msgstr "Nom de la Collection" -#: f.tools.cc:2500 +#: f.tools.cc:2475 msgid "old path segment" -msgstr "" +msgstr "ancien segment du chemin" -#: f.tools.cc:2503 +#: f.tools.cc:2478 msgid "new path segment" -msgstr "" +msgstr "nouveau segment du chemin" -#: f.tools.cc:2592 +#: f.tools.cc:2567 msgid "Replace Collection?" -msgstr "" +msgstr "Remplacer la collection?" -#: f.tools.cc:2708 +#: f.tools.cc:2694 msgid "Press ESC to exit slide show" msgstr "Appuyer sur la touche Échap pour quitter le diaporama" -#: f.tools.cc:2709 -msgid "last versions" -msgstr "" - -#: f.tools.cc:2713 +#: f.tools.cc:2696 msgid "instant" msgstr "Instantané" -#: f.tools.cc:2714 +#: f.tools.cc:2697 msgid "fade-in" msgstr "Fondu" -#: f.tools.cc:2715 +#: f.tools.cc:2698 msgid "roll-right" msgstr "Rouleau à droite" -#: f.tools.cc:2716 +#: f.tools.cc:2699 msgid "roll-down" msgstr "Rouleau à gauche" -#: f.tools.cc:2717 +#: f.tools.cc:2700 msgid "venetian" msgstr "Store vénitien" -#: f.tools.cc:2718 +#: f.tools.cc:2701 msgid "grate" msgstr "Grille" -#: f.tools.cc:2719 +#: f.tools.cc:2702 msgid "rectangle" msgstr "Rectangle" -#: f.tools.cc:2720 +#: f.tools.cc:2703 msgid "radar" msgstr "Radar" -#: f.tools.cc:2721 +#: f.tools.cc:2704 msgid "jaws" msgstr "Mâchoires" -#: f.tools.cc:2722 +#: f.tools.cc:2705 msgid "ellipse" msgstr "Ellipse" -#: f.tools.cc:2723 +#: f.tools.cc:2706 msgid "raindrops" msgstr "Gouttes de pluie" -#: f.tools.cc:2724 +#: f.tools.cc:2707 msgid "doubledoor" -msgstr "" +msgstr "porte à deux battants" -#: f.tools.cc:2725 +#: f.tools.cc:2708 msgid "rotate" -msgstr "" +msgstr "pivoter" -#: f.tools.cc:2787 -msgid "Pause List" -msgstr "" +#: f.tools.cc:2739 +msgid "Clip Limit" +msgstr "Limite d'attache" + +#: f.tools.cc:2741 +msgid "Show Captions" +msgstr "Afficher les légendes" -#: f.tools.cc:2794 -msgid "transitions" -msgstr "Transitions" +#: f.tools.cc:2744 +msgid "Music File" +msgstr "Fichier audio" -#: f.tools.cc:2796 -msgid "seconds" -msgstr "Secondes" +#: f.tools.cc:2749 +msgid "Customize:" +msgstr "Personnaliser:" -#: f.tools.cc:2800 -msgid "Clip Limit (%)" -msgstr "" +#: f.tools.cc:2750 +msgid "transitions" +msgstr "Transitions" -#: f.tools.cc:2802 -msgid "show captions" +#: f.tools.cc:2751 +msgid "image files" msgstr "" -#: f.tools.cc:2805 -msgid "music file" -msgstr "Fichier audio" - -#: f.tools.cc:2820 f.tools.cc:2828 f.tools.cc:2956 f.tools.cc:2979 -#: f.tools.cc:2992 +#: f.tools.cc:2759 f.tools.cc:2880 #, c-format msgid "%d images" -msgstr "" +msgstr "%d images" -#: f.tools.cc:2854 -msgid "no image files selected" -msgstr "Aucun fichiers image sélectionnés" +#: f.tools.cc:2781 f.tools.cc:2847 f.tools.cc:2875 f.tools.cc:2937 +#: f.tools.cc:3033 f.tools.cc:3189 f.tools.cc:3236 f.tools.cc:3253 +#: f.tools.cc:3396 +msgid "invalid collection" +msgstr "Collection invalide" -#: f.tools.cc:2945 f.tools.cc:2968 +#: f.tools.cc:2860 msgid "open collection" msgstr "Ouvrir une collection" -#: f.tools.cc:3013 +#: f.tools.cc:2900 msgid "Select music file or playlist" msgstr "Sélectionner un fichier audio ou une liste de lecture" -#: f.tools.cc:3046 -msgid "invalid collection" +#: f.tools.cc:2917 +msgid "select random (if 5+ enabled)" +msgstr "Sélection aléatoire (si +5 disponibles)" + +#: f.tools.cc:2941 +msgid "Transition Preferences" +msgstr "Préférences transition " + +#: f.tools.cc:2950 +msgid "transition" +msgstr "transition" + +#: f.tools.cc:2951 +msgid "enabled" +msgstr "activé" + +#: f.tools.cc:2952 +msgid "slowdown" +msgstr "Ralentissement" + +#: f.tools.cc:2953 +msgid "preference" +msgstr "Préférence" + +#: f.tools.cc:3037 +msgid "Image Preferences" msgstr "" -#: f.tools.cc:3061 f.tools.cc:3131 -msgid "empty collection" +#: f.tools.cc:3041 f.tools.cc:3090 f.tools.cc:3202 +msgid "Image File:" +msgstr "Fichier image:" + +#: f.tools.cc:3044 +msgid "Play tone" msgstr "" -#: f.tools.cc:3167 -msgid "select random (if 5+ enabled)" +#: f.tools.cc:3046 +msgid "Transition" msgstr "" -#: f.tools.cc:3186 -msgid "Transition Preferences" +#: f.tools.cc:3051 f.tools.cc:3071 +msgid "+Seconds" msgstr "" -#: f.tools.cc:3196 -msgid "transition" +#: f.tools.cc:3053 +msgid "before zoom" msgstr "" -#: f.tools.cc:3197 -msgid "enabled" +#: f.tools.cc:3056 +msgid "Zoom size %" msgstr "" -#: f.tools.cc:3198 -msgid "slowdown" +#: f.tools.cc:3059 +msgid "Steps" msgstr "" -#: f.tools.cc:3199 -msgid "preference" +#: f.tools.cc:3063 +msgid "Zoom center" msgstr "" -#: f.tools.cc:4506 -msgid "base" +#: f.tools.cc:3073 +msgid "after zoom" msgstr "" -#: f.tools.cc:4508 +#: f.tools.cc:3075 +msgid "next" +msgstr "suiv." + +#: f.tools.cc:4805 +msgid "base" +msgstr "base" + +#: f.tools.cc:4807 msgid "adder" -msgstr "" +msgstr "ajout" -#: f.tools.cc:4512 +#: f.tools.cc:4811 msgid "New Location" -msgstr "" +msgstr "Nouvel emplacement" -#: f.tools.cc:4517 +#: f.tools.cc:4816 msgid "New File Type" -msgstr "" +msgstr "Nouveau type de fichier" -#: f.tools.cc:4521 f.tools.cc:4529 +#: f.tools.cc:4820 f.tools.cc:4828 msgid "no change" msgstr "aucune modification" -#: f.tools.cc:4524 +#: f.tools.cc:4823 msgid "max. Width" -msgstr "" +msgstr "Largeur max." -#: f.tools.cc:4527 fotoxx.h:1020 +#: f.tools.cc:4826 fotoxx.h:1025 msgid "Height" msgstr "Hauteur" -#: f.tools.cc:4532 f.tools.cc:4905 +#: f.tools.cc:4831 f.tools.cc:5204 msgid "Delete Originals" -msgstr "" +msgstr "Supprimer les originaux" -#: f.tools.cc:4533 f.tools.cc:4902 +#: f.tools.cc:4832 f.tools.cc:5201 msgid "Copy Metadata" -msgstr "" +msgstr "Copier les métadonnées" -#: f.tools.cc:4534 f.tools.cc:4903 +#: f.tools.cc:4833 f.tools.cc:5202 msgid "Upright" -msgstr "" +msgstr "En haut et à droite" -#: f.tools.cc:4626 +#: f.tools.cc:4925 msgid "file already exists" msgstr "le fichier existe déjà" -#: f.tools.cc:4634 +#: f.tools.cc:4933 msgid "file type not supported" msgstr "Type de fichier non pris en charge" -#: f.tools.cc:4703 +#: f.tools.cc:5002 msgid "cannot create new file" msgstr "Impossible de créer le nouveau fichier" -#: f.tools.cc:4854 +#: f.tools.cc:5153 msgid "" "new name/base/adder unreasonable\n" " e.g. newname ### 100 10" msgstr "" +"nouveau nom/base/ajouts incohérents\n" +" ex: nouveaunom### 100 10" -#: f.tools.cc:4877 +#: f.tools.cc:5176 #, c-format msgid "max. size %d x %d is not reasonable" msgstr "Taille max. %d x %d incohérente" -#: f.tools.cc:4896 +#: f.tools.cc:5195 #, c-format msgid "Convert %d image files" -msgstr "" +msgstr "Convertir les fichiers image %d" -#: f.tools.cc:4897 +#: f.tools.cc:5196 msgid "Rename to" -msgstr "" +msgstr "Renommer en" -#: f.tools.cc:4898 +#: f.tools.cc:5197 msgid "Convert to" -msgstr "" +msgstr "Convertir en" -#: f.tools.cc:4899 +#: f.tools.cc:5198 msgid "Resize within" -msgstr "" +msgstr "Redimensionner dans" -#: f.tools.cc:4900 +#: f.tools.cc:5199 msgid "Output to" -msgstr "" +msgstr "Sortie vers" -#: f.tools.cc:4906 +#: f.tools.cc:5205 msgid "PROCEED?" -msgstr "" +msgstr "EFFECTUER?" -#: f.tools.cc:4938 +#: f.tools.cc:5237 msgid "Batch Convert RAW Files" msgstr "Convertir des fichiers RAW par lots" -#: f.tools.cc:4969 +#: f.tools.cc:5268 msgid "output file type" msgstr "Type de fichier de sortie" -#: f.tools.cc:4981 +#: f.tools.cc:5280 msgid "white balance" msgstr "Balance des blancs" -#: f.tools.cc:4982 +#: f.tools.cc:5281 msgid "interpolation" msgstr "Interpolation" -#: f.tools.cc:4983 +#: f.tools.cc:5282 msgid "color space" msgstr "Espace de couleur" -#: f.tools.cc:4984 +#: f.tools.cc:5283 msgid "gamma curve" msgstr "Courbe gamma" -#: f.tools.cc:4987 +#: f.tools.cc:5286 msgid "camera" msgstr "Appareil photo" -#: f.tools.cc:4988 +#: f.tools.cc:5287 msgid "fixed" msgstr "défini" -#: f.tools.cc:4989 +#: f.tools.cc:5288 msgid "calculated" msgstr "calculé" -#: f.tools.cc:5006 +#: f.tools.cc:5305 msgid "default" msgstr "Défaut" -#: f.tools.cc:5012 +#: f.tools.cc:5311 msgid "defaults" msgstr "Défauts" -#: f.tools.cc:5526 +#: f.tools.cc:5834 msgid "x-spacing" msgstr "x-espacement" -#: f.tools.cc:5527 +#: f.tools.cc:5835 msgid "x-count" msgstr "x-nombre" -#: f.tools.cc:5528 +#: f.tools.cc:5836 msgid "x-enable" msgstr "x-activé" -#: f.tools.cc:5534 +#: f.tools.cc:5842 msgid "y-spacing" msgstr "y-espacement" -#: f.tools.cc:5535 +#: f.tools.cc:5843 msgid "y-count" msgstr "y-nombre" -#: f.tools.cc:5536 +#: f.tools.cc:5844 msgid "y-enable" msgstr "y-activé" -#: f.tools.cc:5984 +#: f.tools.cc:6292 msgid "Darkest and Brightest Pixels" -msgstr "" +msgstr "Pixels les plus foncés et clairs" -#: f.tools.cc:6007 +#: f.tools.cc:6315 msgid "Dark Limit" -msgstr "" +msgstr "Limite foncé" -#: f.tools.cc:6008 +#: f.tools.cc:6316 msgid "Bright Limit" -msgstr "" +msgstr "Limite clair" -#: f.tools.cc:6115 +#: f.tools.cc:6423 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3715,31 +3777,31 @@ "La luminosité devrait être progressive, \n" "s'étendant régulièrement d'un bord à l'autre." -#: f.tools.cc:6272 +#: f.tools.cc:6580 msgid "Available Translations" msgstr "Traductions disponibles" -#: f.tools.cc:6276 +#: f.tools.cc:6584 msgid "Set Language" msgstr "Définir la langue" -#: f.tools.cc:6364 +#: f.tools.cc:6672 msgid "Make Launcher" msgstr "Créer un lanceur" -#: fotoxx-14.03.cc:312 +#: fotoxx-14.04.cc:309 msgid "Tab F: image file view/edit" msgstr "Onglet F: Afficher/Éditer un fichier image" -#: fotoxx-14.03.cc:321 +#: fotoxx-14.04.cc:318 msgid "Tab G: image gallery" msgstr "Onglet G: Galerie d'images" -#: fotoxx-14.03.cc:330 +#: fotoxx-14.04.cc:327 msgid "Tab W: world map" msgstr "Onglet M: Mappemonde" -#: fotoxx-14.03.cc:447 +#: fotoxx-14.04.cc:441 msgid "" "First time Fotoxx startup. \n" "Latest version: http://www.kornelix.com/fotoxx \n" @@ -3750,59 +3812,63 @@ "La synchronisation des fichiers va commencer (peut prendre un certain " "temps) \n" -#: fotoxx-14.03.cc:492 +#: fotoxx-14.04.cc:488 msgid "Please install missing programs:" msgstr "Veuillez installer ce(s) programme(s) manquant(s):" -#: fotoxx-14.03.cc:901 +#: fotoxx-14.04.cc:904 msgid "(reduced)" msgstr "(réduit)" -#: fotoxx-14.03.cc:902 +#: fotoxx-14.04.cc:905 msgid "area active" msgstr "zone active" -#: fotoxx-14.03.cc:903 +#: fotoxx-14.04.cc:906 msgid "dialog open" msgstr "dialogue ouvert" -#: fotoxx-14.03.cc:904 +#: fotoxx-14.04.cc:907 msgid "function busy" -msgstr "" +msgstr "Fonction occupée" -#: fotoxx-14.03.cc:905 +#: fotoxx-14.04.cc:908 msgid "file index busy" -msgstr "" +msgstr "Index de fichiers occupé" -#: fotoxx-14.03.cc:906 +#: fotoxx-14.04.cc:909 msgid "menu locked" msgstr "menu verrouillé" -#: fotoxx-14.03.cc:953 +#: fotoxx-14.04.cc:956 msgid "edits" msgstr "modifications" -#: fotoxx-14.03.cc:999 +#: fotoxx-14.04.cc:1002 msgid "Kill active dialog?" -msgstr "" +msgstr "Terminer le dialogue actif?" -#: fotoxx-14.03.cc:2768 +#: fotoxx-14.04.cc:1082 +msgid "Location from World Map" +msgstr "Lieu à partir de la Mappemonde" + +#: fotoxx-14.04.cc:2792 msgid "Exceed 50 anchor points" msgstr "Excède 50 points d'ancrage" -#: fotoxx-14.03.cc:2951 +#: fotoxx-14.04.cc:2975 msgid "load curve from a file" msgstr "Charger la courbe depuis un fichier" -#: fotoxx-14.03.cc:3026 +#: fotoxx-14.04.cc:3050 msgid "save curve to a file" msgstr "Enregistrer les courbes dans un fichier" -#: fotoxx-14.03.cc:3101 +#: fotoxx-14.04.cc:3125 msgid "Too many edits, please save image" msgstr "Trop de modifications, veuillez sauvegarder l'image" -#: fotoxx-14.03.cc:3116 +#: fotoxx-14.04.cc:3140 msgid "" "Select area not active.\n" "Continue?" @@ -3810,289 +3876,293 @@ "La sélection de zone n'est pas active.\n" "Continuer?" -#: fotoxx-14.03.cc:3503 +#: fotoxx-14.04.cc:3527 msgid "This action will discard changes\n" msgstr "Cette action va annuler les modifications\n" -#: fotoxx-14.03.cc:3504 fotoxx.h:1026 +#: fotoxx-14.04.cc:3528 fotoxx.h:1031 msgid "Keep" msgstr "Conserver" -#: fotoxx-14.03.cc:3505 +#: fotoxx-14.04.cc:3529 msgid "Discard" msgstr "Abandonner" -#: fotoxx-14.03.cc:3519 fotoxx-14.03.cc:3539 +#: fotoxx-14.04.cc:3543 fotoxx-14.04.cc:3563 msgid "prior function active" -msgstr "" +msgstr "fonction antérieure active" -#: fotoxx.h:983 +#: fotoxx.h:988 msgid "Add" msgstr "Ajouter" -#: fotoxx.h:984 +#: fotoxx.h:989 msgid "Add All" msgstr "Tout ajouter" -#: fotoxx.h:986 +#: fotoxx.h:991 msgid "Amount" msgstr "Quantité" -#: fotoxx.h:987 +#: fotoxx.h:992 msgid "Angle" msgstr "Angle" -#: fotoxx.h:988 +#: fotoxx.h:993 msgid "Apply" msgstr "Appliquer" -#: fotoxx.h:989 +#: fotoxx.h:994 msgid "Autocomplete" msgstr "Complétion automatique" -#: fotoxx.h:990 +#: fotoxx.h:995 msgid "Black" msgstr "Noir" -#: fotoxx.h:991 +#: fotoxx.h:996 msgid "Blend Width" msgstr "Dosage du mélange" -#: fotoxx.h:994 +#: fotoxx.h:999 msgid "Browse" msgstr "Parcourir" -#: fotoxx.h:995 +#: fotoxx.h:1000 msgid "Cancel" msgstr "Annuler" -#: fotoxx.h:996 +#: fotoxx.h:1001 msgid "center" msgstr "Centrer" -#: fotoxx.h:997 +#: fotoxx.h:1002 msgid "Choose" msgstr "Choisir" -#: fotoxx.h:998 +#: fotoxx.h:1003 msgid "Clear" msgstr "Effacer" -#: fotoxx.h:1002 +#: fotoxx.h:1007 msgid "Create" -msgstr "" +msgstr "Créer" -#: fotoxx.h:1003 +#: fotoxx.h:1008 msgid "Curve File:" msgstr "Fichier de courbes:" -#: fotoxx.h:1004 +#: fotoxx.h:1009 msgid "Cut" msgstr "Couper" -#: fotoxx.h:1005 +#: fotoxx.h:1010 msgid "Delete" msgstr "Supprimer" -#: fotoxx.h:1007 -msgid "Bdist" +#: fotoxx.h:1012 +msgid "Dist" msgstr "" -#: fotoxx.h:1008 +#: fotoxx.h:1013 msgid "Done" msgstr "Terminé" -#: fotoxx.h:1009 +#: fotoxx.h:1014 msgid "edge" msgstr "bord" -#: fotoxx.h:1010 +#: fotoxx.h:1015 msgid "Edit" msgstr "Éditer" -#: fotoxx.h:1012 +#: fotoxx.h:1017 msgid "Erase" msgstr "Effacer" -#: fotoxx.h:1013 +#: fotoxx.h:1018 msgid "Fetch" msgstr "Atteindre" -#: fotoxx.h:1014 +#: fotoxx.h:1019 msgid "Find" msgstr "Rechercher" -#: fotoxx.h:1015 +#: fotoxx.h:1020 msgid "Finish" msgstr "Finir" -#: fotoxx.h:1016 +#: fotoxx.h:1021 msgid "Font" msgstr "Police" -#: fotoxx.h:1017 +#: fotoxx.h:1022 msgid "Geotags" msgstr "Balises de géolocalisation" -#: fotoxx.h:1019 +#: fotoxx.h:1024 msgid "Grid" msgstr "Grille" -#: fotoxx.h:1023 +#: fotoxx.h:1028 msgid "Images" msgstr "Images" -#: fotoxx.h:1024 +#: fotoxx.h:1029 msgid "Insert" msgstr "Insérer" -#: fotoxx.h:1027 +#: fotoxx.h:1032 msgid "limit" msgstr "Limiter" -#: fotoxx.h:1028 +#: fotoxx.h:1033 msgid "Make" msgstr "Faire" -#: fotoxx.h:1030 +#: fotoxx.h:1035 msgid "Map" msgstr "Mappemonde" -#: fotoxx.h:1031 +#: fotoxx.h:1036 msgid "Max" -msgstr "" +msgstr "Max" -#: fotoxx.h:1032 +#: fotoxx.h:1037 msgid "Negative" msgstr "Négatif" -#: fotoxx.h:1033 +#: fotoxx.h:1038 msgid "New" msgstr "Nouveau" -#: fotoxx.h:1035 zfuncs.cc:8589 +#: fotoxx.h:1040 zfuncs.cc:8589 msgid "No" msgstr "Non" -#: fotoxx.h:1036 +#: fotoxx.h:1041 msgid "no images" -msgstr "" +msgstr "Pas d'images" -#: fotoxx.h:1037 +#: fotoxx.h:1042 msgid "no selection" -msgstr "" +msgstr "Pas de sélection" -#: fotoxx.h:1038 +#: fotoxx.h:1043 msgid "OK" msgstr "Valider" -#: fotoxx.h:1040 +#: fotoxx.h:1045 msgid "Open RAW File" msgstr "Ouvrir un fichier RAW" -#: fotoxx.h:1042 +#: fotoxx.h:1047 msgid "Pause" msgstr "Pause" -#: fotoxx.h:1043 +#: fotoxx.h:1048 msgid "Percent" msgstr "Pour-cent" -#: fotoxx.h:1045 +#: fotoxx.h:1050 msgid "Presets" msgstr "Pré-réglages" -#: fotoxx.h:1047 +#: fotoxx.h:1052 msgid "Proceed" msgstr "Effectuer" -#: fotoxx.h:1049 +#: fotoxx.h:1054 msgid "range" msgstr "Plage" -#: fotoxx.h:1052 +#: fotoxx.h:1057 msgid "Reduce" msgstr "Réduire" -#: fotoxx.h:1053 +#: fotoxx.h:1058 msgid "Remove" msgstr "Retirer" -#: fotoxx.h:1055 +#: fotoxx.h:1060 msgid "Reset" msgstr "Réinitialiser" -#: fotoxx.h:1056 +#: fotoxx.h:1061 msgid "Rotate" msgstr "Pivoter" -#: fotoxx.h:1058 +#: fotoxx.h:1063 msgid "Unknown file type, save as tiff/jpeg/png to edit" msgstr "" "Type de fichier inconnu. Enregistrer au format tiff/jpeg/png pour l'éditer" -#: fotoxx.h:1059 +#: fotoxx.h:1064 msgid "Search" msgstr "Rechercher" -#: fotoxx.h:1063 +#: fotoxx.h:1065 +msgid "Seconds" +msgstr "Secondes" + +#: fotoxx.h:1069 msgid "Size" msgstr "Taille" -#: fotoxx.h:1064 +#: fotoxx.h:1070 msgid "Start" msgstr "Démarrer" -#: fotoxx.h:1065 +#: fotoxx.h:1071 msgid "Strength" -msgstr "" +msgstr "Force" -#: fotoxx.h:1066 +#: fotoxx.h:1072 msgid "Threshold" msgstr "Seuil" -#: fotoxx.h:1067 +#: fotoxx.h:1073 #, c-format msgid "exceed %d files" msgstr "Excède %d fichiers" -#: fotoxx.h:1069 +#: fotoxx.h:1075 msgid "Trim" msgstr "Rogner" -#: fotoxx.h:1070 +#: fotoxx.h:1076 msgid "Undo All" msgstr "Tout Annuler" -#: fotoxx.h:1071 +#: fotoxx.h:1077 msgid "Undo Last" msgstr "Annuler préc." -#: fotoxx.h:1073 +#: fotoxx.h:1079 msgid "Unfinish" msgstr "Ne pas finir" -#: fotoxx.h:1075 +#: fotoxx.h:1081 msgid "View" msgstr "Afficher" -#: fotoxx.h:1076 +#: fotoxx.h:1082 msgid "Web" msgstr "Web" -#: fotoxx.h:1077 +#: fotoxx.h:1083 msgid "White" msgstr "Blanc" -#: fotoxx.h:1079 +#: fotoxx.h:1085 msgid "x-offset" msgstr "x-décalage" -#: fotoxx.h:1080 +#: fotoxx.h:1086 msgid "y-offset" msgstr "y-décalage" -#: fotoxx.h:1081 zfuncs.cc:8589 +#: fotoxx.h:1087 zfuncs.cc:8589 msgid "Yes" msgstr "Oui" @@ -4116,11 +4186,11 @@ #: zfuncs.cc:9030 msgid "choose file" -msgstr "" +msgstr "choisir le fichier" #: zfuncs.cc:9035 msgid "choose files" -msgstr "" +msgstr "choisir les fichiers" #: zfuncs.cc:9040 msgid "save" @@ -4128,11 +4198,11 @@ #: zfuncs.cc:9046 msgid "choose folder" -msgstr "" +msgstr "choisir le dossier" #: zfuncs.cc:9051 msgid "choose folders" -msgstr "" +msgstr "choisir les dossiers" #: zfuncs.cc:9056 msgid "create folder" @@ -4247,1098 +4317,11 @@ msgid "add parameter" msgstr "Ajouter un paramètre" -#~ msgid "no top image directory defined" -#~ msgstr "Aucun répertoire racine d'images défini" - -#~ msgid "Synch Files, Settings, Collections, Batch Funcs ..." -#~ msgstr "" -#~ "Synchronisation des Fichiers, Paramètres, Collections, Fonctions de " -#~ "traitement par lots..." - -#~ msgid "Synchronize Files" -#~ msgstr "Synchroniser les fichiers" - -#~ msgid "Batch Rename" -#~ msgstr "Renommer par lots" - -#~ msgid "Rename multiple image files" -#~ msgstr "Renommer des fichiers image par lots" - -#~ msgid "Convert resize, move multiple files" -#~ msgstr "Convertir, redimensionner, déplacer des fichiers par lots" - -#~ msgid "" -#~ "Metadata index is missing.\n" -#~ "Use Tools > Synchronize Files." -#~ msgstr "" -#~ "L'index des métadonnées est manquant.\n" -#~ "Utiliser Outils > Synchroniser les fichiers." - -#~ msgid "warmer" -#~ msgstr "Plus chaud" - -#~ msgid "cooler" -#~ msgstr "Plus doux" - -#~ msgid "" -#~ "Synchronize Files makes gallery windows fast \n" -#~ "and enables metadata functions to work correctly.\n" -#~ msgstr "" -#~ "La synchronisation des fichiers accélère l'affichage des fenêtres de la " -#~ "Galerie \n" -#~ "et permet aux fonctions de métadonnées de fonctionner correctement.\n" - -#~ msgid "top image directory is invalid" -#~ msgstr "Répertoire racine d'images incorrect" - -#~ msgid "thumbnail directory is invalid" -#~ msgstr "Répertoire des miniatures incorrect" - -#~ msgid "no search index file is present" -#~ msgstr "Aucun fichier d'index présent" - -#~ msgid "last file sync time is unknown" -#~ msgstr "L'heure de la dernière synchronisation de fichiers est inconnue" - -#~ msgid "new/modified files are present" -#~ msgstr "Fichiers nouveaux/modifiés présents" - -#~ msgid "file sync disabled" -#~ msgstr "Synchronisation des fichiers désactivée" - -#~ msgid "file sync not needed" -#~ msgstr "Synchronisation des fichiers inutile" - -#~ msgid "Use file sync function (recommended)" -#~ msgstr "Utiliser la synchronisation des fichiers (recommandé)" - -#~ msgid "(if NO, metadata functions are disabled)" -#~ msgstr "(Si NON, les fonctions de métadonnées sont désactivées)" - -#~ msgid "Thumbnail Options:" -#~ msgstr "Options des miniatures:" - -#~ msgid "None (galleries are slow)" -#~ msgstr "Aucun (Galerie lentes)" - -#~ msgid "Use hidden directories with images" -#~ msgstr "Utiliser les répertoires masqués avec des images" - -#~ msgid "Use Directory" -#~ msgstr "Utiliser le Répertoire" - -#~ msgid "Initialize Everything" -#~ msgstr "Tout réinitialiser" - -#~ msgid "File sync is necessary. Cancel anyway?" -#~ msgstr "Synchronisation des fichiers nécessaire. Abandonner tout de même?" - -#~ msgid "directory is invalid" -#~ msgstr "Répertoire incorrect" - -#~ msgid "select a thumbnail option" -#~ msgstr "Sélectionner une option de miniature" - -#~ msgid "thumbnail directory cannot be under top directory" -#~ msgstr "" -#~ "Le répertoire des miniatures ne peut se trouver dans le répertoire racine" - -#~ msgid "Synchronize Files (may need some time)" -#~ msgstr "Synchronisation des fichiers (peut prendre un certain temps)" - -#~ msgid "delete all thumbnails" -#~ msgstr "Suppression de toutes les miniatures" - -#~ msgid "delete orphan thumbnails" -#~ msgstr "Suppression des miniatures orphelines" - -#~ msgid "%d orphan thumbnails deleted \n" -#~ msgstr "%d miniatures orphelines supprimées \n" - -#~ msgid "create missing and update stale thumbnails" -#~ msgstr "Création des miniatures manquantes et mise à jour des obsolètes" - -#~ msgid "%d thumbnails created, %d errors \n" -#~ msgstr "%d miniatures créées, %d erreurs \n" - -#~ msgid "no search index file is in use" -#~ msgstr "Aucun fichier d'index de recherche en cours d'utilisation" - -#~ msgid "rebuild search index" -#~ msgstr "Reconstruction de l'index de recherche" - -#~ msgid "%d current index records found \n" -#~ msgstr "%d rapports d'index actuels trouvés \n" - -#~ msgid "find all image files and build index records" -#~ msgstr "Recherche de toutes les images et construction des rapports d'index" - -#~ msgid "too many image files" -#~ msgstr "Trop de fichiers image" - -#~ msgid "found %d image files \n" -#~ msgstr "%d fichiers image trouvés \n" - -#~ msgid "merging old and new index records" -#~ msgstr "Fusion des anciens et des nouveaux rapports d'index" - -#~ msgid "files found in current index recs: %d \n" -#~ msgstr "Fichiers trouvés dans les rapports d'index actuels: %d \n" - -#~ msgid "KILLED" -#~ msgstr "ÉLIMINÉ" - -#~ msgid "new base name" -#~ msgstr "Nouveau nom de base" - -#~ msgid "starting sequence" -#~ msgstr "Séquence de départ" - -#~ msgid "increment" -#~ msgstr "Incrémentation" - -#~ msgid "new file already exists:" -#~ msgstr "Le nouveau fichier existe déjà: " - -#~ msgid "Rename failed:" -#~ msgstr "Échec du renommage: " - -#~ msgid "base name / sequence / increment not reasonable" -#~ msgstr "Nom de base / Séquence / Incrémentation incohérents" - -#~ msgid "new file type" -#~ msgstr "Nouveau type de fichier" - -#~ msgid "max. width" -#~ msgstr "Largeur max." - -#~ msgid "move to location" -#~ msgstr "Exporter vers l'emplacement" - -#~ msgid "" -#~ "copy files? \n" -#~ " to location %s" -#~ msgstr "" -#~ "Copier les fichiers? \n" -#~ "vers l'emplacement %s" - -#~ msgid "" -#~ "copy files? (max. %d x %d) \n" -#~ " to location %s" -#~ msgstr "" -#~ "Copier les fichiers? (max. %d x %d) \n" -#~ "vers l'emplacement %s" - -#~ msgid "" -#~ "\n" -#~ " and delete originals" -#~ msgstr "" -#~ "\n" -#~ " et supprimer les originaux" - -#~ msgid "edits: %d" -#~ msgstr "modifications: %d" - -#~ msgid "open" -#~ msgstr "Ouvrir" - -#~ msgid "choose" -#~ msgstr "Choisir" - -#~ msgid "open folder" -#~ msgstr "Ouvrir un dossier" - -#~ msgid "Adjust White Balance" -#~ msgstr "Ajuster la balance des blancs" - -#~ msgid "Click white or gray image location" -#~ msgstr "Cliquer à un endroit blanc ou gris de l'image" - -#~ msgid "reduce" -#~ msgstr "Réduire" - -#~ msgid "outline threshold" -#~ msgstr "Seuil du contour" - -#~ msgid "outline width" -#~ msgstr "Épaisseur du contour" - -#~ msgid "image brightness" -#~ msgstr "Luminosité de l'image" - -#~ msgid "portrait" -#~ msgstr "Portrait" - -#~ msgid "landscape" -#~ msgstr "Paysage" - -#~ msgid "customize" -#~ msgstr "Personnaliser" - -#~ msgid "Brightness/Contrast/Color" -#~ msgstr "Luminosité/Contraste/Couleur" - -#~ msgid "Adjust contrast using a gamma curve" -#~ msgstr "Ajuster le contraste au moyen d'une courbe gamma" - -#~ msgid "Gamma Curves" -#~ msgstr "Courbes Gamma" - -#~ msgid "Click on a white/gray area to fix color tint" -#~ msgstr "Cliquer à un endroit blanc/gris pour définir la teinte" - -#~ msgid "White Balance" -#~ msgstr "Balance des blancs" - -#~ msgid "Brightness/Color" -#~ msgstr "Luminosité/Couleur" - -#~ msgid "edge detection" -#~ msgstr "Détection des bords" - -#~ msgid "cycles" -#~ msgstr "Cycles" - -#~ msgid "small-steps" -#~ msgstr "Par petites étapes" - -#~ msgid "Saturation" -#~ msgstr "Saturation" - -#~ msgid " reset 1 " -#~ msgstr " Réinitialiser 1" - -#~ msgid "reset all" -#~ msgstr "Tout réinitialiser" - -#~ msgid "previous" -#~ msgstr "Préc." - -#~ msgid "adjust image gamma" -#~ msgstr "Ajuster le gamma de l'image" - -#~ msgid "arrow keys" -#~ msgstr "Touches fléchées" - -#~ msgid "curve file is invalid" -#~ msgstr "Fichier de courbes incorrect" - -#~ msgid "curve file has different no. of curves" -#~ msgstr "Le fichier de courbes comporte un nombre différent de courbes" - -#~ msgid "histogram" -#~ msgstr "Histogramme" - -#~ msgid "Add standard bias" -#~ msgstr "Ajouter un écart standard" - -#~ msgid "Load CMYK parameters" -#~ msgstr "Charger les paramètres CMYK" - -#~ msgid "CMYK parameters file" -#~ msgstr "Fichier de paramétrage CMYK" - -#~ msgid "Save CMYK parameters" -#~ msgstr "Enregistrer les paramètres CMYK" - -#~ msgid "Drag right edge with mouse" -#~ msgstr "Glisser le bord droit avec la souris" - -#~ msgid "Rotate Image" -#~ msgstr "Pivoter l'image" - -#~ msgid "degrees" -#~ msgstr "degrés" - -#~ msgid "Drag middle to move, drag corners to resize." -#~ msgstr "" -#~ "Glisser le centre pour déplacer, glisser les coins pour redimensionner." - -#~ msgid "Trim/Crop" -#~ msgstr "Rogner/recadrer" - -#~ msgid "Rotate, Trim/Crop, Resize, Add Text" -#~ msgstr "Pivoter, Rogner/Recadrer, Redimensionner, Ajouter du Texte" - -#~ msgid "Rotate by any angle" -#~ msgstr "Pivoter suivant un angle quelconque" - -#~ msgid "Cut off unwanted margins" -#~ msgstr "Couper les marges superflues" - -#~ msgid "Flatten Brightness" -#~ msgstr "Aplatir la luminosité" - -#~ msgid "Flatten brightness distribution" -#~ msgstr "Aplatir la répartition de la luminosité" - -#~ msgid "Expand Brightness" -#~ msgstr "Étendre la luminosité" - -#~ msgid "Expand brightness range" -#~ msgstr "Étendre la plage de luminosité" - -#~ msgid "Flatten Brightness Distribution" -#~ msgstr "Aplatir la répartition de la luminosité" - -#~ msgid "Expand Brightness Range" -#~ msgstr "Étendre la plage de luminosité" - -#~ msgid "bright pixels" -#~ msgstr "Pixels lumineux" - -#~ msgid "Warn Overwrite Original" -#~ msgstr "Avertir en cas d'écrasement" - -#~ msgid "" -#~ "Right-click collection thumbnails to \n" -#~ "cut/copy to cache, paste cache, remove." -#~ msgstr "" -#~ "Cliquer droit sur les miniatures de la collection \n" -#~ "afin de couper/copier vers le cache, \n" -#~ "coller le cache, retirer." - -#~ msgid "Start a new collection" -#~ msgstr "Débuter une nouvelle collection" - -#~ msgid " BUSY %d%c " -#~ msgstr " OCCUPÉ %d%c " - -#~ msgid " BUSY " -#~ msgstr " OCCUPÉ" - -#~ msgid "angle" -#~ msgstr "angle" - -#~ msgid "cmsCreateTransform() failed" -#~ msgstr "Échec à la créationtransformation() cms" - -#~ msgid "Save to New File Name or Type" -#~ msgstr "Enregistrer sous un Nouveau Nom ou Type de Fichier" - -#~ msgid "no plugin command" -#~ msgstr "Aucune commande de greffon" - -#~ msgid "User Guide etc." -#~ msgstr "Manuel utilisateur etc." - -#~ msgid "Edit Caption/Comments" -#~ msgstr "Éditer légendes et commentaires" - -#~ msgid "Edit image caption or comment" -#~ msgstr "Éditer légende et commentaire de l'image" - -#~ msgid "Batch Tags" -#~ msgstr "Ajouter des balises par lots" - -#~ msgid "Gallery from Tab F" -#~ msgstr "Galerie à partir de la touche Tab F" - -#~ msgid "Save modified image to disk" -#~ msgstr "Enregistrer l'image modifiée sur le disque" - -#~ msgid "jump to first page" -#~ msgstr "Aller à la première page" - -#~ msgid "jump to last page" -#~ msgstr "Aller à la dernière page" - -#~ msgid "change sequence" -#~ msgstr "Changer la séquence" - -#~ msgid "Edit Caption and Comments" -#~ msgstr "Éditer légende et commentaires" - -#~ msgid "image date (yyyymmdd)" -#~ msgstr "Date (aaaa-mm-jj)" - -#~ msgid "use last" -#~ msgstr "Utiliser la dernière date" - -#~ msgid "image stars" -#~ msgstr "Évaluation de l'image" - -#~ msgid "there are zero stuck pixels" -#~ msgstr "Aucuns pixels bloqués" - -#~ msgid "Save Stuck Pixels" -#~ msgstr "Enregistrer les pixels bloqués" - -#~ msgid "Overwrite original file?" -#~ msgstr "Écraser le fichier original?" - -#~ msgid "Do not warn again" -#~ msgstr "Ne plus afficher l'avertissement" - -#~ msgid "Warning" -#~ msgstr "Avertissement" - -#~ msgid "Save File" -#~ msgstr "Enregistrer le fichier" - -#~ msgid "Save to Same File" -#~ msgstr "Enregistrer" - -#~ msgid "Save to the same file (replace)" -#~ msgstr "Enregistrer (remplacer)" - -#~ msgid "Save to New Version" -#~ msgstr "Enregistrer une nouvelle version" - -#~ msgid "Save to a new (next) version" -#~ msgstr "Enregistrer une nouvelle (prochaine) version" - -#~ msgid "Save to the same file" -#~ msgstr "Remplacer le fichier actuel" - -#~ msgid "Save+V" -#~ msgstr "Enreg.+V" - -#~ msgid "Save to a new file" -#~ msgstr "Enregistrer sous" - -#~ msgid "Save+F" -#~ msgstr "Enreg. sous" - -#~ msgid "contrast" -#~ msgstr "Contraste" - -#~ msgid "outlines" -#~ msgstr "Contours" - -#~ msgid "pencil" -#~ msgstr "Crayon" - -#~ msgid "chalk" -#~ msgstr "Craie" - -#~ msgid "Add Image Outlines" -#~ msgstr "Ajouter les contours de l'image" - -#~ msgid "rename to" -#~ msgstr "Renommer en" - -#~ msgid "filespec too long:" -#~ msgstr "Spécifications de fichiers trop longues" - -#~ msgid "create tag" -#~ msgstr "Créer une balise" - -#~ msgid "optional replacement" -#~ msgstr "Remplacement optionnel" - -#~ msgid "no tag specified" -#~ msgstr "Aucune balise spécifiée" - -#~ msgid "View Info" -#~ msgstr "Afficher les informations" - -#~ msgid "Edit Info" -#~ msgstr "Éditer les informations" - -#~ msgid "Delete Info" -#~ msgstr "Supprimer les informations" - -#~ msgid "Search Tags, Comments, File Names" -#~ msgstr "Rechercher les balises, commentaires et noms de fichiers" - -#~ msgid "file names" -#~ msgstr "Noms des fichiers" - -#~ msgid "No search index file present" -#~ msgstr "Aucun index de recherche présent" - -#~ msgid "bigger" -#~ msgstr "Agrandir" - -#~ msgid "smaller" -#~ msgstr "Réduire" - -#~ msgid "parent" -#~ msgstr "Parent" - -#~ msgid "first page" -#~ msgstr "Première page" - -#~ msgid "prev page" -#~ msgstr "Page précé." - -#~ msgid "prev row" -#~ msgstr "Rangée précé." - -#~ msgid "ttip::next page" -#~ msgstr "ttip::page suivante" - -#~ msgid "last page" -#~ msgstr "Dernière page" - -#~ msgid "close" -#~ msgstr "Fermer" - -#~ msgid "insert" -#~ msgstr "Insérer" - -#~ msgid "color saturation" -#~ msgstr "Saturation des couleurs" - -#~ msgid "" -#~ " Press the reduce button to \n" -#~ " reduce noise in small steps. \n" -#~ " Use undo to start over." -#~ msgstr "" -#~ " Appuyer sur le bouton [Réduire] pour \n" -#~ " atténuer le bruit par degrés. \n" -#~ " Utiliser [Annuler] pour recommencer." - -#~ msgid "top hat filter by color" -#~ msgstr "Filtre Top-Hat par couleur" - -#~ msgid "Edit Pixels" -#~ msgstr "Éditer les pixels" - -#~ msgid "pick" -#~ msgstr "Choisir" - -#~ msgid "erase" -#~ msgstr "Supprimer" - -#~ msgid "draw: freehand" -#~ msgstr "Dessiner à main levée" - -#~ msgid "match mouse color" -#~ msgstr "Couleur correspondante au pointeur" - -#~ msgid "cannot open .tiff and .info files" -#~ msgstr "Impossible d'ouvrir les fichiers .tiff et .info" - -#~ msgid "Select Whole Image" -#~ msgstr "Sélectionner l'image entière" - -#~ msgid "" -#~ "When editing a collection, right-click \n" -#~ "an image or thumbnail to add or remove." -#~ msgstr "" -#~ "Lors de l'édition d'une collection, clic droit \n" -#~ "sur une image ou une vignette pour ajouter ou supprimer" - -#~ msgid "Edit a collection" -#~ msgstr "Éditer une collection" - -#~ msgid "Editing:" -#~ msgstr "Édition:" - -#~ msgid "Action:" -#~ msgstr "Action:" - -#~ msgid "Edit Collection" -#~ msgstr "Éditer la collection" - -#~ msgid "View Collection" -#~ msgstr "Visualiser la collection" - -#~ msgid "add image to collection: %s" -#~ msgstr "Ajouter l'image à la collection: %s" - -#~ msgid "remove and save image" -#~ msgstr "retirer et enregistrer l'image" - -#~ msgid "insert saved images here" -#~ msgstr "Insérer les images enregistrées ici" - -#~ msgid "new max. width" -#~ msgstr "Nouvelle largeur max." - -#~ msgid "*** file type not supported" -#~ msgstr "*** type de fichier non pris en charge" - -#~ msgid "Program ufraw-batch is required" -#~ msgstr "Le logiciel « ufraw-batch » est requis." - -#~ msgid "Select RAW files to convert" -#~ msgstr "Sélectionner les fichiers RAW à convertir" - -#~ msgid "Choose file type" -#~ msgstr "Choisir le type de fichier" - -#~ msgid "Sync Files is already running" -#~ msgstr "Synchronisation des fichiers déjà en cours d'exécution" - -#~ msgid "" -#~ "Run Tools > Synchronize Files so that gallery windows \n" -#~ "will be fast and Search Images will work correctly. \n" -#~ "You can view (not edit) images while synchronize runs." -#~ msgstr "" -#~ "Menu Outils > Synchroniser les fichiers, de façon à ce que l'affichage " -#~ "des fenêtres \n" -#~ "de la galerie soit rapide et que la recherche des images fonctionne " -#~ "correctement.\n" -#~ "Il est possible de visualiser (pas d'éditer) les images durant la " -#~ "synchronisation." - -#~ msgid "max. height" -#~ msgstr "Hauteur max." - -#~ msgid "Monitor Check" -#~ msgstr "Contrôle d'écran" - -#~ msgid "Undo Trim" -#~ msgstr "Annuler Rogner" - -#~ msgid "degrees: %.1f" -#~ msgstr "Degrés:  %.1f" - -#~ msgid "gold" -#~ msgstr "Or" - -#~ msgid "Trim Image" -#~ msgstr "Rogner l'image" - -#~ msgid "invert" -#~ msgstr "inverser" - -#~ msgid "Annotate Image" -#~ msgstr "Annoter l'image" - -#~ msgid "" -#~ "Outline\n" -#~ " Width" -#~ msgstr "Épaisseur du contour" - -#~ msgid "Annotation File:" -#~ msgstr "Fichier d'annotation:" - -#~ msgid "Flip Image" -#~ msgstr "Miroir" - -#~ msgid "Clone 50/50" -#~ msgstr "Dupliquer 50/50" - -#~ msgid "Clone Overlay" -#~ msgstr "Dupliquer superposition" - -#~ msgid "Batch Rename Files" -#~ msgstr "Renommer des fichiers par lot" - -#~ msgid "Check Monitor" -#~ msgstr "Vérifier l'écran" - -#~ msgid "Memory Usage" -#~ msgstr "Utilisation mémoire" - -#~ msgid "Select and Edit" -#~ msgstr "Sélectionner et Éditer" - -#~ msgid "Transform" -#~ msgstr "Transformer" - -#~ msgid "Blur Image" -#~ msgstr "Flou" - -#~ msgid "Art" -#~ msgstr "Effets" - -#~ msgid "Outlines" -#~ msgstr "Contours" - -#~ msgid "Zoom-in (bigger)" -#~ msgstr "Zoom-avant (agrandir)" - -#~ msgid "Zoom-out (smaller)" -#~ msgstr "Zoom-arrière (réduire)" - -#~ msgid "Quit" -#~ msgstr "Quitter" - -#~ msgid "Fotoxx Essentials" -#~ msgstr "Principes de Fotoxx" - -#~ msgid "first time startup" -#~ msgstr "Premier démarrage" - -#~ msgid "cannot parallel edit" -#~ msgstr "Édition en parallèle impossible" - -#~ msgid "" -#~ "exiftool is not installed \n" -#~ "edited images will lose EXIF data" -#~ msgstr "" -#~ "Le paquet exiftool n'est pas installé \n" -#~ "Les images modifiées perdront leurs données Exif" - -#~ msgid "" -#~ "This action will discard current edits.\n" -#~ "Continue to discard edits.\n" -#~ "Go Back to keep edits." -#~ msgstr "" -#~ "Cette action va annuler les opérations actuelles.\n" -#~ "[Continuer] pour annuler les opérations.\n" -#~ "[Retour] pour les conserver." - -#~ msgid "Continue" -#~ msgstr "Continuer" - -#~ msgid "Go Back" -#~ msgstr "Retour" - -#~ msgid "TIFF open failure" -#~ msgstr "Erreur à l'ouverture du fichier TIFF" - -#~ msgid "TIFF bits/color=%d not supported" -#~ msgstr "TIFF bits/color=%d non pris en charge" - -#~ msgid "TIFF read failure" -#~ msgstr "Erreur de lecture du fichier TIFF" - -#~ msgid "TIFF write failure" -#~ msgstr "Erreur d'écriture du fichier TIFF" - -#~ msgid "pixbuf write failure" -#~ msgstr "Erreur d'écriture du pixbuf" - -#~ msgid "absolute" -#~ msgstr "absolu" - -#~ msgid "Commit" -#~ msgstr "Engager" - -#~ msgid "" -#~ "Discard special gallery list? \n" -#~ " %s" -#~ msgstr "" -#~ "Passer la liste de la Galerie? \n" -#~ " %s" - -#~ msgid "package libimage-exiftool-perl is required" -#~ msgstr "Le paquet libimage-exiftool-perl est requis" - -#~ msgid "Brightness Graph" -#~ msgstr "Diagramme de luminosité" - -#~ msgid "radius" -#~ msgstr "Radius" - -#~ msgid "match" -#~ msgstr "Correspondance" - -#~ msgid "Search results file error %s" -#~ msgstr "Erreur de fichier des résultats recherchés %s" - -#~ msgid "Batch Resize" -#~ msgstr "Redimensionner par lot" - -#~ msgid "new max. height" -#~ msgstr "Nouvelle hauteur max." - -#~ msgid "copy EXIF" -#~ msgstr "Copier les données EXIF" - -#~ msgid "new file already exists" -#~ msgstr "Un nouveau fichier existe toujours" - -#~ msgid "Translate" -#~ msgstr "Traduire" - -#~ msgid "full rebuild" -#~ msgstr "Reconstruction complète" - -#~ msgid "incremental" -#~ msgstr "Incrémental" - -#~ msgid "" -#~ "Rename failed \n" -#~ " %s" -#~ msgstr "" -#~ "Le renommage a échoué \n" -#~ " %s" - -#~ msgid "Discard modifications?" -#~ msgstr "Annuler les modifications ?" - -#~ msgid "new tags index will now be created" -#~ msgstr "" -#~ "Le nouveau fichier d'indexation des étiquettes \n" -#~ "va maintenant être créé." - -#~ msgid "" -#~ "New tags file already exists! \n" -#~ "Proceed anyway?" -#~ msgstr "" -#~ "Le fichier des nouvelles étiquettes existe toujours ! \n" -#~ "Voulez vous continuer le processus ?" - -#~ msgid "" -#~ "Convert tags to new standard now? \n" -#~ "Are your image files backed-up?" -#~ msgstr "" -#~ "Convertir maintenant les étiquettes vers le nouveau standard ? \n" -#~ "Vos images sont-elles sauvegardées ?" - -#~ msgid "Convert tags to new standard" -#~ msgstr "Convertir les étiquettes vers le nouveau standard" - -#~ msgid "Convert Tags !!!" -#~ msgstr "Convertir les étiquettes !!!" - -#~ msgid "save select area as a file" -#~ msgstr "Enregistrer la zone sélectionnée en tant que fichier" - -#~ msgid "manage tags" -#~ msgstr "Gérer les étiquettes" - -#~ msgid "brightness to clip (percent)" -#~ msgstr "Luminosité à remplir (pourcentage)" - -#~ msgid "Use F1 for context help" -#~ msgstr "Utiliser F1 pour l'aide contextuel" - -#~ msgid "Stack" -#~ msgstr "Empiler" - -#~ msgid "No tags index file" -#~ msgstr "Le fichier d'indexation des étiquettes n'existe pas." - -#~ msgid "HDR" -#~ msgstr "HDR" - -#~ msgid "HDF" -#~ msgstr "HDF" - -#~ msgid "Constrain" -#~ msgstr "Contraindre" - -#~ msgid "target group area" -#~ msgstr "Zone du groupe cible" - -#~ msgid "vertical unbend" -#~ msgstr "Axe vertical" - -#~ msgid "select by mouse:" -#~ msgstr "Sélection avec la souris : " - -#~ msgid "select by color:" -#~ msgstr "Sélection par couleurs : " - -#~ msgid "press ESC to exit" -#~ msgstr "Appuyer sur « Échap » pour quitter" - -#~ msgid "horizontal unbend" -#~ msgstr "Axe horizontal" - -#~ msgid "Rebuild Thumbnails" -#~ msgstr "Reconstruire les vignettes" - -#~ msgid "area outline has a hole" -#~ msgstr "Le contour de la zone a un trou" - -#~ msgid "Create Launcher" -#~ msgstr "Créer un lanceur" - -#~ msgid "click on window to show RGB" -#~ msgstr "Cliquez sur la fenêtre pour afficher les couleurs RVB" - -#~ msgid "Save As" -#~ msgstr "Enreg. sous" - -#~ msgid "Clone fotoxx" -#~ msgstr "Cloner Fotoxx" - -#~ msgid "random" -#~ msgstr "Aléatoire" - -#~ msgid "Whole Image" -#~ msgstr "Toute l'image" - -#~ msgid "Time Interval" -#~ msgstr "Intervalle de temps" - -#~ msgid "print" -#~ msgstr "Imprimer" - -#~ msgid "printer ID" -#~ msgstr "ID de l'imprimante" - -#~ msgid "paper format" -#~ msgstr "Format de papier" - -#~ msgid "paper format is crazy" -#~ msgstr "Format de papier erroné" - -#~ msgid "open a file" -#~ msgstr "Ouvrir un fichier" - -#~ msgid "select new folder" -#~ msgstr "Sélectionner un nouveau dossier" - -#~ msgid "folder" -#~ msgstr "Dossier" - -#~ msgid "my mouse" -#~ msgstr "Ma souris" - -#~ msgid "Lens Parameters" -#~ msgstr "Configuration de l'objectif" - -#~ msgid "Edit. plugins" -#~ msgstr "Edition des greffons" - -#~ msgid "Lighter Areas" -#~ msgstr "Zones plus claires" - -#~ msgid "Darker Areas" -#~ msgstr "Zones plus sombres" - -#~ msgid "working" -#~ msgstr "Tâche en cours" - -#~ msgid "replace original files? (max. %d x %d)" -#~ msgstr "Remplacer les fichiers originaux? (max. %d x %d)" - -#~ msgid "replace original files?" -#~ msgstr "Remplacer les fichiers originaux" - -#~ msgid "delete originals" -#~ msgstr "Supprimer les originaux" - -#~ msgid "remove EXIF" -#~ msgstr "Retirer EXIF" - -#~ msgid "replace originals" -#~ msgstr "Remplacer les originaux" - -#~ msgid "same" -#~ msgstr "Identique" - -#~ msgid "save as collection" -#~ msgstr "Enregistrer comme collection" - -#~ msgid "collection:" -#~ msgstr "Collection:" - -#~ msgid "start with current image" -#~ msgstr "Démarrer avec l'image actuelle" - -#~ msgid "continuous loop" -#~ msgstr "En boucle" - -#~ msgid "latest versions only" -#~ msgstr "Dernières versions uniquement" - -#~ msgid "Batch Convert/Resize/Move" -#~ msgstr "Convertir/Redimensionner/Déplacer par lots" - -#~ msgid "Edge Blend Width" -#~ msgstr "Dosage du Mélange des Bords" - -#~ msgid "" -#~ "overlay image file error: \n" -#~ " %s" -#~ msgstr "" -#~ "Erreur de fichier image de superposition: \n" -#~ " %s" - -#~ msgid "" -#~ "layout image file error: \n" -#~ " %s" -#~ msgstr "" -#~ "Erreur de fichier image de disposition: \n" -#~ " %s" - -#~ msgid "Blend Width for edits in area" -#~ msgstr "Dosage du mélange pour le travail dans la zone" - -#~ msgid "Blue: Red" -#~ msgstr "Bleu: Rouge" - -#~ msgid "Green: Blue" -#~ msgstr "Vert: Bleu" - -#~ msgid "Red: Green" -#~ msgstr "Rouge: Vert" - -#~ msgid "search index file missing" -#~ msgstr "Fichier d'index manquant" - -#~ msgid "Discard edits?" -#~ msgstr "Abandonner les modifications?" - -#~ msgid "prior function still active" -#~ msgstr "Fonction antérieure encore active" - -#~ msgid "completed" -#~ msgstr "Complété" - -#~ msgid "new top directory" -#~ msgstr "Nouveau répertoire racine" - -#~ msgid "old top directory" -#~ msgstr "Ancien répertoire racine" - -#~ msgid "geotags file must be downloaded" -#~ msgstr "Les balises de géolocalisation doivent être téléchargées" - -#~ msgid "CMYK Density" -#~ msgstr "Densité CMYK" - -#~ msgid "Newly Added Images" -#~ msgstr "Dernières images ajoutées" - -#~ msgid "Plugins menu is empty" -#~ msgstr "Le menu des greffons est vide" - -#~ msgid "menu name" -#~ msgstr "nom du menu" - -#~ msgid "False Colors" -#~ msgstr "Couleurs fausses" - -#~ msgid "+Brightness -Density" -#~ msgstr "+Luminosité -Densité" - -#~ msgid "" -#~ "warning: real memory %d MB < required %d MB \n" -#~ "response time may become very long \n" -#~ msgstr "" -#~ "Attention: La mémoire réelle de %d Mo < aux %d Mo requis \n" -#~ "Le temps de réponse risque d'être long \n" - -#~ msgid "location is not a valid directory" -#~ msgstr "L'emplacement n'est pas un répertoire correct" - -#~ msgid "shift-left" -#~ msgstr "Touche majuscule gauche" - -#~ msgid "(enter keys)" -#~ msgstr "(saisir les touches)" - -#~ msgid "Previous Image Viewed" -#~ msgstr "Image précédemment visionnée" - -#~ msgid "maximum" -#~ msgstr "maximum" - -#~ msgid "minimum" -#~ msgstr "minimum" - -#~ msgid "Edit Function Amplifier" -#~ msgstr "Éditer l'Amplificateur de Fonction" - -#~ msgid "delete" -#~ msgstr "Supprimer" - -#~ msgid "create" -#~ msgstr "Créer" - -#~ msgid "Leverage edits by brightness or color" -#~ msgstr "Opérations à effet de levier par luminosité ou couleur" - -#~ msgid "Leverage Edits" -#~ msgstr "Opérations à effets de Levier" - -#~ msgid "Edit translations while using Fotoxx" -#~ msgstr "Éditer les traductions lors de l'utilisation de Fotoxx" +#~ msgid "Pattern size" +#~ msgstr "Taille du motif" -#~ msgid "Edit Translations" -#~ msgstr "Éditer les Traductions" +#~ msgid "Add pattern" +#~ msgstr "Ajouter motif" -#~ msgid "Favorites Menu" -#~ msgstr "Menu des Favoris" +#~ msgid "Transition:" +#~ msgstr "Transition:" diff -Nru fotoxx-14.03/locales/translate-it.po fotoxx-14.04/locales/translate-it.po --- fotoxx-14.03/locales/translate-it.po 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/locales/translate-it.po 2014-04-01 06:09:31.000000000 +0000 @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: fotoxx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-01 08:51+0100\n" +"POT-Creation-Date: 2014-04-01 08:04+0200\n" "PO-Revision-Date: 2010-06-03 16:14+0100\n" "Language-Team: italiano \n" "Language: \n" @@ -24,7 +24,7 @@ msgid "Select Area for Edits" msgstr "Seleziona area per modifiche" -#: f.area.cc:57 f.retouch.cc:2051 +#: f.area.cc:57 f.retouch.cc:2160 msgid "Press F1 for help" msgstr "Premi F1 per l'aiuto" @@ -68,7 +68,7 @@ msgid "select all matching colors within mouse" msgstr "Seleziona tutti i colori entro il mouse" -#: f.area.cc:115 f.retouch.cc:2086 +#: f.area.cc:115 f.retouch.cc:2195 msgid "mouse radius" msgstr "Raggio del mouse:" @@ -160,7 +160,7 @@ msgid "save select area to a file" msgstr "salva area in un file" -#: f.bend.cc:72 f.menus.cc:246 +#: f.bend.cc:72 f.menus.cc:208 msgid "Unbend" msgstr "Correggi deformazioni" @@ -188,7 +188,7 @@ " Clicca gli angoli di un'area trapezoidale; poi clicca [Applica]. \n" " L'immagine si deformerà per trasformare il trapezio in un rettangolo." -#: f.bend.cc:353 f.menus.cc:247 +#: f.bend.cc:353 f.menus.cc:209 msgid "Keystone Correction" msgstr "Correzione quadrangolare" @@ -238,7 +238,7 @@ "Trascina più volte se necessario.\n" "Quando terminato, seleziona un'altra zona o premi [Fatto]. " -#: f.bend.cc:1105 f.menus.cc:249 +#: f.bend.cc:1105 f.menus.cc:211 msgid "Warp area" msgstr "Deforma area" @@ -260,7 +260,7 @@ " Esegui diversi trascinamenti fino al completamento. \n" " Quando finito, premi [Fatto]." -#: f.bend.cc:1520 f.menus.cc:250 +#: f.bend.cc:1520 f.menus.cc:212 msgid "Warp curved" msgstr "Deforma a curva" @@ -268,7 +268,7 @@ msgid "warp span" msgstr "Dimensione deformazione: " -#: f.bend.cc:1830 f.menus.cc:251 +#: f.bend.cc:1830 f.menus.cc:213 msgid "Warp linear" msgstr "Deforma a linea" @@ -282,15 +282,15 @@ "Ripeti l'operazione se richiesto.\n" "Una volta finito, premi [Fatto]." -#: f.bend.cc:2161 f.menus.cc:252 +#: f.bend.cc:2161 f.menus.cc:214 msgid "Warp affine" msgstr "Deforma specularmente" -#: f.color.cc:64 f.menus.cc:239 +#: f.color.cc:64 f.menus.cc:201 msgid "Shift Colors" msgstr "Modula componenti" -#: f.color.cc:285 f.menus.cc:240 +#: f.color.cc:285 f.menus.cc:202 msgid "Color Mode" msgstr "Modo di colore" @@ -343,8 +343,8 @@ msgid "mouse radius for color sample" msgstr "Raggio di prelievo del colore" -#: f.color.cc:609 f.color.cc:614 f.file.cc:4220 f.menus.cc:208 f.menus.cc:297 -#: f.menus.cc:433 fotoxx.h:1039 +#: f.color.cc:609 f.color.cc:614 f.file.cc:4222 f.menus.cc:172 f.menus.cc:255 +#: f.menus.cc:349 fotoxx.h:1044 msgid "Open" msgstr "Apri" @@ -368,11 +368,11 @@ msgid "select source image color first" msgstr "Seleziona prima l'immagine di riferimento" -#: f.color.cc:872 f.tools.cc:5665 +#: f.color.cc:872 f.tools.cc:5973 msgid "Click image to select pixels." msgstr "Clicca l'immagine per selezionare i pixel" -#: f.color.cc:911 f.menus.cc:243 +#: f.color.cc:911 f.menus.cc:205 msgid "Revise RGB" msgstr "Edita RGB" @@ -400,15 +400,15 @@ msgid "+Blue -Yellow" msgstr "+Blu -Giallo" -#: f.color.cc:1382 fotoxx.h:1050 +#: f.color.cc:1382 fotoxx.h:1055 msgid "Red" msgstr "Rosso" -#: f.color.cc:1383 fotoxx.h:1018 +#: f.color.cc:1383 fotoxx.h:1023 msgid "Green" msgstr "Verde" -#: f.color.cc:1384 fotoxx.h:992 +#: f.color.cc:1384 fotoxx.h:997 msgid "Blue" msgstr "Blu" @@ -441,7 +441,7 @@ msgstr "Dipingi e deforma immagine" #: f.combine.cc:2831 f.combine.cc:3485 f.combine.cc:4902 f.combine.cc:5801 -#: f.effects.cc:3478 f.menus.cc:60 f.menus.cc:121 +#: f.effects.cc:3546 f.menus.cc:87 msgid "Image" msgstr "Immagine" @@ -509,7 +509,7 @@ msgid "no curve (scanned image)" msgstr "nessuna curva (immagine scansionata)" -#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:214 f.menus.cc:473 +#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:178 f.menus.cc:386 msgid "Resize" msgstr "Ridimensiona" @@ -673,7 +673,7 @@ msgid "Gradual" msgstr "" -#: f.combine.cc:6842 fotoxx.h:1044 +#: f.combine.cc:6842 fotoxx.h:1049 msgid "Power" msgstr "Forza" @@ -686,7 +686,7 @@ msgid "Enter text, click/drag on image." msgstr "Immetti il testo, clicca o trascina sull'immagine" -#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:850 +#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:844 msgid "Text" msgstr "Testo" @@ -706,8 +706,8 @@ msgid "shadow" msgstr "Ombra" -#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:63 f.menus.cc:124 -#: f.menus.cc:292 fotoxx.h:999 +#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:90 f.menus.cc:251 +#: fotoxx.h:1004 msgid "Color" msgstr "Colore" @@ -715,7 +715,7 @@ msgid "Transparency" msgstr "Trasparenza:" -#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1078 +#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1084 msgid "Width" msgstr "Larghezza" @@ -760,7 +760,7 @@ msgid "black/white" msgstr "Bianco e nero" -#: f.effects.cc:989 f.menus.cc:257 +#: f.effects.cc:989 f.menus.cc:219 msgid "Graduated Blur" msgstr "Sfumatura graduale" @@ -828,7 +828,7 @@ msgid "borders" msgstr "Contorni" -#: f.effects.cc:2474 f.menus.cc:262 +#: f.effects.cc:2474 f.menus.cc:224 msgid "Vignette" msgstr "Effetto vignetta" @@ -836,48 +836,64 @@ msgid "Add Texture" msgstr "" -#: f.effects.cc:3040 -msgid "Add pattern" +#: f.effects.cc:3043 +msgid "Background Pattern" msgstr "" -#: f.effects.cc:3044 f.menus.cc:264 -msgid "Pattern" +#: f.effects.cc:3047 +msgid "Pattern File:" +msgstr "" + +#: f.effects.cc:3052 +msgid "Geometry" +msgstr "" + +#: f.effects.cc:3053 +msgid "Calculate" +msgstr "" + +#: f.effects.cc:3055 +msgid "Zoom" msgstr "" -#: f.effects.cc:3051 -msgid "Pattern size" +#: f.effects.cc:3066 f.menus.cc:226 +msgid "Pattern" msgstr "" -#: f.effects.cc:3062 f.effects.cc:3066 +#: f.effects.cc:3073 msgid "Overlap" msgstr "" -#: f.effects.cc:3107 +#: f.effects.cc:3080 +msgid "Opacity" +msgstr "" + +#: f.effects.cc:3116 msgid "choose pattern tile" msgstr "" -#: f.effects.cc:3382 +#: f.effects.cc:3450 msgid "Create Mosaic" msgstr "" -#: f.effects.cc:3468 +#: f.effects.cc:3536 msgid "Tile" msgstr "" -#: f.effects.cc:3476 f.menus.cc:259 +#: f.effects.cc:3544 f.menus.cc:221 msgid "Tiles" msgstr "Mosaico" -#: f.effects.cc:3482 +#: f.effects.cc:3550 msgid "Tile blending" msgstr "" -#: f.effects.cc:3560 +#: f.effects.cc:3628 #, c-format msgid "exceeded max. tiles: %d" msgstr "" -#: f.effects.cc:3575 +#: f.effects.cc:3643 #, c-format msgid "only %d tile images found" msgstr "" @@ -890,7 +906,7 @@ msgid "no more images" msgstr "fine delle immagini" -#: f.file.cc:330 f.menus.cc:153 f.menus.cc:482 +#: f.file.cc:330 f.menus.cc:118 f.menus.cc:395 msgid "Open RAW file (ufraw)" msgstr "Apri file RAW (ufraw)" @@ -947,7 +963,7 @@ "Sovrascrivere il file? \n" " %s" -#: f.file.cc:836 f.menus.cc:155 +#: f.file.cc:836 f.menus.cc:120 msgid "Rename Image File" msgstr "Rinomina immagine" @@ -955,7 +971,7 @@ msgid "Old Name" msgstr "Vecchio nome" -#: f.file.cc:844 f.tools.cc:4504 +#: f.file.cc:844 f.tools.cc:4803 msgid "New Name" msgstr "Nuovo nome" @@ -1003,7 +1019,7 @@ msgid "new location" msgstr "nuova destinazione" -#: f.file.cc:1233 f.tools.cc:4809 +#: f.file.cc:1233 f.tools.cc:5108 msgid "Select directory" msgstr "Seleziona cartella" @@ -1028,7 +1044,7 @@ msgid "(automatic step to next image)" msgstr "(avanzamento automatico alla prossima foto)" -#: f.file.cc:1457 f.menus.cc:157 +#: f.file.cc:1457 f.menus.cc:122 msgid "Trash Image File" msgstr "Cestina l'immagine" @@ -1074,7 +1090,7 @@ " %s" msgstr "" -#: f.file.cc:2191 f.menus.cc:149 +#: f.file.cc:2191 f.menus.cc:114 msgid "Open Image File" msgstr "Apri immagine" @@ -1096,103 +1112,107 @@ msgid "file type not supported: %s" msgstr "tipo di file non supportato: %s" -#: f.file.cc:4209 f.menus.cc:296 f.menus.cc:432 +#: f.file.cc:4209 f.file.cc:4291 f.menus.cc:360 f.tools.cc:851 +msgid "Scroll" +msgstr "Scorri" + +#: f.file.cc:4211 f.menus.cc:254 f.menus.cc:348 msgid "Sync.G" msgstr "SincG" -#: f.file.cc:4221 +#: f.file.cc:4223 msgid "change directory" msgstr "cambia cartella" -#: f.file.cc:4229 f.menus.cc:434 +#: f.file.cc:4231 f.menus.cc:350 msgid "GoTo" msgstr "Vai a..." -#: f.file.cc:4234 f.menus.cc:437 +#: f.file.cc:4236 f.menus.cc:353 msgid "Sort" msgstr "Riordina" -#: f.file.cc:4241 f.file.cc:4665 f.file.cc:4666 f.file.cc:4668 f.menus.cc:435 +#: f.file.cc:4243 f.file.cc:4657 f.file.cc:4658 f.file.cc:4660 f.menus.cc:351 msgid "Zoom+" msgstr "Zoom+" -#: f.file.cc:4252 f.file.cc:4667 f.file.cc:4669 f.menus.cc:436 +#: f.file.cc:4254 f.file.cc:4659 f.file.cc:4661 f.menus.cc:352 msgid "Zoom-" msgstr "Zoom-" -#: f.file.cc:4265 f.file.cc:4673 f.menus.cc:442 +#: f.file.cc:4267 f.file.cc:4665 f.menus.cc:358 msgid "Row↑" msgstr "Riga↑" -#: f.file.cc:4277 f.file.cc:4674 f.menus.cc:443 +#: f.file.cc:4279 f.file.cc:4666 f.menus.cc:359 msgid "Row↓" msgstr "Riga↓" -#: f.file.cc:4289 f.file.cc:4676 f.menus.cc:438 +#: f.file.cc:4309 f.file.cc:4668 f.menus.cc:354 msgid "First" msgstr "Prima" -#: f.file.cc:4290 f.file.cc:4677 f.menus.cc:439 +#: f.file.cc:4310 f.file.cc:4669 f.menus.cc:355 msgid "Last" msgstr "Ultima" -#: f.file.cc:4291 f.file.cc:4671 f.file.cc:4678 f.menus.cc:440 +#: f.file.cc:4311 f.file.cc:4663 f.file.cc:4670 f.menus.cc:356 msgid "Page↑" msgstr "Pagina↑" -#: f.file.cc:4292 f.file.cc:4672 f.file.cc:4679 f.menus.cc:441 +#: f.file.cc:4312 f.file.cc:4664 f.file.cc:4671 f.menus.cc:357 msgid "Page↓" msgstr "Pagina↓" -#: f.file.cc:4342 +#: f.file.cc:4366 msgid "Choose image directory" msgstr "" -#: f.file.cc:4348 f.file.cc:4363 +#: f.file.cc:4372 f.file.cc:4387 msgid "recent" msgstr "recente" -#: f.file.cc:4349 f.file.cc:4368 +#: f.file.cc:4373 f.file.cc:4392 msgid "newest" msgstr "più nuovo" -#: f.file.cc:4350 f.file.cc:4377 +#: f.file.cc:4374 f.file.cc:4401 msgid "collections" msgstr "collezioni" -#: f.file.cc:4423 f.tools.cc:2476 +#: f.file.cc:4449 f.tools.cc:2451 msgid "no collections found" msgstr "nessuna collezione trovata" -#: f.file.cc:4430 +#: f.file.cc:4456 msgid "Choose collection" msgstr "Scegli la collezione" -#: f.file.cc:4475 +#: f.file.cc:4503 msgid "Gallery Sort" msgstr "Riordina galleria" -#: f.file.cc:4479 +#: f.file.cc:4507 msgid "File Name" msgstr "Nome file" -#: f.file.cc:4480 +#: f.file.cc:4508 msgid "File Mod Date/Time" msgstr "Data di modifica file" -#: f.file.cc:4481 +#: f.file.cc:4509 msgid "Photo Date/Time (EXIF)" msgstr "Data della foto (EXIF)" -#: f.file.cc:4483 +#: f.file.cc:4511 msgid "ascending" msgstr "ascendente" -#: f.file.cc:4484 +#: f.file.cc:4512 msgid "descending" msgstr "discendente" -#: f.file.cc:5542 fotoxx.h:1061 +#: f.file.cc:5534 fotoxx.h:1067 msgid "Select Files" msgstr "Seleziona i file" @@ -1217,7 +1237,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Rotazione precisa: trascina il lato destro" -#: f.image.cc:302 f.menus.cc:212 f.menus.cc:472 +#: f.image.cc:302 f.menus.cc:176 f.menus.cc:385 msgid "Trim/Rotate" msgstr "Ritaglia/Ruota" @@ -1233,7 +1253,7 @@ msgid "Lock Ratio" msgstr "Blocca proporzioni" -#: f.image.cc:326 f.tools.cc:2793 +#: f.image.cc:326 msgid "Customize" msgstr "Personalizza" @@ -1269,7 +1289,7 @@ msgid "Resize Image" msgstr "Ridimensiona" -#: f.image.cc:1650 f.menus.cc:215 +#: f.image.cc:1650 f.menus.cc:179 msgid "Flip" msgstr "Rifletti/specchia" @@ -1310,1124 +1330,1129 @@ msgid "plugin failed" msgstr "plugin non trovato" -#: f.menus.cc:56 f.menus.cc:117 -msgid "File" -msgstr "File" - -#: f.menus.cc:57 f.menus.cc:118 -msgid "Tools" -msgstr "Strumenti" - -#: f.menus.cc:58 f.menus.cc:119 f.menus.cc:462 -msgid "Metadata" -msgstr "Metadati" - -#: f.menus.cc:59 f.menus.cc:120 -msgid "Areas" -msgstr "Aree" - -#: f.menus.cc:61 f.menus.cc:122 -msgid "Retouch" -msgstr "Ritocco" - -#: f.menus.cc:62 f.menus.cc:123 -msgid "Repair" -msgstr "Correggi" - -#: f.menus.cc:64 f.menus.cc:125 -msgid "Bend" -msgstr "Deforma" - -#: f.menus.cc:65 f.menus.cc:126 -msgid "Effects" -msgstr "Effetti" - -#: f.menus.cc:66 f.menus.cc:127 -msgid "Combine" -msgstr "Combina" - -#: f.menus.cc:67 f.menus.cc:128 -msgid "Plugins" -msgstr "Plugin" - -#: f.menus.cc:68 f.menus.cc:129 fotoxx-14.03.cc:3811 fotoxx.h:1021 -msgid "Help" -msgstr "Aiuto" - -#: f.menus.cc:101 f.menus.cc:290 fotoxx-14.03.cc:3751 +#: f.menus.cc:67 fotoxx-14.04.cc:3775 msgid "Favorite Functions" msgstr "" -#: f.menus.cc:102 +#: f.menus.cc:68 msgid "Open, Save, Trash, Rename, Print" msgstr "Apri, Salva, Cestina, Rinomina, Stampa" -#: f.menus.cc:103 +#: f.menus.cc:69 msgid "Index Files, Settings, Collections, Batch Funcs ..." msgstr "" -#: f.menus.cc:104 +#: f.menus.cc:70 msgid "Captions, Tags, Ratings, Geotags, Search ... " msgstr "Titoli, etichette, voti, Geotags, Ricerca..." -#: f.menus.cc:105 +#: f.menus.cc:71 msgid "Select image areas to edit, copy and paste" msgstr "Seleziona aree da manipolare, copiare e incollare" -#: f.menus.cc:106 +#: f.menus.cc:72 msgid "Trim/Crop, Rotate, Resize, Add Text" msgstr "Ritaglia, Ruota, Ridimensiona, Aggiungi testi" -#: f.menus.cc:107 +#: f.menus.cc:73 msgid "Improve brightness, contrast, color ..." msgstr "Migliora luminosità, contrasto, colore..." -#: f.menus.cc:108 +#: f.menus.cc:74 msgid "Sharpen, Clean, Red-eyes, Paint, Clone ..." msgstr "Contrasta, Ripulisci, occhi rossi, Dipingi, Clona..." -#: f.menus.cc:109 +#: f.menus.cc:75 msgid "White Balance, Color Profile, Color Matching" msgstr "Bilanciamento del bianco, Profilo di colore, Allinea colore" -#: f.menus.cc:110 +#: f.menus.cc:76 msgid "Fix Perspective, Bend/Warp image ..." msgstr "Corregge prospettiva, Deforma immagine..." -#: f.menus.cc:111 +#: f.menus.cc:77 msgid "Special Effects, Arty Transforms" msgstr "Effetti speciali, Trasformazioni artistiche" -#: f.menus.cc:112 +#: f.menus.cc:78 msgid "HDR, HDF, Panorama, Stack, Mashup" msgstr "HDR, HDF, Panorama, Pila, Collage" -#: f.menus.cc:113 +#: f.menus.cc:79 msgid "Use other image editors within Fotoxx" msgstr "Usare altri programmi di ritocco dentro a Fotoxx" -#: f.menus.cc:114 +#: f.menus.cc:80 msgid "Quick Start, User Guide, Recent Changes ..." msgstr "Guida rapida, Guida utente, Cronistoria modifiche..." -#: f.menus.cc:148 +#: f.menus.cc:83 +msgid "File" +msgstr "File" + +#: f.menus.cc:84 +msgid "Tools" +msgstr "Strumenti" + +#: f.menus.cc:85 f.menus.cc:375 +msgid "Metadata" +msgstr "Metadati" + +#: f.menus.cc:86 +msgid "Areas" +msgstr "Aree" + +#: f.menus.cc:88 +msgid "Retouch" +msgstr "Ritocco" + +#: f.menus.cc:89 +msgid "Repair" +msgstr "Correggi" + +#: f.menus.cc:91 +msgid "Bend" +msgstr "Deforma" + +#: f.menus.cc:92 +msgid "Effects" +msgstr "Effetti" + +#: f.menus.cc:93 +msgid "Combine" +msgstr "Combina" + +#: f.menus.cc:94 +msgid "Plugins" +msgstr "Plugin" + +#: f.menus.cc:95 fotoxx-14.04.cc:3835 fotoxx.h:1026 +msgid "Help" +msgstr "Aiuto" + +#: f.menus.cc:113 msgid "New Window" msgstr "Nuova finestra" -#: f.menus.cc:148 +#: f.menus.cc:113 msgid "Open another window" msgstr "Apri altra finestra" -#: f.menus.cc:149 f.menus.cc:297 +#: f.menus.cc:114 f.menus.cc:255 msgid "Open a new image file" msgstr "Apri un ulteriore file" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open Previous File" msgstr "Apri l'immagine precedente" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open the previously seen file" msgstr "Apri il file precedente" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Open a recently seen file" msgstr "Apri un file recente" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Recently Seen Images" msgstr "Immagini viste di recente" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Newest Images" msgstr "Immagini più nuove" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Open a newly added file" msgstr "Apri una immagine aggiunta" -#: f.menus.cc:153 +#: f.menus.cc:118 msgid "Open and edit a camera RAW file" msgstr "Apri un file RAW" -#: f.menus.cc:154 f.menus.cc:300 +#: f.menus.cc:119 f.menus.cc:258 msgid "Save modified image file to disk" msgstr "Salva su disco l'immagine modificata" -#: f.menus.cc:154 +#: f.menus.cc:119 msgid "Save to Disk" msgstr "Salva su disco" -#: f.menus.cc:155 +#: f.menus.cc:120 msgid "Change the image file name" msgstr "Rinomina il file" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "Create a blank image" msgstr "Crea immagine nuova" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "New Blank Image" msgstr "Nuova immagine" -#: f.menus.cc:157 f.menus.cc:301 +#: f.menus.cc:122 f.menus.cc:259 msgid "Move image file to Trash" msgstr "Sposta il file nel cestino" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print Image" msgstr "Stampa immagine" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print the current image" msgstr "Stampa l'immagine corrente" -#: f.menus.cc:159 +#: f.menus.cc:124 msgid "Quit Fotoxx" msgstr "Esci da Fotoxx" -#: f.menus.cc:161 f.tools.cc:92 f.tools.cc:339 +#: f.menus.cc:126 f.tools.cc:92 f.tools.cc:339 msgid "Index Image Files" msgstr "" -#: f.menus.cc:161 +#: f.menus.cc:126 msgid "Index new files and make thumbnails" msgstr "Aggiorna indici e miniature di nuovi file" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "Change user preferences" msgstr "Modifica le preferenze" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "User Settings" msgstr "Preferenze utente" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Change Keyboard Shortcut Keys" msgstr "Modifica le scorciatoie da tastiera" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Keyboard Shortcuts" msgstr "Scorciatoie di tastiera" -#: f.menus.cc:164 f.tools.cc:1943 +#: f.menus.cc:129 f.tools.cc:1918 msgid "Manage Collections" msgstr "Gestione collezioni" -#: f.menus.cc:164 +#: f.menus.cc:129 msgid "Organize images into collections" msgstr "Organizza immagini in collezioni" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Convert for a new top directory" msgstr "Passaggio a una nuova cartella radice" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Move Collections" msgstr "Sposta collezioni" -#: f.menus.cc:166 f.tools.cc:2777 f.tools.cc:2780 +#: f.menus.cc:131 f.tools.cc:2728 msgid "Slide Show" msgstr "Slideshow" -#: f.menus.cc:166 +#: f.menus.cc:131 msgid "Start a slide show" msgstr "Inizia uno slideshow " -#: f.menus.cc:167 f.tools.cc:4497 +#: f.menus.cc:132 f.tools.cc:4796 msgid "Batch Convert" msgstr "Conversione in massa" -#: f.menus.cc:167 +#: f.menus.cc:132 msgid "Rename/convert/resize/move multiple files" msgstr "" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Batch Convert RAW" msgstr "Conversione RAW in massa" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Convert multiple camera RAW files" msgstr "Conversione multipla di file RAW (fotocamera)" -#: f.menus.cc:169 -msgid "Brightness Histogram" -msgstr "Istogramma di luminosità" +#: f.menus.cc:134 f.menus.cc:185 f.menus.cc:390 f.retouch.cc:314 +#: f.tools.cc:5620 +msgid "Brightness Distribution" +msgstr "Distribuzione della luminosità" -#: f.menus.cc:169 +#: f.menus.cc:134 msgid "Show a brightness distribution graph" msgstr "Mostra il grafico di distribuzione della luminosità" -#: f.menus.cc:170 f.menus.cc:480 f.tools.cc:5517 +#: f.menus.cc:135 f.menus.cc:393 f.tools.cc:5825 msgid "Grid Lines" msgstr "Linee griglia" -#: f.menus.cc:170 +#: f.menus.cc:135 msgid "Show or revise grid lines" msgstr "Mostra o cambia la griglia" -#: f.menus.cc:171 f.tools.cc:5701 +#: f.menus.cc:136 f.tools.cc:6009 msgid "Show RGB" msgstr "Esplora componenti RGB" -#: f.menus.cc:171 +#: f.menus.cc:136 msgid "Show RGB colors at mouse click" msgstr "Mostra i componenti colore RGB al clic" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Dark/Bright Pixels" msgstr "Punti chiari/scuri" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Highlight darkest and brightest pixels" msgstr "Individua i pixel di luminosità estrema" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Chart to adjust monitor color" msgstr "Grafico per regolare il colore dello schermo" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Monitor Color" msgstr "Colore monitor" -#: f.menus.cc:174 +#: f.menus.cc:139 msgid "Chart to adjust monitor gamma" msgstr "Grafico per regolare la gamma dello schermo" -#: f.menus.cc:174 f.tools.cc:6213 +#: f.menus.cc:139 f.tools.cc:6521 msgid "Monitor Gamma" msgstr "Gamma dello schermo" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change Language" msgstr "Cambia lingua del programma" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change the GUI language" msgstr "Cambia la lingua dell'interfaccia" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Missing Translations" msgstr "Traduzioni mancanti" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Report missing translations" msgstr "Segnala traduzioni mancanti" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Create a Gnome menu and launcher" msgstr "Crea menù e lanciatore di Gnome" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Menu and Launcher" msgstr "Crea menù/lanciatore" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn Images to CD/DVD" msgstr "Masterizza immagini su CD/DVD" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn selected image files to CD or DVD" msgstr "Incide le immagini selezionate su CD/DVD" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Memory and CPU (to terminal/logfile)" msgstr "Memoria e CPU (al terminale/giornale)" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Resources" msgstr "Mostra risorse (nel terminale)" -#: f.menus.cc:183 f.meta.cc:121 f.meta.cc:1945 +#: f.menus.cc:147 f.meta.cc:121 f.meta.cc:1946 msgid "Edit Metadata" msgstr "Modifica metadati (normale)" -#: f.menus.cc:183 +#: f.menus.cc:147 msgid "Edit image tags/caption/rating ..." msgstr "Modifica etichette/titolo/votazione..." -#: f.menus.cc:184 +#: f.menus.cc:148 msgid "Add/remove tags for multiple images" msgstr "Aggiungi/togli etichette in massa" -#: f.menus.cc:184 f.meta.cc:1547 +#: f.menus.cc:148 f.meta.cc:1547 msgid "Batch Add/Remove Tags" msgstr "Aggiungi/elimina etichette in massa" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "List a few key metadata items" msgstr "Mostra alcuni metadati di base" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "View Metadata (short)" msgstr "Vedi metadati (breve)" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "List all metadata items" msgstr "Mostra tutti i metadati" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "View Metadata (long)" msgstr "Vedi metadati (completo)" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "List captions and comments only" msgstr "Elenca solo titoli e commenti" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "View Captions and Comments" msgstr "Mostra titoli e commenti" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit Any Metadata" msgstr "Modifica metadati (avanzato)" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit any image metadata" msgstr "Modifica qualsiasi metadato dell'immagine" -#: f.menus.cc:189 f.meta.cc:2039 +#: f.menus.cc:153 f.meta.cc:2040 msgid "Delete Metadata" msgstr "Elimina metadati" -#: f.menus.cc:189 +#: f.menus.cc:153 msgid "Remove all metadata from an image" msgstr "Rimuove tutti i metadati da un'immagine" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "(Toggle) show captions and comments" msgstr "Titoli e commenti sulla foto" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "Show Captions on Image" msgstr "Mostra/nasconde titoli e commenti in sovrimpressione" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download Geolocations" msgstr "Scarica Geolocations" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download initial geolocation database" msgstr "Scarica il database Geolocations minimo " -#: f.menus.cc:193 f.meta.cc:3023 +#: f.menus.cc:157 f.meta.cc:3027 msgid "Edit Geotags" msgstr "Modifica i Geotags" -#: f.menus.cc:193 +#: f.menus.cc:157 msgid "Edit image location and geotags" msgstr "Modifica luogo e Geotags dell'immagine" -#: f.menus.cc:194 +#: f.menus.cc:158 msgid "Add geotags to multiple images" msgstr "Aggiungi Geotags a più immagini" -#: f.menus.cc:194 f.meta.cc:3225 +#: f.menus.cc:158 f.meta.cc:3229 msgid "Batch Add Geotags" msgstr "Aggiunta Geotags in blocco" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Find all images for a location [date]" msgstr "Cerca tutte le immagini di un luogo/data" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Images by Location/Date" msgstr "Cerca per luogo/data" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Find images by clicking a world map" msgstr "Cerca immagini cliccando su un mappamondo" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Images by Map Location" msgstr "Immagini di un luogo" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Find images meeting select criteria" msgstr "Cerca immagini con determinati criteri" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Search Images" msgstr "Ricerca immagini" -#: f.menus.cc:199 fotoxx.h:1060 +#: f.menus.cc:163 fotoxx.h:1066 msgid "Select" msgstr "Seleziona" -#: f.menus.cc:199 +#: f.menus.cc:163 msgid "Select object or area for editing" msgstr "Seleziona oggetto o area da modificare" -#: f.menus.cc:200 fotoxx.h:1062 +#: f.menus.cc:164 fotoxx.h:1068 msgid "Show" msgstr "Visualizza" -#: f.menus.cc:200 +#: f.menus.cc:164 msgid "Show (outline) existing area" msgstr "Mostra il contorno dell'area definita" -#: f.menus.cc:201 fotoxx.h:1022 +#: f.menus.cc:165 fotoxx.h:1027 msgid "Hide" msgstr "Nascondi" -#: f.menus.cc:201 +#: f.menus.cc:165 msgid "Hide existing area" msgstr "Nascondi l'area definita" -#: f.menus.cc:202 fotoxx.h:1011 +#: f.menus.cc:166 fotoxx.h:1016 msgid "Enable" msgstr "Abilita" -#: f.menus.cc:202 +#: f.menus.cc:166 msgid "Enable area for editing" msgstr "Abilita area alle modifiche" -#: f.menus.cc:203 fotoxx.h:1006 +#: f.menus.cc:167 fotoxx.h:1011 msgid "Disable" msgstr "Disabilita" -#: f.menus.cc:203 +#: f.menus.cc:167 msgid "Disable area for editing" msgstr "Disabilita area per modifiche" -#: f.menus.cc:204 fotoxx.h:1025 +#: f.menus.cc:168 fotoxx.h:1030 msgid "Invert" msgstr "Inverti" -#: f.menus.cc:204 +#: f.menus.cc:168 msgid "Reverse existing area" msgstr "Inverti l'area definita" -#: f.menus.cc:205 +#: f.menus.cc:169 msgid "Erase existing area" msgstr "Cancella area" -#: f.menus.cc:205 fotoxx.h:1074 +#: f.menus.cc:169 fotoxx.h:1080 msgid "Unselect" msgstr "Deseleziona" -#: f.menus.cc:206 fotoxx.h:1001 +#: f.menus.cc:170 fotoxx.h:1006 msgid "Copy" msgstr "Copia" -#: f.menus.cc:206 +#: f.menus.cc:170 msgid "Copy an area for later pasting" msgstr "Copia un'area per incollarla dopo" -#: f.menus.cc:207 fotoxx.h:1041 +#: f.menus.cc:171 fotoxx.h:1046 msgid "Paste" msgstr "Incolla" -#: f.menus.cc:207 +#: f.menus.cc:171 msgid "Paste an area into the current image" msgstr "Incolla un'area nell'immagine corrente" -#: f.menus.cc:208 +#: f.menus.cc:172 msgid "Open a file with a saved area" msgstr "Apri un file con un'area salvata" -#: f.menus.cc:209 f.menus.cc:300 fotoxx.h:1057 +#: f.menus.cc:173 f.menus.cc:258 fotoxx.h:1062 msgid "Save" msgstr "Salva" -#: f.menus.cc:209 +#: f.menus.cc:173 msgid "Save an area to a file" msgstr "Salva l'area in un file" -#: f.menus.cc:211 +#: f.menus.cc:175 msgid "Rotate 90 degrees" msgstr "Ruota di 90 gradi" -#: f.menus.cc:211 f.menus.cc:474 +#: f.menus.cc:175 f.menus.cc:387 msgid "Rotate 90º" msgstr "Ruota 90º" -#: f.menus.cc:212 +#: f.menus.cc:176 msgid "Trim/Crop margins and/or Rotate" msgstr "Regola/ritaglia margini e/o ruota" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Auto-Trim" msgstr "Ritaglia automaticamente" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Remove margins from warp, panorama, etc." msgstr "Ritaglia i margini dopo Distorsione, Panorama, ..." -#: f.menus.cc:214 +#: f.menus.cc:178 msgid "Change pixel dimensions" msgstr "Modifica le dimensioni in pixel" -#: f.menus.cc:215 +#: f.menus.cc:179 msgid "Mirror image horizontally or vertically" msgstr "Rispecchia in orizzontale o verticale" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Add Text" msgstr "Aggiungi scritte" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Write text on image" msgstr "Disegna scritte sull'immagine" -#: f.menus.cc:218 +#: f.menus.cc:182 msgid "Fast auto enhance that may work OK" msgstr "Auto correzione che potrebbe anche funzionare bene..." -#: f.menus.cc:218 f.menus.cc:475 +#: f.menus.cc:182 f.menus.cc:388 msgid "Voodoo Enhance" msgstr "Miglioramento magico Voodoo" -#: f.menus.cc:219 +#: f.menus.cc:183 msgid "Adjust brightness, contrast, color" msgstr "Correggi luminosità contrasto e colore" -#: f.menus.cc:219 f.menus.cc:476 f.retouch.cc:265 +#: f.menus.cc:183 f.menus.cc:389 f.retouch.cc:271 msgid "Retouch Combo" msgstr "Funzioni ritocco" -#: f.menus.cc:222 +#: f.menus.cc:184 msgid "Add local contrast, enhance details" msgstr "Aggiungi contrasto locale (più dettagli)" -#: f.menus.cc:222 f.menus.cc:478 f.retouch.cc:929 +#: f.menus.cc:184 f.menus.cc:391 f.retouch.cc:1039 msgid "Tone Mapping" msgstr "Mappa tonalità" -#: f.menus.cc:223 +#: f.menus.cc:185 msgid "Adjust brightness distribution" msgstr "Regola distribuzione della luminosità" -#: f.menus.cc:223 f.menus.cc:477 f.tools.cc:5314 -msgid "Brightness Distribution" -msgstr "Distribuzione della luminosità" - -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Brightness Ramp" msgstr "Rampe di luce/colore" -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Fix brightness uniformity across image" msgstr "Imposta l'uniformità della luce lungo l'immagine" -#: f.menus.cc:225 f.retouch.cc:2050 +#: f.menus.cc:187 f.retouch.cc:2159 msgid "Paint Edits" msgstr "Pennella funzione" -#: f.menus.cc:225 +#: f.menus.cc:187 msgid "Paint edit function gradually with mouse" msgstr "Applica una funzione gradualmente col mouse" -#: f.menus.cc:227 +#: f.menus.cc:188 f.retouch.cc:2390 +msgid "Leverage Edits" +msgstr "Modula ritocco" + +#: f.menus.cc:188 +msgid "Leverage edits by brightness or color" +msgstr "Modula la funzione corrente secondo luminosità/colore" + +#: f.menus.cc:190 msgid "Make the image look sharper" msgstr "Produci un'immagine più dettagliata" -#: f.menus.cc:227 f.repair.cc:79 f.tools.cc:4535 f.tools.cc:4904 +#: f.menus.cc:190 f.repair.cc:79 f.tools.cc:4834 f.tools.cc:5203 msgid "Sharpen" msgstr "Contrasta" -#: f.menus.cc:228 f.repair.cc:1565 +#: f.menus.cc:191 f.repair.cc:1565 msgid "Blur" msgstr "Sfuoca" -#: f.menus.cc:228 +#: f.menus.cc:191 msgid "Make the image look fuzzy" msgstr "Produci un'immagine più imprecisa" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Filter noise from low-light photos" msgstr "Elimina disturbi da foto con poca luce" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Reduce Noise" msgstr "Riduci disturbo" -#: f.menus.cc:230 +#: f.menus.cc:193 msgid "Remove unwanted objects" msgstr "Elimina oggetti non voluti" -#: f.menus.cc:230 f.repair.cc:1558 +#: f.menus.cc:193 f.repair.cc:1558 msgid "Smart Erase" msgstr "Cancellazione intelligente" -#: f.menus.cc:231 +#: f.menus.cc:194 msgid "Fix red-eyes from electronic flash" msgstr "Correggi gli occhi rossi a causa del flash" -#: f.menus.cc:231 f.menus.cc:479 +#: f.menus.cc:194 f.menus.cc:392 msgid "Red Eyes" msgstr "Rimuovi occhi rossi" -#: f.menus.cc:232 +#: f.menus.cc:195 msgid "Paint image pixels using the mouse" msgstr "Disegna pixel con il mouse" -#: f.menus.cc:232 f.repair.cc:2403 +#: f.menus.cc:195 f.repair.cc:2403 msgid "Paint/Clone" msgstr "Dipingi pixel" -#: f.menus.cc:233 f.repair.cc:2995 +#: f.menus.cc:196 f.repair.cc:2995 msgid "Remove Dust" msgstr "Rimozione polvere" -#: f.menus.cc:233 +#: f.menus.cc:196 msgid "Remove dust spots from scanned slides" msgstr "Elimina le macchie di polvere da diapositive scansionate" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Anti-alias" msgstr "Anti-alias" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Smoothen edges with jaggies" msgstr "Sfuoca bordi sgranati" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Fix Color Fringes" msgstr "Corregge frange di colore" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Reduce Chromatic Abberation" msgstr "Corregge le barre colorate estranee alla foto" -#: f.menus.cc:236 +#: f.menus.cc:199 msgid "Erase known hot and dark pixels" msgstr "" "Cancella pixel difettosi della fotocamera, detti Hot-caldi o Dark-scuri " -#: f.menus.cc:236 f.repair.cc:4008 +#: f.menus.cc:199 f.repair.cc:4008 msgid "Fix Stuck Pixels" msgstr "Correggi pixel difettosi" -#: f.menus.cc:239 +#: f.menus.cc:201 msgid "Shift/convert colors into other colors" msgstr "Regola i singoli componenti del colore" -#: f.menus.cc:240 +#: f.menus.cc:202 msgid "Make BW/color, negative/positive, sepia" msgstr "Trasforma in B/N o a colori, negativo, seppia..." -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Color Profile" msgstr "Profilo di colore" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Convert to another color profile" msgstr "Converte a un altro profilo di colore" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match Colors" msgstr "Allinea colori" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match colors on one image with another" msgstr "Allinea il colore di un'immagine con un'altra" -#: f.menus.cc:243 +#: f.menus.cc:205 msgid "Adjust color in selected image areas" msgstr "Regola il colore in aree selezionate" -#: f.menus.cc:244 +#: f.menus.cc:206 msgid "Adjust color using CMYK or RGB values" msgstr "Regola il colore con CMYK o RGB" -#: f.menus.cc:246 +#: f.menus.cc:208 msgid "Remove curvature, esp. panoramas" msgstr "Elimina la curvatura, specialmente da panorama" -#: f.menus.cc:247 +#: f.menus.cc:209 msgid "Straighten objects seen from an angle" msgstr "Raddrizza oggetti visti da un angolo" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten Book Page" msgstr "Appiattisci pagina" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten a photographed book page" msgstr "Appiattisce la foto della pagina di un libro" -#: f.menus.cc:249 +#: f.menus.cc:211 msgid "Distort image areas using the mouse" msgstr "Distorci un'area usando il mouse" -#: f.menus.cc:250 f.menus.cc:251 f.menus.cc:252 +#: f.menus.cc:212 f.menus.cc:213 f.menus.cc:214 msgid "Distort the whole image using the mouse" msgstr "Distorci l'intera foto usando il mouse" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Color Depth" msgstr "Risoluzione del colore" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Reduce color depth (posterize)" msgstr "Riduce la risoluzione dei colori (poster)" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Convert to pencil sketch" msgstr "Converte in disegno a matita" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Sketch" msgstr "Schizzo" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Convert to colored line drawing" msgstr "Converti in disegno con linee colorate" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Drawing" msgstr "Disegno" -#: f.menus.cc:257 +#: f.menus.cc:219 msgid "Graduated Blur depending on contrast" msgstr "Sfumatura graduale basata sul contrasto" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Create an embossed or 3D appearance" msgstr "Crea un effetto scolpito o 3D" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Embossing" msgstr "Bassorilievo" -#: f.menus.cc:259 +#: f.menus.cc:221 msgid "Convert to square tiles" msgstr "Crea un effetto piastrellato" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Crea un effetto puntinato (Roy Lichtenstein)" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Dots" msgstr "Puntinismo" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Convert into a simulated painting" msgstr "Crea un effetto di dipinto a olio" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Painting" msgstr "Dipinto" -#: f.menus.cc:262 +#: f.menus.cc:224 msgid "Change brightness or color radially" msgstr "Cambia luminosità o contrasto in modo radiale" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Add texture to an image" msgstr "Aggiungi un motivo (texture)" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Texture" msgstr "Motivo" -#: f.menus.cc:264 +#: f.menus.cc:226 msgid "Tile image with a repeating pattern" msgstr "" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Create a mosaic with tiles made from all images" msgstr "" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Mosaic" msgstr "" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "Combine bright/dark images for better detail" msgstr "Combina immagini chiare/scure per guadagnare in dettaglio" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "High Dynamic Range" msgstr "Combina immagini (alta dinamica - HDR)" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "Combine near/far focus images for deeper focus" msgstr "Combina immagini con profondità diverse per ampliare la messa a fuoco" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "High Depth of Field" msgstr "Combina immagini (grande profondità - HDF)" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Combine images to erase passing people, etc." msgstr "Combina immagini per eliminare oggetti (es. passanti, automobili...)" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Stack / Paint" msgstr "Sovrapponi (interattivo con mouse)" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Combine noisy images into a low-noise image" msgstr "Combina immagini disturbate in una con minor disturbo" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Stack / Noise" msgstr "Sovrapponi (rimozione disturbo)" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Combine images into a panorama" msgstr "Combina immagini lato a lato per creare un panorama" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Panorama" msgstr "Crea un panorama" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Combine images into a vertical panorama" msgstr "Combina immagini in un panorama verticale" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Vertical Panorama" msgstr "Panorama verticale" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Arrange multiple images on a background image" msgstr "Dispone più immagini su uno sfondo" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Mashup" msgstr "Collage" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Add another image editor to the menu" msgstr "Aggiungi altri programmi al menù" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Edit Plugins" msgstr "Gestione plug-in" -#: f.menus.cc:277 fotoxx-14.03.cc:3777 +#: f.menus.cc:239 fotoxx-14.04.cc:3801 msgid "Quick Start" msgstr "Introduzione rapida" -#: f.menus.cc:277 +#: f.menus.cc:239 msgid "Quick Start mini-guide" msgstr "Miniguida rapida" -#: f.menus.cc:278 +#: f.menus.cc:240 msgid "Read the user guide" msgstr "Visualizza la guida utente" -#: f.menus.cc:278 fotoxx-14.03.cc:3780 +#: f.menus.cc:240 fotoxx-14.04.cc:3804 msgid "User Guide" msgstr "Guida utente" -#: f.menus.cc:279 +#: f.menus.cc:241 msgid "Recent user guide changes" msgstr "Visualizza gli ultimi cambiamenti alla guida utente" -#: f.menus.cc:279 fotoxx-14.03.cc:3783 +#: f.menus.cc:241 fotoxx-14.04.cc:3807 msgid "User Guide Changes" msgstr "Cronistoria della guida utente" -#: f.menus.cc:280 +#: f.menus.cc:242 msgid "Fotoxx updates notification" msgstr "Notifiche di aggiornamenti a Fotoxx" -#: f.menus.cc:280 fotoxx-14.03.cc:3786 +#: f.menus.cc:242 fotoxx-14.04.cc:3810 msgid "Program Updates" msgstr "Aggiornamenti" -#: f.menus.cc:281 fotoxx-14.03.cc:3792 +#: f.menus.cc:243 fotoxx-14.04.cc:3816 msgid "Edit Functions Summary" msgstr "Sommario funzioni" -#: f.menus.cc:281 +#: f.menus.cc:243 msgid "Summary of image edit functions" msgstr "Visualizza un sommario delle funzioni disponibili" -#: f.menus.cc:282 fotoxx-14.03.cc:3789 +#: f.menus.cc:244 fotoxx-14.04.cc:3813 msgid "README" msgstr "Read-me" -#: f.menus.cc:282 +#: f.menus.cc:244 msgid "Technical installation notes" msgstr "Mostra note tecniche aggiuntive su Fotoxx" -#: f.menus.cc:283 fotoxx-14.03.cc:3795 +#: f.menus.cc:245 fotoxx-14.04.cc:3819 msgid "Change Log" msgstr "Cronistoria delle modifiche" -#: f.menus.cc:283 +#: f.menus.cc:245 msgid "List updates by Fotoxx version" msgstr "Mostra la storia delle versioni e loro contenuti" -#: f.menus.cc:284 fotoxx-14.03.cc:3798 +#: f.menus.cc:246 fotoxx-14.04.cc:3822 msgid "Log File" msgstr "Mostra file di log" -#: f.menus.cc:284 +#: f.menus.cc:246 msgid "View the log file and error messages" msgstr "Mostra il file di log: i messaggi generati durante l'avviamento" -#: f.menus.cc:285 +#: f.menus.cc:247 msgid "How to do Fotoxx translations" msgstr "Mostra come fare la traduzione in altre lingue" -#: f.menus.cc:285 fotoxx-14.03.cc:3801 +#: f.menus.cc:247 fotoxx-14.04.cc:3825 msgid "Translations" msgstr "Come tradurre" -#: f.menus.cc:286 fotoxx-14.03.cc:3804 +#: f.menus.cc:248 fotoxx-14.04.cc:3828 msgid "Home Page" msgstr "Sito WEB" -#: f.menus.cc:286 +#: f.menus.cc:248 msgid "Show the Fotoxx web page" msgstr "Mostra la home page internet di fotoxx" -#: f.menus.cc:287 fotoxx-14.03.cc:3807 +#: f.menus.cc:249 fotoxx-14.04.cc:3831 msgid "About" msgstr "Info" -#: f.menus.cc:287 +#: f.menus.cc:249 msgid "Version, license, contact, credits" msgstr "Versione, licenza, contatti, riconoscimenti" -#: f.menus.cc:290 -msgid "Favs" -msgstr "Preferiti" - -#: f.menus.cc:292 +#: f.menus.cc:251 msgid "Color of area borders etc." msgstr "Colore delle aree ai bordi ecc." -#: f.menus.cc:293 fotoxx.h:1072 +#: f.menus.cc:252 fotoxx.h:1078 msgid "Undo" msgstr "Annulla" -#: f.menus.cc:293 +#: f.menus.cc:252 msgid "Undo one edit" msgstr "Annulla l'ultima modifica" -#: f.menus.cc:294 fotoxx.h:1051 +#: f.menus.cc:253 fotoxx.h:1056 msgid "Redo" msgstr "Ripeti" -#: f.menus.cc:294 +#: f.menus.cc:253 msgid "Redo one edit" msgstr "Ripete l'ultima modifica" -#: f.menus.cc:296 f.menus.cc:432 +#: f.menus.cc:254 f.menus.cc:348 msgid "Set gallery from current image file" msgstr "Imposta la galleria dall'immagine corrente" -#: f.menus.cc:298 +#: f.menus.cc:256 msgid "Open the previous file" msgstr "Apri il file precedente" -#: f.menus.cc:298 fotoxx.h:1046 +#: f.menus.cc:256 fotoxx.h:1051 msgid "Prev" msgstr "Preced." -#: f.menus.cc:299 fotoxx.h:1034 +#: f.menus.cc:257 fotoxx.h:1039 msgid "Next" msgstr "Prossima" -#: f.menus.cc:299 +#: f.menus.cc:257 msgid "Open the next file" msgstr "Apri il file successivo" -#: f.menus.cc:301 f.menus.cc:483 fotoxx.h:1068 +#: f.menus.cc:259 f.menus.cc:396 fotoxx.h:1074 msgid "Trash" msgstr "Cestina" -#: f.menus.cc:344 f.menus.cc:373 +#: f.menus.cc:306 msgid "Run as Fotoxx edit function" msgstr "Esegui come funzione di edit fotoxx" -#: f.menus.cc:412 +#: f.menus.cc:328 msgid "Top" msgstr "Cima" -#: f.menus.cc:433 +#: f.menus.cc:349 msgid "open another directory" msgstr "Apri un'altra directory" -#: f.menus.cc:434 +#: f.menus.cc:350 msgid "go to bookmarked image" msgstr "Va a un segnalibro" -#: f.menus.cc:435 +#: f.menus.cc:351 msgid "increase thumbnail size" msgstr "Aumenta la dimensione delle miniature" -#: f.menus.cc:436 +#: f.menus.cc:352 msgid "reduce thumbnail size" msgstr "Riduci la dimensione delle miniature" -#: f.menus.cc:437 +#: f.menus.cc:353 msgid "change sort order" msgstr "Cambia ordinamento" -#: f.menus.cc:438 +#: f.menus.cc:354 msgid "jump to beginning (top)" msgstr "Salta alla cima" -#: f.menus.cc:439 +#: f.menus.cc:355 msgid "jump to end (bottom)" msgstr "Salta al fondo" -#: f.menus.cc:440 +#: f.menus.cc:356 msgid "previous page" msgstr "Pagina precedente" -#: f.menus.cc:441 +#: f.menus.cc:357 msgid "next page" msgstr "Pagina successiva" -#: f.menus.cc:442 +#: f.menus.cc:358 msgid "previous row" msgstr "Riga precedente" -#: f.menus.cc:443 +#: f.menus.cc:359 msgid "next row" msgstr "Riga successiva" -#: f.menus.cc:461 +#: f.menus.cc:360 +msgid "slow scroll" +msgstr "" + +#: f.menus.cc:374 msgid "Popup Image" msgstr "" -#: f.menus.cc:463 fotoxx.h:1054 +#: f.menus.cc:376 fotoxx.h:1059 msgid "Rename" msgstr "Rinomina" -#: f.menus.cc:464 +#: f.menus.cc:377 msgid "Copy to Location" msgstr "Copia in una posizione" -#: f.menus.cc:465 +#: f.menus.cc:378 msgid "Move to Location" msgstr "Sposta a una posizione" -#: f.menus.cc:466 +#: f.menus.cc:379 msgid "Copy to Clipboard" msgstr "Copia negli appunti" -#: f.menus.cc:467 +#: f.menus.cc:380 msgid "Remove from Collection" msgstr "Rimuovi dalla collezione" -#: f.menus.cc:468 +#: f.menus.cc:381 msgid "Cut to Image Cache" msgstr "Taglia verso verso il deposito immagini" -#: f.menus.cc:469 +#: f.menus.cc:382 msgid "Copy to Image Cache" msgstr "Copia nel deposito immagini" -#: f.menus.cc:470 +#: f.menus.cc:383 msgid "Paste Image Cache Here (clear)" msgstr "Incolla il deposito immagini qui (svuota)" -#: f.menus.cc:471 +#: f.menus.cc:384 msgid "Paste Image Cache Here (keep)" msgstr "Incolla il deposito immagini qui (mantiene)" -#: f.menus.cc:481 +#: f.menus.cc:394 msgid "Select Area" msgstr "Seleziona area" @@ -2436,7 +2461,7 @@ msgid "Rating: %c (stars)" msgstr "Voto: %c (stelle)" -#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1939 f.meta.cc:3036 f.meta.cc:3311 +#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1940 f.meta.cc:3040 f.meta.cc:3315 msgid "file type cannot have metadata" msgstr "" @@ -2488,7 +2513,7 @@ msgid "Recent Tags" msgstr "Etichette recenti:" -#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4267 +#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4271 msgid "Defined Tags" msgstr "Etichette definite:" @@ -2508,7 +2533,7 @@ msgid "time is invalid" msgstr "L'ora non è valida" -#: f.meta.cc:532 fotoxx.h:1029 +#: f.meta.cc:532 fotoxx.h:1034 msgid "Manage Tags" msgstr "Gestione etichette" @@ -2524,11 +2549,11 @@ msgid "tag" msgstr "Etichetta" -#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1474 +#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1449 msgid "file not found" msgstr "File non trovato" -#: f.meta.cc:1552 f.meta.cc:3257 f.tools.cc:4501 f.tools.cc:4966 +#: f.meta.cc:1552 f.meta.cc:3261 f.tools.cc:4800 f.tools.cc:5265 msgid "0 files selected" msgstr "0 file selezionati" @@ -2553,7 +2578,7 @@ msgid "specify files and tags" msgstr "specificare file ed etichette" -#: f.meta.cc:1788 f.meta.cc:3369 f.tools.cc:4800 f.tools.cc:5185 +#: f.meta.cc:1788 f.meta.cc:3373 f.tools.cc:5099 f.tools.cc:5484 #, c-format msgid "%d files selected" msgstr "%d file selezionati" @@ -2562,11 +2587,11 @@ msgid "View Metadata" msgstr "Mostra i metadati" -#: f.meta.cc:1903 +#: f.meta.cc:1904 msgid "Caption: \n" msgstr "Titolo: \n" -#: f.meta.cc:1905 +#: f.meta.cc:1906 msgid "" "\n" "Comment: \n" @@ -2574,23 +2599,23 @@ "\n" "Commento: \n" -#: f.meta.cc:1949 +#: f.meta.cc:1950 msgid "key name" msgstr "Nome chiave" -#: f.meta.cc:1951 +#: f.meta.cc:1952 msgid "key value" msgstr "Valore chiave" -#: f.meta.cc:2041 fotoxx.h:985 +#: f.meta.cc:2042 fotoxx.h:990 msgid "All" msgstr "Tutto" -#: f.meta.cc:2042 +#: f.meta.cc:2043 msgid "One Key:" msgstr "Una chiave:" -#: f.meta.cc:2222 +#: f.meta.cc:2223 #, c-format msgid "" "Download geotags data (8 megabytes). \n" @@ -2601,48 +2626,40 @@ "Salvati in %s \n" "Proseguo?" -#: f.meta.cc:2261 +#: f.meta.cc:2262 msgid "download failed" msgstr "Scaricamento fallito" -#: f.meta.cc:2292 fotoxx-14.03.cc:1079 -msgid "Location from World Map" -msgstr "Luogo da mappa mondiale" - -#: f.meta.cc:2294 -msgid "Loading world map" -msgstr "Caricamento della mappa mondiale..." - -#: f.meta.cc:2304 f.meta.cc:2449 +#: f.meta.cc:2298 f.meta.cc:2445 msgid "please download geolocations data" msgstr "Occorre scaricare i dati di Geolocations" -#: f.meta.cc:2309 +#: f.meta.cc:2304 msgid "Loading geolocations" msgstr "Caricamento Geolocations..." -#: f.meta.cc:2737 f.meta.cc:3209 f.meta.cc:3477 +#: f.meta.cc:2741 f.meta.cc:3213 f.meta.cc:3481 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "Latitudine/Longitudine errati: %s %s" -#: f.meta.cc:3024 +#: f.meta.cc:3028 msgid "Geocoding web service courtesy of" msgstr "Il servizio web Geocoding è cortesia di" -#: f.meta.cc:3045 f.meta.cc:3259 f.meta.cc:4772 +#: f.meta.cc:3049 f.meta.cc:3263 f.meta.cc:4778 msgid "city" msgstr "Città" -#: f.meta.cc:3048 f.meta.cc:3262 f.meta.cc:4775 +#: f.meta.cc:3052 f.meta.cc:3266 f.meta.cc:4781 msgid "country" msgstr "Nazione" -#: f.meta.cc:3120 f.meta.cc:3390 +#: f.meta.cc:3124 f.meta.cc:3394 msgid "city not found" msgstr "Città non trovata" -#: f.meta.cc:3455 +#: f.meta.cc:3459 msgid "" "data is incomplete \n" " proceed?" @@ -2650,139 +2667,139 @@ "I dati sono incompleti \n" " proseguire?" -#: f.meta.cc:3481 f.tools.cc:4844 +#: f.meta.cc:3485 f.tools.cc:5143 msgid "no files selected" msgstr "Nessun file selezionato" -#: f.meta.cc:3513 +#: f.meta.cc:3517 msgid "choose city" msgstr "Scegli città" -#: f.meta.cc:3599 +#: f.meta.cc:3603 msgid "not found" msgstr "non trovata" -#: f.meta.cc:3600 +#: f.meta.cc:3604 msgid "city and country required" msgstr "Indicare città e nazione" -#: f.meta.cc:3692 +#: f.meta.cc:3696 msgid "Report Geotag Groups" msgstr "Visualizza gruppi Geotags" -#: f.meta.cc:3693 +#: f.meta.cc:3697 msgid "Group by country" msgstr "Raggruppa per nazione" -#: f.meta.cc:3694 +#: f.meta.cc:3698 msgid "Group by country/city" msgstr "Raggruppa per nazione/città" -#: f.meta.cc:3695 +#: f.meta.cc:3699 msgid "Group by country/city/date" msgstr "Raggruppa per nazione/città/data" -#: f.meta.cc:3698 +#: f.meta.cc:3702 msgid "Combine within" msgstr "Combina entro" -#: f.meta.cc:3700 +#: f.meta.cc:3704 msgid "days" msgstr "giorni" -#: f.meta.cc:3815 +#: f.meta.cc:3819 msgid "geotag groups" msgstr "Gruppi geotag" -#: f.meta.cc:4043 +#: f.meta.cc:4047 msgid "search range (km)" msgstr "distanza (km)" -#: f.meta.cc:4116 +#: f.meta.cc:4120 msgid "No matching images found" msgstr "Nessuna immagine soddisfa la ricerca" -#: f.meta.cc:4202 +#: f.meta.cc:4206 msgid "Search Image Metadata" msgstr "Cerca nei metadati dell'immagine" -#: f.meta.cc:4206 +#: f.meta.cc:4210 msgid "images to search:" msgstr "immagini da cercare:" -#: f.meta.cc:4207 +#: f.meta.cc:4211 msgid "all" msgstr "tutte" -#: f.meta.cc:4208 +#: f.meta.cc:4212 msgid "current set only" msgstr "insieme corrente" -#: f.meta.cc:4211 +#: f.meta.cc:4215 msgid "matching images:" msgstr "immagini corrispondenti:" -#: f.meta.cc:4212 +#: f.meta.cc:4216 msgid "new set" msgstr "nuovo insieme" -#: f.meta.cc:4213 +#: f.meta.cc:4217 msgid "add to set" msgstr "aggiungi all'insieme" -#: f.meta.cc:4214 +#: f.meta.cc:4218 msgid "remove" msgstr "rimuovi" -#: f.meta.cc:4217 +#: f.meta.cc:4221 msgid "report type:" msgstr "" -#: f.meta.cc:4218 +#: f.meta.cc:4222 msgid "gallery" msgstr "" -#: f.meta.cc:4219 +#: f.meta.cc:4223 msgid "metadata" msgstr "" -#: f.meta.cc:4225 +#: f.meta.cc:4229 msgid "date range" msgstr "Intervallo date: " -#: f.meta.cc:4226 +#: f.meta.cc:4230 msgid "stars range" msgstr "Voto da/a:" -#: f.meta.cc:4227 +#: f.meta.cc:4231 msgid "search tags" msgstr "Cerca etichette" -#: f.meta.cc:4228 +#: f.meta.cc:4232 msgid "search text" msgstr "Cerca testo" -#: f.meta.cc:4229 +#: f.meta.cc:4233 msgid "search files" msgstr "Cerca nei file" -#: f.meta.cc:4234 +#: f.meta.cc:4238 msgid "(yyyymmdd)" msgstr "(aaaammgg)" -#: f.meta.cc:4240 +#: f.meta.cc:4244 msgid "all/any" msgstr "Tutte/Qualsiasi" -#: f.meta.cc:4259 +#: f.meta.cc:4263 msgid "other criteria" msgstr "altri criteri" -#: f.meta.cc:4263 +#: f.meta.cc:4267 msgid "other" msgstr "altro" -#: f.meta.cc:4398 +#: f.meta.cc:4402 msgid "" "to remove images from current set, \n" "search current set" @@ -2790,7 +2807,7 @@ "per rimuovere immagini dall'insieme corrente, \n" "cercare nell'insieme corrente" -#: f.meta.cc:4405 +#: f.meta.cc:4409 msgid "" "to add images to current set, \n" "search all images" @@ -2798,28 +2815,28 @@ "per aggiungere immagini all'insieme corrente, \n" "cercare in tutte le immagini" -#: f.meta.cc:4632 +#: f.meta.cc:4636 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "Immagini aggiunte: %d; tolte: %d; totale corrente: %d" -#: f.meta.cc:4635 +#: f.meta.cc:4639 msgid "no changes made" msgstr "nessun cambiamento fatto" -#: f.meta.cc:4769 +#: f.meta.cc:4775 msgid "Add Geotags Search Criteria" msgstr "Aggiungi criteri di ricerca Geotags" -#: f.meta.cc:4788 +#: f.meta.cc:4794 msgid "range (km)" msgstr "distanza (km)" -#: f.meta.cc:4881 +#: f.meta.cc:4885 msgid "error in latitude/longitude/range" msgstr "errore nella specifica di latitudine/longitudine/distanza" -#: f.meta.cc:4946 +#: f.meta.cc:4950 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2827,19 +2844,19 @@ "Questi elementi sono sempre mostrati: \n" "data, stelle, etichette, titolo, commenti" -#: f.meta.cc:4970 +#: f.meta.cc:4974 msgid "Additional Items for Report" msgstr "Informazioni addizionali da riportare" -#: f.meta.cc:4976 +#: f.meta.cc:4980 msgid "Keyword" msgstr "parola chiave" -#: f.meta.cc:4983 +#: f.meta.cc:4987 msgid "Match Criteria" msgstr "criterio di corrispondenza" -#: f.meta.cc:5554 f.tools.cc:300 +#: f.meta.cc:5558 f.tools.cc:300 msgid "image index is missing" msgstr "" @@ -2883,7 +2900,7 @@ "1. Trascina per selezionare. \n" "2. Cancella. 3. Ripeti. " -#: f.repair.cc:1563 fotoxx.h:1048 +#: f.repair.cc:1563 fotoxx.h:1053 msgid "Radius" msgstr "Raggio" @@ -3004,87 +3021,95 @@ msgid "Stuck Pixels file" msgstr "File di pixel difettosi" -#: f.repair.cc:4203 +#: f.repair.cc:4203 f.tools.cc:3380 msgid "file format error" msgstr "Formato file errato" -#: f.retouch.cc:292 fotoxx.h:993 +#: f.retouch.cc:292 +msgid "Amplifier" +msgstr "" + +#: f.retouch.cc:293 fotoxx.h:998 msgid "Brightness" msgstr "Luminosità" -#: f.retouch.cc:293 fotoxx.h:1000 +#: f.retouch.cc:294 fotoxx.h:1005 msgid "Contrast" msgstr "Contrasto" -#: f.retouch.cc:294 +#: f.retouch.cc:295 msgid "Low Color" msgstr "" -#: f.retouch.cc:295 +#: f.retouch.cc:296 msgid "Warmer" msgstr "" -#: f.retouch.cc:296 +#: f.retouch.cc:297 msgid "Dark Areas" msgstr "" -#: f.retouch.cc:304 f.retouch.cc:305 f.retouch.cc:306 +#: f.retouch.cc:306 +msgid "Max." +msgstr "" + +#: f.retouch.cc:307 f.retouch.cc:308 f.retouch.cc:309 msgid "High" msgstr "" -#: f.retouch.cc:307 +#: f.retouch.cc:310 msgid "Cooler" msgstr "" -#: f.retouch.cc:308 +#: f.retouch.cc:311 msgid "Bright" msgstr "" -#: f.retouch.cc:311 +#: f.retouch.cc:317 msgid "Click for white balance or black level" msgstr "" -#: f.retouch.cc:957 +#: f.retouch.cc:1067 msgid "low" msgstr "basso" -#: f.retouch.cc:959 +#: f.retouch.cc:1069 msgid "high" msgstr "alto" -#: f.retouch.cc:962 +#: f.retouch.cc:1072 msgid "Amplify" msgstr "Amplificazione" -#: f.retouch.cc:1301 +#: f.retouch.cc:1411 msgid "Adjust Brightness Distribution" msgstr "Regola la distribuzione di luminosità" -#: f.retouch.cc:1339 +#: f.retouch.cc:1449 msgid "Flatten" msgstr "Quantità" -#: f.retouch.cc:1340 +#: f.retouch.cc:1450 msgid "Deband" msgstr "Elimina bande" -#: f.retouch.cc:1341 +#: f.retouch.cc:1451 msgid "Darken" msgstr "Scurisci" -#: f.retouch.cc:1342 +#: f.retouch.cc:1452 msgid "Brighten" msgstr "Schiarisci" -#: f.retouch.cc:1675 +#: f.retouch.cc:1784 msgid "Ramp brightness across image" msgstr "Rampe di luce" -#: f.retouch.cc:2052 f.tools.cc:5777 +#: f.retouch.cc:2161 f.retouch.cc:2398 f.tools.cc:6085 msgid "Edit function must be active" msgstr "Una funzione di edit deve essere attiva" -#: f.retouch.cc:2060 fotoxx-14.03.cc:3108 +#: f.retouch.cc:2169 fotoxx-14.04.cc:3132 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -3092,14 +3117,26 @@ "L'area selezionata non può essere mantenuta.\n" "Continuare?" -#: f.retouch.cc:2089 +#: f.retouch.cc:2198 msgid "power: center" msgstr "Forza: centro:" -#: f.retouch.cc:2094 +#: f.retouch.cc:2203 msgid "reset area" msgstr "Azzera area" +#: f.retouch.cc:2391 +msgid "Edit Function Amplifier" +msgstr "Regola amplificazione di funzione" + +#: f.retouch.cc:2427 +msgid "minimum" +msgstr "Minimo" + +#: f.retouch.cc:2429 +msgid "maximum" +msgstr "Massimo" + #: f.tools.cc:95 msgid "Top Image Directories" msgstr "Cartelle immagini principali" @@ -3155,154 +3192,138 @@ msgid "COMPLETED" msgstr "COMPLETATO" -#: f.tools.cc:818 +#: f.tools.cc:817 msgid "Settings" msgstr "Impostazioni" -#: f.tools.cc:821 +#: f.tools.cc:820 msgid "Startup Display" msgstr "Vista iniziale" -#: f.tools.cc:823 +#: f.tools.cc:822 msgid "Recent Files Gallery" msgstr "Galleria file recenti" -#: f.tools.cc:825 +#: f.tools.cc:824 msgid "Newest Files Gallery" msgstr "Galleria delle immagini nuove" -#: f.tools.cc:827 +#: f.tools.cc:826 msgid "Previous Gallery" msgstr "" -#: f.tools.cc:829 +#: f.tools.cc:828 msgid "Previous Image" msgstr "" -#: f.tools.cc:831 +#: f.tools.cc:830 msgid "Blank Window" msgstr "Finestra vuota" -#: f.tools.cc:833 +#: f.tools.cc:832 msgid "Directory Gallery" msgstr "Galleria di una cartella" -#: f.tools.cc:837 +#: f.tools.cc:836 msgid "Image File" msgstr "File immagine" -#: f.tools.cc:844 -msgid "Menu Style" -msgstr "Stile per il menù" - -#: f.tools.cc:845 -msgid "Classic" -msgstr "Classico" - -#: f.tools.cc:846 -msgid "Vertical" -msgstr "Verticale" - -#: f.tools.cc:849 +#: f.tools.cc:843 msgid "Toolbar Style" msgstr "Stile barra strumenti" -#: f.tools.cc:851 +#: f.tools.cc:845 msgid "Icons" msgstr "Icone" -#: f.tools.cc:852 +#: f.tools.cc:846 msgid "Both" msgstr "Entrambe" -#: f.tools.cc:855 +#: f.tools.cc:849 msgid "Image Pan" msgstr "Pan immagine" -#: f.tools.cc:856 +#: f.tools.cc:850 msgid "Drag" msgstr "Trascina" -#: f.tools.cc:857 -msgid "Scroll" -msgstr "Scorri" - -#: f.tools.cc:858 +#: f.tools.cc:852 msgid "Magnified" msgstr "Ingrandito" -#: f.tools.cc:867 +#: f.tools.cc:861 msgid "Default JPEG quality" msgstr "Qualità JPEG standard" -#: f.tools.cc:871 +#: f.tools.cc:865 msgid "Zooms for 200%" msgstr "Ingrandisce al 200%" -#: f.tools.cc:875 +#: f.tools.cc:869 msgid "RAW command" msgstr "Comando RAW" -#: f.tools.cc:879 +#: f.tools.cc:873 msgid "RAW file types" msgstr "Tipi di file RAW" -#: f.tools.cc:1027 +#: f.tools.cc:1016 msgid "startup directory is invalid" msgstr "Cartella iniziale non valida" -#: f.tools.cc:1035 +#: f.tools.cc:1024 msgid "startup file is invalid" msgstr "File iniziale non valido" -#: f.tools.cc:1130 +#: f.tools.cc:1105 msgid "Select startup directory" msgstr "Seleziona cartella d'avvio" -#: f.tools.cc:1138 +#: f.tools.cc:1113 msgid "Select startup image file" msgstr "Seleziona file d'avvio" -#: f.tools.cc:1176 +#: f.tools.cc:1151 msgid "Click list position. Click thumbnail to add." msgstr "" "Clicca la lista per indicare la posizione; clicca le miniature per " "aggiungere." -#: f.tools.cc:1201 f.tools.cc:1418 +#: f.tools.cc:1176 f.tools.cc:1393 msgid "Edit Bookmarks" msgstr "Gestisci segnalibri" -#: f.tools.cc:1349 +#: f.tools.cc:1324 msgid "unable to save bookmarks file" msgstr "Impossibile salvare i segnalibri" -#: f.tools.cc:1418 +#: f.tools.cc:1393 msgid "Go To Bookmark" msgstr "Va al segnalibro" -#: f.tools.cc:1563 +#: f.tools.cc:1538 msgid "Edit KB Shortcuts" msgstr "Gestisci le scorciatoie di tastiera" -#: f.tools.cc:1568 +#: f.tools.cc:1543 msgid "shortcut key:" msgstr "Scorciatoia:" -#: f.tools.cc:1569 +#: f.tools.cc:1544 msgid "(enter key)" msgstr "" -#: f.tools.cc:1695 +#: f.tools.cc:1670 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" è riservata - non si può usare" -#: f.tools.cc:1826 +#: f.tools.cc:1801 msgid "unable to save KB-shortcuts file" msgstr "Non riesco a salvare le scorciatoie" -#: f.tools.cc:1914 +#: f.tools.cc:1889 msgid "" "Right-click collection thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -3310,396 +3331,429 @@ "Clic destro su icona per tagliare/copiare \n" "nel deposito immagini, prelevare, o rimuovere." -#: f.tools.cc:1955 +#: f.tools.cc:1930 msgid "Start a new collection, add images" msgstr "Comincia una nuova collezione - aggiungi immagini" -#: f.tools.cc:1957 +#: f.tools.cc:1932 msgid "New collection from current gallery" msgstr "Crea nuova collezione dalla galleria corrente" -#: f.tools.cc:1959 +#: f.tools.cc:1934 msgid "Collection to view or edit" msgstr "Collezione da vedere o modificare" -#: f.tools.cc:1961 +#: f.tools.cc:1936 msgid "Select images, add to cache" msgstr "Selezionare immagini, aggiungere al deposito" -#: f.tools.cc:1963 +#: f.tools.cc:1938 msgid "Clear image cache" msgstr "Azzera il deposito immagini" -#: f.tools.cc:1964 +#: f.tools.cc:1939 msgid "(0 images)" msgstr "(0 immagini)" -#: f.tools.cc:1966 +#: f.tools.cc:1941 msgid "Delete a collection" msgstr "Elimina una collezione" -#: f.tools.cc:1987 +#: f.tools.cc:1962 msgid "New Collection" msgstr "Nuova collezione" -#: f.tools.cc:1988 +#: f.tools.cc:1963 msgid "Choose Collection" msgstr "Scegli la collezione" -#: f.tools.cc:1989 +#: f.tools.cc:1964 msgid "Delete Collection" msgstr "Elimina collezione" -#: f.tools.cc:1990 +#: f.tools.cc:1965 #, c-format msgid "(%d images)" msgstr "(%d immagini)" -#: f.tools.cc:1991 +#: f.tools.cc:1966 #, c-format msgid "%d images remaining in cache" msgstr "%d immagini nella cache" -#: f.tools.cc:2025 f.tools.cc:2064 +#: f.tools.cc:2000 f.tools.cc:2039 msgid "New collection created" msgstr "Creata collezione nuova" -#: f.tools.cc:2031 +#: f.tools.cc:2006 msgid "gallery is empty" msgstr "La galleria è vuota" -#: f.tools.cc:2105 +#: f.tools.cc:2080 #, c-format msgid "delete %s ?" msgstr "Eliminare %s?" -#: f.tools.cc:2461 +#: f.tools.cc:2436 msgid "all collections" msgstr "ogni collezione" -#: f.tools.cc:2495 +#: f.tools.cc:2470 msgid "Move Collection" msgstr "Sposta collezione" -#: f.tools.cc:2497 +#: f.tools.cc:2472 msgid "collection name" msgstr "Nome collezione" -#: f.tools.cc:2500 +#: f.tools.cc:2475 msgid "old path segment" msgstr "Vecchia parte del percorso" -#: f.tools.cc:2503 +#: f.tools.cc:2478 msgid "new path segment" msgstr "Nuova parte del percorso" -#: f.tools.cc:2592 +#: f.tools.cc:2567 msgid "Replace Collection?" msgstr "Rimpiazzare collezione?" -#: f.tools.cc:2708 +#: f.tools.cc:2694 msgid "Press ESC to exit slide show" msgstr "Premi ESC per terminare lo slide show" -#: f.tools.cc:2709 -msgid "last versions" -msgstr "Ultime versioni" - -#: f.tools.cc:2713 +#: f.tools.cc:2696 msgid "instant" msgstr "Istantanea" -#: f.tools.cc:2714 +#: f.tools.cc:2697 msgid "fade-in" msgstr "Dissolvenza" -#: f.tools.cc:2715 +#: f.tools.cc:2698 msgid "roll-right" msgstr "Tenda sx-dx" -#: f.tools.cc:2716 +#: f.tools.cc:2699 msgid "roll-down" msgstr "Tenda su-giù" -#: f.tools.cc:2717 +#: f.tools.cc:2700 msgid "venetian" msgstr "Veneziana" -#: f.tools.cc:2718 +#: f.tools.cc:2701 msgid "grate" msgstr "Quadrettoni" -#: f.tools.cc:2719 +#: f.tools.cc:2702 msgid "rectangle" msgstr "Rettangolo" -#: f.tools.cc:2720 +#: f.tools.cc:2703 msgid "radar" msgstr "Radar" -#: f.tools.cc:2721 +#: f.tools.cc:2704 msgid "jaws" msgstr "Ganasce" -#: f.tools.cc:2722 +#: f.tools.cc:2705 msgid "ellipse" msgstr "Ellisse" -#: f.tools.cc:2723 +#: f.tools.cc:2706 msgid "raindrops" msgstr "Gocce" -#: f.tools.cc:2724 +#: f.tools.cc:2707 msgid "doubledoor" msgstr "Finestra doppia" -#: f.tools.cc:2725 +#: f.tools.cc:2708 msgid "rotate" msgstr "" -#: f.tools.cc:2787 -msgid "Pause List" -msgstr "Lista pause" - -#: f.tools.cc:2794 -msgid "transitions" -msgstr "Transizioni" - -#: f.tools.cc:2796 -msgid "seconds" -msgstr "secondi" - -#: f.tools.cc:2800 -msgid "Clip Limit (%)" +#: f.tools.cc:2739 +msgid "Clip Limit" msgstr "" -#: f.tools.cc:2802 -msgid "show captions" +#: f.tools.cc:2741 +msgid "Show Captions" msgstr "" -#: f.tools.cc:2805 -msgid "music file" +#: f.tools.cc:2744 +msgid "Music File" msgstr "File musicale" -#: f.tools.cc:2820 f.tools.cc:2828 f.tools.cc:2956 f.tools.cc:2979 -#: f.tools.cc:2992 +#: f.tools.cc:2749 +msgid "Customize:" +msgstr "Personalizza:" + +#: f.tools.cc:2750 +msgid "transitions" +msgstr "Transizioni" + +#: f.tools.cc:2751 +msgid "image files" +msgstr "" + +#: f.tools.cc:2759 f.tools.cc:2880 #, c-format msgid "%d images" msgstr "%d immagini" -#: f.tools.cc:2854 -msgid "no image files selected" -msgstr "Nessuna immagine selezionata" +#: f.tools.cc:2781 f.tools.cc:2847 f.tools.cc:2875 f.tools.cc:2937 +#: f.tools.cc:3033 f.tools.cc:3189 f.tools.cc:3236 f.tools.cc:3253 +#: f.tools.cc:3396 +msgid "invalid collection" +msgstr "collezione non valida" -#: f.tools.cc:2945 f.tools.cc:2968 +#: f.tools.cc:2860 msgid "open collection" msgstr "Apri collezione" -#: f.tools.cc:3013 +#: f.tools.cc:2900 msgid "Select music file or playlist" msgstr "Seleziona file musicale o playlist" -#: f.tools.cc:3046 -msgid "invalid collection" -msgstr "collezione non valida" - -#: f.tools.cc:3061 f.tools.cc:3131 -msgid "empty collection" -msgstr "collezione vuota" - -#: f.tools.cc:3167 +#: f.tools.cc:2917 msgid "select random (if 5+ enabled)" msgstr "" -#: f.tools.cc:3186 +#: f.tools.cc:2941 msgid "Transition Preferences" msgstr "Preferenze di transizione" -#: f.tools.cc:3196 +#: f.tools.cc:2950 msgid "transition" msgstr "Effetto di transizione" -#: f.tools.cc:3197 +#: f.tools.cc:2951 msgid "enabled" msgstr "Attiva" -#: f.tools.cc:3198 +#: f.tools.cc:2952 msgid "slowdown" msgstr "Rallenta" -#: f.tools.cc:3199 +#: f.tools.cc:2953 msgid "preference" msgstr "Preferenza" -#: f.tools.cc:4506 +#: f.tools.cc:3037 +msgid "Image Preferences" +msgstr "" + +#: f.tools.cc:3041 f.tools.cc:3090 f.tools.cc:3202 +msgid "Image File:" +msgstr "" + +#: f.tools.cc:3044 +msgid "Play tone" +msgstr "" + +#: f.tools.cc:3046 +msgid "Transition" +msgstr "" + +#: f.tools.cc:3051 f.tools.cc:3071 +msgid "+Seconds" +msgstr "" + +#: f.tools.cc:3053 +msgid "before zoom" +msgstr "" + +#: f.tools.cc:3056 +msgid "Zoom size %" +msgstr "" + +#: f.tools.cc:3059 +msgid "Steps" +msgstr "" + +#: f.tools.cc:3063 +msgid "Zoom center" +msgstr "" + +#: f.tools.cc:3073 +msgid "after zoom" +msgstr "" + +#: f.tools.cc:3075 +msgid "next" +msgstr "prossima" + +#: f.tools.cc:4805 msgid "base" msgstr "" -#: f.tools.cc:4508 +#: f.tools.cc:4807 msgid "adder" msgstr "" -#: f.tools.cc:4512 +#: f.tools.cc:4811 msgid "New Location" msgstr "Nuova destinazione:" -#: f.tools.cc:4517 +#: f.tools.cc:4816 msgid "New File Type" msgstr "" -#: f.tools.cc:4521 f.tools.cc:4529 +#: f.tools.cc:4820 f.tools.cc:4828 msgid "no change" msgstr "NON modificare" -#: f.tools.cc:4524 +#: f.tools.cc:4823 msgid "max. Width" msgstr "" -#: f.tools.cc:4527 fotoxx.h:1020 +#: f.tools.cc:4826 fotoxx.h:1025 msgid "Height" msgstr "Altezza" -#: f.tools.cc:4532 f.tools.cc:4905 +#: f.tools.cc:4831 f.tools.cc:5204 msgid "Delete Originals" msgstr "" -#: f.tools.cc:4533 f.tools.cc:4902 +#: f.tools.cc:4832 f.tools.cc:5201 msgid "Copy Metadata" msgstr "" -#: f.tools.cc:4534 f.tools.cc:4903 +#: f.tools.cc:4833 f.tools.cc:5202 msgid "Upright" msgstr "" -#: f.tools.cc:4626 +#: f.tools.cc:4925 msgid "file already exists" msgstr "file già esistente" -#: f.tools.cc:4634 +#: f.tools.cc:4933 msgid "file type not supported" msgstr "tipo di file non gestito" -#: f.tools.cc:4703 +#: f.tools.cc:5002 msgid "cannot create new file" msgstr "Errore in creazione del nuovo file" -#: f.tools.cc:4854 +#: f.tools.cc:5153 msgid "" "new name/base/adder unreasonable\n" " e.g. newname ### 100 10" msgstr "" -#: f.tools.cc:4877 +#: f.tools.cc:5176 #, c-format msgid "max. size %d x %d is not reasonable" msgstr "Dimensioni massime %d x %d non ragionevoli" -#: f.tools.cc:4896 +#: f.tools.cc:5195 #, c-format msgid "Convert %d image files" msgstr "" -#: f.tools.cc:4897 +#: f.tools.cc:5196 msgid "Rename to" msgstr "" -#: f.tools.cc:4898 +#: f.tools.cc:5197 msgid "Convert to" msgstr "" -#: f.tools.cc:4899 +#: f.tools.cc:5198 msgid "Resize within" msgstr "" -#: f.tools.cc:4900 +#: f.tools.cc:5199 msgid "Output to" msgstr "" -#: f.tools.cc:4906 +#: f.tools.cc:5205 msgid "PROCEED?" -msgstr "" +msgstr "PROSEGUO?" -#: f.tools.cc:4938 +#: f.tools.cc:5237 msgid "Batch Convert RAW Files" msgstr "Converti file RAW in massa" -#: f.tools.cc:4969 +#: f.tools.cc:5268 msgid "output file type" msgstr "Tipo file d'uscita" -#: f.tools.cc:4981 +#: f.tools.cc:5280 msgid "white balance" msgstr "bilanciamento del bianco" -#: f.tools.cc:4982 +#: f.tools.cc:5281 msgid "interpolation" msgstr "interpolazione" -#: f.tools.cc:4983 +#: f.tools.cc:5282 msgid "color space" msgstr "spazio di colore" -#: f.tools.cc:4984 +#: f.tools.cc:5283 msgid "gamma curve" msgstr "curva del gamma" -#: f.tools.cc:4987 +#: f.tools.cc:5286 msgid "camera" msgstr "fotocamera" -#: f.tools.cc:4988 +#: f.tools.cc:5287 msgid "fixed" msgstr "fissa" -#: f.tools.cc:4989 +#: f.tools.cc:5288 msgid "calculated" msgstr "calcolata" -#: f.tools.cc:5006 +#: f.tools.cc:5305 msgid "default" msgstr "Standard" -#: f.tools.cc:5012 +#: f.tools.cc:5311 msgid "defaults" msgstr "Standard" -#: f.tools.cc:5526 +#: f.tools.cc:5834 msgid "x-spacing" msgstr "Passo X:" -#: f.tools.cc:5527 +#: f.tools.cc:5835 msgid "x-count" msgstr "Num. barre X:" -#: f.tools.cc:5528 +#: f.tools.cc:5836 msgid "x-enable" msgstr "Abilita X:" -#: f.tools.cc:5534 +#: f.tools.cc:5842 msgid "y-spacing" msgstr "Passo Y:" -#: f.tools.cc:5535 +#: f.tools.cc:5843 msgid "y-count" msgstr "Num. righe Y:" -#: f.tools.cc:5536 +#: f.tools.cc:5844 msgid "y-enable" msgstr "Abilita Y:" -#: f.tools.cc:5984 +#: f.tools.cc:6292 msgid "Darkest and Brightest Pixels" msgstr "Cerca pixel scuri e chiari" -#: f.tools.cc:6007 +#: f.tools.cc:6315 msgid "Dark Limit" msgstr "Più scuri di..." -#: f.tools.cc:6008 +#: f.tools.cc:6316 msgid "Bright Limit" msgstr "Più chiari di..." -#: f.tools.cc:6115 +#: f.tools.cc:6423 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3707,31 +3761,31 @@ "Le barre dovrebbero mostrare una gradualità\n" "in tutta la loro estensione." -#: f.tools.cc:6272 +#: f.tools.cc:6580 msgid "Available Translations" msgstr "Traduzioni disponibili" -#: f.tools.cc:6276 +#: f.tools.cc:6584 msgid "Set Language" msgstr "Cambia lingua" -#: f.tools.cc:6364 +#: f.tools.cc:6672 msgid "Make Launcher" msgstr "Crea lanciatore" -#: fotoxx-14.03.cc:312 +#: fotoxx-14.04.cc:309 msgid "Tab F: image file view/edit" msgstr "Linguetta F: vedi/modifica immagine" -#: fotoxx-14.03.cc:321 +#: fotoxx-14.04.cc:318 msgid "Tab G: image gallery" msgstr "Linguetta G: galleria immagini" -#: fotoxx-14.03.cc:330 +#: fotoxx-14.04.cc:327 msgid "Tab W: world map" msgstr "Linguetta W: mappa mondiale" -#: fotoxx-14.03.cc:447 +#: fotoxx-14.04.cc:441 msgid "" "First time Fotoxx startup. \n" "Latest version: http://www.kornelix.com/fotoxx \n" @@ -3741,59 +3795,63 @@ "Ultima versione: http://www.kornelix.com/fotoxx \n" "Sincronizza file verrà avviata (può impiegare tempo) \n" -#: fotoxx-14.03.cc:492 +#: fotoxx-14.04.cc:488 msgid "Please install missing programs:" msgstr "Installa i programmi mancanti:" -#: fotoxx-14.03.cc:901 +#: fotoxx-14.04.cc:904 msgid "(reduced)" msgstr "(ridotto)" -#: fotoxx-14.03.cc:902 +#: fotoxx-14.04.cc:905 msgid "area active" msgstr "area attiva" -#: fotoxx-14.03.cc:903 +#: fotoxx-14.04.cc:906 msgid "dialog open" msgstr "dialogo aperto" -#: fotoxx-14.03.cc:904 +#: fotoxx-14.04.cc:907 msgid "function busy" msgstr "funzione attiva" -#: fotoxx-14.03.cc:905 +#: fotoxx-14.04.cc:908 msgid "file index busy" msgstr "" -#: fotoxx-14.03.cc:906 +#: fotoxx-14.04.cc:909 msgid "menu locked" msgstr "menù bloccato" -#: fotoxx-14.03.cc:953 +#: fotoxx-14.04.cc:956 msgid "edits" msgstr "modifiche" -#: fotoxx-14.03.cc:999 +#: fotoxx-14.04.cc:1002 msgid "Kill active dialog?" msgstr "Terminare il dialogo corrente?" -#: fotoxx-14.03.cc:2768 +#: fotoxx-14.04.cc:1082 +msgid "Location from World Map" +msgstr "Luogo da mappa mondiale" + +#: fotoxx-14.04.cc:2792 msgid "Exceed 50 anchor points" msgstr "Superati 50 punti di ancoraggio" -#: fotoxx-14.03.cc:2951 +#: fotoxx-14.04.cc:2975 msgid "load curve from a file" msgstr "carica curva da file" -#: fotoxx-14.03.cc:3026 +#: fotoxx-14.04.cc:3050 msgid "save curve to a file" msgstr "salva curva in un file" -#: fotoxx-14.03.cc:3101 +#: fotoxx-14.04.cc:3125 msgid "Too many edits, please save image" msgstr "Troppe modifiche: salva l'immagine" -#: fotoxx-14.03.cc:3116 +#: fotoxx-14.04.cc:3140 msgid "" "Select area not active.\n" "Continue?" @@ -3801,288 +3859,292 @@ "Selezione di area non attiva.\n" "Continuare?" -#: fotoxx-14.03.cc:3503 +#: fotoxx-14.04.cc:3527 msgid "This action will discard changes\n" msgstr "Questa azione annullerà le modifiche\n" -#: fotoxx-14.03.cc:3504 fotoxx.h:1026 +#: fotoxx-14.04.cc:3528 fotoxx.h:1031 msgid "Keep" msgstr "Mantieni modifiche" -#: fotoxx-14.03.cc:3505 +#: fotoxx-14.04.cc:3529 msgid "Discard" msgstr "Perdi modifiche" -#: fotoxx-14.03.cc:3519 fotoxx-14.03.cc:3539 +#: fotoxx-14.04.cc:3543 fotoxx-14.04.cc:3563 msgid "prior function active" msgstr "funzione precedente attiva" -#: fotoxx.h:983 +#: fotoxx.h:988 msgid "Add" msgstr "Aggiungi" -#: fotoxx.h:984 +#: fotoxx.h:989 msgid "Add All" msgstr "Aggiungi tutto" -#: fotoxx.h:986 +#: fotoxx.h:991 msgid "Amount" msgstr "Quantità" -#: fotoxx.h:987 +#: fotoxx.h:992 msgid "Angle" msgstr "Angolo:" -#: fotoxx.h:988 +#: fotoxx.h:993 msgid "Apply" msgstr "Applica" -#: fotoxx.h:989 +#: fotoxx.h:994 msgid "Autocomplete" msgstr "Completa automaticamente" -#: fotoxx.h:990 +#: fotoxx.h:995 msgid "Black" msgstr "Nero" -#: fotoxx.h:991 +#: fotoxx.h:996 msgid "Blend Width" msgstr "Larghezza di sfumatura" -#: fotoxx.h:994 +#: fotoxx.h:999 msgid "Browse" msgstr "Sfoglia" -#: fotoxx.h:995 +#: fotoxx.h:1000 msgid "Cancel" msgstr "Annulla" -#: fotoxx.h:996 +#: fotoxx.h:1001 msgid "center" msgstr "centro" -#: fotoxx.h:997 +#: fotoxx.h:1002 msgid "Choose" msgstr "Scegli" -#: fotoxx.h:998 +#: fotoxx.h:1003 msgid "Clear" msgstr "Pulisci" -#: fotoxx.h:1002 +#: fotoxx.h:1007 msgid "Create" msgstr "" -#: fotoxx.h:1003 +#: fotoxx.h:1008 msgid "Curve File:" msgstr "File di curve:" -#: fotoxx.h:1004 +#: fotoxx.h:1009 msgid "Cut" msgstr "Taglia" -#: fotoxx.h:1005 +#: fotoxx.h:1010 msgid "Delete" msgstr "Elimina" -#: fotoxx.h:1007 -msgid "Bdist" -msgstr "LDist" +#: fotoxx.h:1012 +msgid "Dist" +msgstr "" -#: fotoxx.h:1008 +#: fotoxx.h:1013 msgid "Done" msgstr "Fatto" -#: fotoxx.h:1009 +#: fotoxx.h:1014 msgid "edge" msgstr "bordo:" -#: fotoxx.h:1010 +#: fotoxx.h:1015 msgid "Edit" msgstr "Modifica" -#: fotoxx.h:1012 +#: fotoxx.h:1017 msgid "Erase" msgstr "Esegui cancellatura" -#: fotoxx.h:1013 +#: fotoxx.h:1018 msgid "Fetch" msgstr "Prendi" -#: fotoxx.h:1014 +#: fotoxx.h:1019 msgid "Find" msgstr "Cerca" -#: fotoxx.h:1015 +#: fotoxx.h:1020 msgid "Finish" msgstr "Termina" -#: fotoxx.h:1016 +#: fotoxx.h:1021 msgid "Font" msgstr "Font" -#: fotoxx.h:1017 +#: fotoxx.h:1022 msgid "Geotags" msgstr "Geotags" -#: fotoxx.h:1019 +#: fotoxx.h:1024 msgid "Grid" msgstr "Griglia" -#: fotoxx.h:1023 +#: fotoxx.h:1028 msgid "Images" msgstr "Immagini" -#: fotoxx.h:1024 +#: fotoxx.h:1029 msgid "Insert" msgstr "Incolla" -#: fotoxx.h:1027 +#: fotoxx.h:1032 msgid "limit" msgstr "limite" -#: fotoxx.h:1028 +#: fotoxx.h:1033 msgid "Make" msgstr "Produci" -#: fotoxx.h:1030 +#: fotoxx.h:1035 msgid "Map" msgstr "Mappa" -#: fotoxx.h:1031 +#: fotoxx.h:1036 msgid "Max" msgstr "Massimo" -#: fotoxx.h:1032 +#: fotoxx.h:1037 msgid "Negative" msgstr "Negativo" -#: fotoxx.h:1033 +#: fotoxx.h:1038 msgid "New" msgstr "Nuovo" -#: fotoxx.h:1035 zfuncs.cc:8589 +#: fotoxx.h:1040 zfuncs.cc:8589 msgid "No" msgstr "No" -#: fotoxx.h:1036 +#: fotoxx.h:1041 msgid "no images" msgstr "nessuna immagine" -#: fotoxx.h:1037 +#: fotoxx.h:1042 msgid "no selection" msgstr "nessuna selezione" -#: fotoxx.h:1038 +#: fotoxx.h:1043 msgid "OK" msgstr "Ok" -#: fotoxx.h:1040 +#: fotoxx.h:1045 msgid "Open RAW File" msgstr "Apri file RAW" -#: fotoxx.h:1042 +#: fotoxx.h:1047 msgid "Pause" msgstr "Sospendi" -#: fotoxx.h:1043 +#: fotoxx.h:1048 msgid "Percent" msgstr "Percentuale" -#: fotoxx.h:1045 +#: fotoxx.h:1050 msgid "Presets" msgstr "Fisse: " -#: fotoxx.h:1047 +#: fotoxx.h:1052 msgid "Proceed" msgstr "Prosegui" -#: fotoxx.h:1049 +#: fotoxx.h:1054 msgid "range" msgstr "intervallo" -#: fotoxx.h:1052 +#: fotoxx.h:1057 msgid "Reduce" msgstr "Riduci" -#: fotoxx.h:1053 +#: fotoxx.h:1058 msgid "Remove" msgstr "Elimina" -#: fotoxx.h:1055 +#: fotoxx.h:1060 msgid "Reset" msgstr "Azzera" -#: fotoxx.h:1056 +#: fotoxx.h:1061 msgid "Rotate" msgstr "Ruota" -#: fotoxx.h:1058 +#: fotoxx.h:1063 msgid "Unknown file type, save as tiff/jpeg/png to edit" msgstr "Tipo di file sconosciuto. Salvarlo come TIFF/JPEG/PNG per modificarlo" -#: fotoxx.h:1059 +#: fotoxx.h:1064 msgid "Search" msgstr "Ricerca" -#: fotoxx.h:1063 +#: fotoxx.h:1065 +msgid "Seconds" +msgstr "Secondi" + +#: fotoxx.h:1069 msgid "Size" msgstr "Dimensione" -#: fotoxx.h:1064 +#: fotoxx.h:1070 msgid "Start" msgstr "Inizio" -#: fotoxx.h:1065 +#: fotoxx.h:1071 msgid "Strength" msgstr "Intensità" -#: fotoxx.h:1066 +#: fotoxx.h:1072 msgid "Threshold" msgstr "Soglia" -#: fotoxx.h:1067 +#: fotoxx.h:1073 #, c-format msgid "exceed %d files" msgstr "più di %d file" -#: fotoxx.h:1069 +#: fotoxx.h:1075 msgid "Trim" msgstr "Ritaglia" -#: fotoxx.h:1070 +#: fotoxx.h:1076 msgid "Undo All" msgstr "Annulla tutto" -#: fotoxx.h:1071 +#: fotoxx.h:1077 msgid "Undo Last" msgstr "Annulla ultimo" -#: fotoxx.h:1073 +#: fotoxx.h:1079 msgid "Unfinish" msgstr "Ricomincia" -#: fotoxx.h:1075 +#: fotoxx.h:1081 msgid "View" msgstr "Vista" -#: fotoxx.h:1076 +#: fotoxx.h:1082 msgid "Web" msgstr "Web" -#: fotoxx.h:1077 +#: fotoxx.h:1083 msgid "White" msgstr "Bianco" -#: fotoxx.h:1079 +#: fotoxx.h:1085 msgid "x-offset" msgstr "Origine X:" -#: fotoxx.h:1080 +#: fotoxx.h:1086 msgid "y-offset" msgstr "Origine Y:" -#: fotoxx.h:1081 zfuncs.cc:8589 +#: fotoxx.h:1087 zfuncs.cc:8589 msgid "Yes" msgstr "Si" @@ -4237,1025 +4299,5 @@ msgid "add parameter" msgstr "Aggiungi parametro" -#~ msgid "no top image directory defined" -#~ msgstr "Nessuna cartella d'immagini principale è definita" - -#~ msgid "Synch Files, Settings, Collections, Batch Funcs ..." -#~ msgstr "Sincronizza, Impostazioni, Collezioni, funzioni di massa..." - -#~ msgid "Synchronize Files" -#~ msgstr "Sincronizza file" - -#~ msgid "Batch Rename" -#~ msgstr "Rinomina più immagini" - -#~ msgid "Rename multiple image files" -#~ msgstr "Rinomina file multipli" - -#~ msgid "Convert resize, move multiple files" -#~ msgstr "Converti/Modifica/Sposta in massa" - -#~ msgid "" -#~ "Metadata index is missing.\n" -#~ "Use Tools > Synchronize Files." -#~ msgstr "" -#~ "Manca l'indice dei metadati.\n" -#~ "Usa menù Strumenti>Sincronizza file." - -#~ msgid "low color" -#~ msgstr "Bassa saturazione" - -#~ msgid "warmer" -#~ msgstr "Più caldo" - -#~ msgid "dark areas" -#~ msgstr "Aree scure" - -#~ msgid "cooler" -#~ msgstr "Più freddo" - -#~ msgid "bright" -#~ msgstr "Chiare" - -#~ msgid "click for white balance or black level" -#~ msgstr "Cliccare per il bilanciamento del bianco/livello del nero" - -#~ msgid "" -#~ "Synchronize Files makes gallery windows fast \n" -#~ "and enables metadata functions to work correctly.\n" -#~ msgstr "" -#~ "Sincronizza file rende veloce la galleria \n" -#~ "e abilita le funzioni di metadata.\n" - -#~ msgid "top image directory is invalid" -#~ msgstr "Cartella d'immagini principale non valida" - -#~ msgid "thumbnail directory is invalid" -#~ msgstr "cartella delle miniature non valida" - -#~ msgid "no search index file is present" -#~ msgstr "Non esiste un file indice per la ricerca" - -#~ msgid "last file sync time is unknown" -#~ msgstr "Data di ultima sincronizzazione sconosciuta" - -#~ msgid "new/modified files are present" -#~ msgstr "Sono presenti file nuovi o modificati" - -#~ msgid "file sync disabled" -#~ msgstr "Sincronizza file disabilitata" - -#~ msgid "file sync not needed" -#~ msgstr "Sincronizzazione non necessaria" - -#~ msgid "Use file sync function (recommended)" -#~ msgstr "Usa Sincronizza file (raccomandato)" - -#~ msgid "(if NO, metadata functions are disabled)" -#~ msgstr "(se NO, le funzioni sui metadati sono disabilitate)" - -#~ msgid "Thumbnail Options:" -#~ msgstr "Opzioni miniature:" - -#~ msgid "None (galleries are slow)" -#~ msgstr "Nessuna: le gallerie saranno lente" - -#~ msgid "Use hidden directories with images" -#~ msgstr "Usa cartelle nascoste con immagini" - -#~ msgid "Use Directory" -#~ msgstr "Usa la cartella" - -#~ msgid "Initialize Everything" -#~ msgstr "Prepara tutto" - -#~ msgid "File sync is necessary. Cancel anyway?" -#~ msgstr "Sincronizza file è richiesta. Annullare ugualmente?" - -#~ msgid "directory is invalid" -#~ msgstr "Directory non valida" - -#~ msgid "select a thumbnail option" -#~ msgstr "Seleziona opzione per miniature" - -#~ msgid "thumbnail directory cannot be under top directory" -#~ msgstr "La cartella miniature non può stare sotto la radice" - -#~ msgid "Synchronize Files (may need some time)" -#~ msgstr "Sincronizza file (richiede tempo)" - -#~ msgid "delete all thumbnails" -#~ msgstr "Elimina tutte le miniature" - -#~ msgid "delete orphan thumbnails" -#~ msgstr "Elimina miniature orfane" - -#~ msgid "%d orphan thumbnails deleted \n" -#~ msgstr "%d miniature orfane eliminate \n" - -#~ msgid "create missing and update stale thumbnails" -#~ msgstr "Crea e aggiorna le miniature" - -#~ msgid "%d thumbnails created, %d errors \n" -#~ msgstr "%d miniature create, con %d errori \n" - -#~ msgid "no search index file is in use" -#~ msgstr "nessun file di indice in uso" - -#~ msgid "rebuild search index" -#~ msgstr "ricostruire indice di ricerca" - -#~ msgid "%d current index records found \n" -#~ msgstr "%d registrazioni nell'indice \n" - -#~ msgid "find all image files and build index records" -#~ msgstr "trova tutte le immagini e costruisci l'indice" - -#~ msgid "too many image files" -#~ msgstr "troppi file di immagini" - -#~ msgid "found %d image files \n" -#~ msgstr "trovati %d file di immagine \n" - -#~ msgid "merging old and new index records" -#~ msgstr "incorporo indici vecchi e nuovi" - -#~ msgid "files found in current index recs: %d \n" -#~ msgstr "file trovati nell'indice: %d \n" - -#~ msgid "KILLED" -#~ msgstr "TERMINATO" - -#~ msgid "Show hidden files" -#~ msgstr "Mostra file nascosti" - -#~ msgid "new base name" -#~ msgstr "Nuovo nome" - -#~ msgid "starting sequence" -#~ msgstr "inizio sequenza" - -#~ msgid "increment" -#~ msgstr "incremento" - -#~ msgid "new file already exists:" -#~ msgstr "Nuovo file già esistente:" - -#~ msgid "Rename failed:" -#~ msgstr "Rinominazione fallita:" - -#~ msgid "base name / sequence / increment not reasonable" -#~ msgstr "nome principale / sequenza / incremento non ragionevole" - -#~ msgid "new file type" -#~ msgstr "Nuovo tipo di file" - -#~ msgid "max. width" -#~ msgstr "max. largh." - -#~ msgid "overwrite" -#~ msgstr "Sovrascrivi" - -#~ msgid "copy to location" -#~ msgstr "Copia altrove" - -#~ msgid "move to location" -#~ msgstr "Sposta altrove" - -#~ msgid "delete metadata" -#~ msgstr "Elimina metadati" - -#~ msgid "upright rotation" -#~ msgstr "Correggi orientamento" - -#~ msgid "overwrite files?" -#~ msgstr "Sovrascrivere i file?" - -#~ msgid "overwrite files? (max. %d x %d)" -#~ msgstr "Sovrascrivere i file? (max. %d x %d)" - -#~ msgid "" -#~ "copy files? \n" -#~ " to location %s" -#~ msgstr "" -#~ "Copiare i file? \n" -#~ " nella cartella %s" - -#~ msgid "" -#~ "copy files? (max. %d x %d) \n" -#~ " to location %s" -#~ msgstr "" -#~ "Copiare i file? (max. %d x %d) \n" -#~ " nella posizione %s" - -#~ msgid "" -#~ "\n" -#~ " and delete originals" -#~ msgstr "" -#~ "\n" -#~ " e cancellare originali" - -#~ msgid "edits: %d" -#~ msgstr "modifiche: %d" - -#~ msgid "file sync busy" -#~ msgstr "sincronizza attivo" - -#~ msgid "file sync active" -#~ msgstr "sincronizza file attivo" - -#~ msgid "search index missing" -#~ msgstr "indice di ricerca mancante" - -#~ msgid "open" -#~ msgstr "Apri" - -#~ msgid "choose" -#~ msgstr "Scegli" - -#~ msgid "open folder" -#~ msgstr "Apri cartella" - -#~ msgid "Adjust White Balance" -#~ msgstr "Bilanciamento del bianco" - -#~ msgid "Click white or gray image location" -#~ msgstr "Clicca un punto [che dovrebbe essere] bianco o grigio" - -#~ msgid "reduce" -#~ msgstr "Riduci" - -#~ msgid "outline threshold" -#~ msgstr "Soglia del contorno" - -#~ msgid "outline width" -#~ msgstr "Spessore contorno" - -#~ msgid "image brightness" -#~ msgstr "Luminosità immagine" - -#~ msgid "portrait" -#~ msgstr "Ritratto" - -#~ msgid "landscape" -#~ msgstr "Paesaggio" - -#~ msgid "customize" -#~ msgstr "Personalizza" - -#~ msgid "Brightness/Contrast/Color" -#~ msgstr "Luminosità/Contrasto/Colore" - -#~ msgid "Adjust contrast using a gamma curve" -#~ msgstr "Regola contrasto con curva gamma" - -#~ msgid "Gamma Curves" -#~ msgstr "Curve Gamma" - -#~ msgid "Click on a white/gray area to fix color tint" -#~ msgstr "Clicca su un'area bianca o grigia per correggere la tinta" - -#~ msgid "White Balance" -#~ msgstr "Bilanciamento del bianco" - -#~ msgid "Brightness/Color" -#~ msgstr "Luminosità e colore" - -#~ msgid "edge detection" -#~ msgstr "Riconoscimento dei bordi" - -#~ msgid "cycles" -#~ msgstr "Cicli" - -#~ msgid "small-steps" -#~ msgstr "Controllo fine" - -#~ msgid "Saturation" -#~ msgstr "Saturazione" - -#~ msgid " reset 1 " -#~ msgstr "Azzera" - -#~ msgid "reset all" -#~ msgstr "Azzera tutte" - -#~ msgid "previous" -#~ msgstr "Precedente" - -#~ msgid "adjust image gamma" -#~ msgstr "Regola gamma" - -#~ msgid "arrow keys" -#~ msgstr "Manuale: tasti freccia" - -#~ msgid "histogram" -#~ msgstr "Istogramma" - -#~ msgid "Add standard bias" -#~ msgstr "Aggiunta bias standard" - -#~ msgid "Load CMYK parameters" -#~ msgstr "Carica parametri CMYK" - -#~ msgid "CMYK parameters file" -#~ msgstr "File di parametri CMYK" - -#~ msgid "Save CMYK parameters" -#~ msgstr "Salva parametri CMYK" - -#~ msgid "Drag right edge with mouse" -#~ msgstr "Trascinare il lato destro con il mouse" - -#~ msgid "Rotate Image" -#~ msgstr "Ruota immagine" - -#~ msgid "degrees" -#~ msgstr "Gradi" - -#~ msgid "Drag middle to move, drag corners to resize." -#~ msgstr "Trascina il centro per spostare, e i lati per ridimensionare." - -#~ msgid "Trim/Crop" -#~ msgstr "Ritaglia" - -#~ msgid "Rotate by any angle" -#~ msgstr "Ruota con angolo libero" - -#~ msgid "Cut off unwanted margins" -#~ msgstr "Ritaglia i margini non voluti" - -#~ msgid "Flatten Brightness" -#~ msgstr "Normalizza luminosità" - -#~ msgid "Flatten brightness distribution" -#~ msgstr "Appiattisci la distribuzione della luce" - -#~ msgid "Expand Brightness" -#~ msgstr "Espandi luminosità" - -#~ msgid "Expand brightness range" -#~ msgstr "Espandi la gamma di luminosità" - -#~ msgid "Flatten Brightness Distribution" -#~ msgstr "Distribuisci luminosità" - -#~ msgid "Expand Brightness Range" -#~ msgstr "Espandi escursione di luminosità" - -#~ msgid "bright pixels" -#~ msgstr "Pixel chiari" - -#~ msgid "Warn Overwrite Original" -#~ msgstr "Avverti in sovrascrittura" - -#~ msgid "" -#~ "Right-click collection thumbnails to \n" -#~ "cut/copy to cache, paste cache, remove." -#~ msgstr "" -#~ "Cliccare col destro le miniature per \n" -#~ "tagliare/copiare verso la cache, incollare, rimuovere." - -#~ msgid "Start a new collection" -#~ msgstr "Iniziare una nuova collezione" - -#~ msgid "Turn Image" -#~ msgstr "Ruota immagine" - -#~ msgid "Turn" -#~ msgstr "Ruota +/- 90 gradi" - -#~ msgid "Adjust Brightness and Color" -#~ msgstr "Regola luminosità e colore" - -#~ msgid "Cartoon Parameters" -#~ msgstr "Parametri Cartoon" - -#~ msgid "Contrast Span" -#~ msgstr "Larghezza contrasto" - -#~ msgid "Contrast Spread" -#~ msgstr "Dispersione contrasto" - -#~ msgid "Contrast Saturation" -#~ msgstr "Saturazione contrasto" - -#~ msgid "Use buttons or drag right edge with mouse" -#~ msgstr "Usa i bottoni o trascina il margine destro con il mouse" - -#~ msgid "invert" -#~ msgstr "Inverti" - -#~ msgid "Rotate Right" -#~ msgstr "Ruota a destra" - -#~ msgid "Rotate Right 90 degrees" -#~ msgstr "Ruota 90° a destra" - -#~ msgid "Rotate Left" -#~ msgstr "Ruota a sinistra" - -#~ msgid "Rotate Left 90 degrees" -#~ msgstr "Ruota 90° a sinistra" - -#~ msgid "Cartoon" -#~ msgstr "Cartone animato" - -#~ msgid "Convert into a cartoon drawing" -#~ msgstr "Applica effetto di cartone animato" - -#~ msgid "new gallery from tab F" -#~ msgstr "Nuova galleria da pagina F" - -#~ msgid "outlines" -#~ msgstr "Contorni" - -#~ msgid "pencil" -#~ msgstr "Matita" - -#~ msgid "chalk" -#~ msgstr "Gessetto" - -#~ msgid "Add Image Outlines" -#~ msgstr "Aggiunta contorni" - -#~ msgid "Copy to" -#~ msgstr "Copia in" - -#~ msgid "Move to" -#~ msgstr "Sposta in" - -#~ msgid "Print" -#~ msgstr "Stampa" - -#~ msgid "insert" -#~ msgstr "Inserisci" - -#~ msgid "add all" -#~ msgstr "Aggiungi tutti" - -#~ msgid "Open Recent File" -#~ msgstr "Immagini recenti" - -#~ msgid "Report memory and CPU usage" -#~ msgstr "Mostra uso di memoria e CPU nel terminale" - -#~ msgid "Add tags to multiple images" -#~ msgstr "Aggiungi etichette a più immagini" - -#~ msgid "Batch Add Tags" -#~ msgstr "Aggiungi etichette in blocco" - -#~ msgid "Batch Delete Tag" -#~ msgstr "Cancellazione in blocco di etichette" - -#~ msgid "Delete a tag from multiple images" -#~ msgstr "Elimina etichetta da più immagini" - -#~ msgid "Convert to charcoal or chalk drawing" -#~ msgstr "Applica un effetto di tipo gessetto" - -#~ msgid "Outlines" -#~ msgstr "Contorni" - -#~ msgid "Select Area lines etc." -#~ msgstr "Cambia il colore usato per mostrare le aree (selezione)" - -#~ msgid "tag to remove" -#~ msgstr "Etichetta da rimuovere" - -#~ msgid "optional replacement" -#~ msgstr "Sostituzione opzionale" - -#~ msgid "search all files" -#~ msgstr "Cerca in tutti i file" - -#~ msgid "no tag specified" -#~ msgstr "Nessuna etichetta specificata" - -#~ msgid "specify tag" -#~ msgstr "Specifica etichetta" - -#~ msgid "Start new collection" -#~ msgstr "Crea una collezione nuova" - -#~ msgid "Choose a collection to view/edit" -#~ msgstr "Scegli una collezione da vedere/editare" - -#~ msgid "Select images to add/move/remove" -#~ msgstr "Seleziona immagini da aggiungere/spostare/cancellare" - -#~ msgid "" -#~ "To insert the selected images, press \n" -#~ "[Insert] and click gallery position. \n" -#~ "To remove the images, press [Delete]" -#~ msgstr "" -#~ "Per inserire le immagini selezionate, premi \n" -#~ "[Inserisci] e clicca la posizione in galleria. \n" -#~ "Per togliere le immagini, premi [Elimina]" - -#~ msgid "Selected Images" -#~ msgstr "Immagini selezionate" - -#~ msgid "Choose a collection first" -#~ msgstr "Seleziona prima una collezione" - -#~ msgid "insert images at click position" -#~ msgstr "Inserisci immagini alla posizione di clic" - -#~ msgid "remove the images" -#~ msgstr "Togli le immagini" - -#~ msgid "%d images selected" -#~ msgstr "%d immagini selezionate" - -#~ msgid "absolute" -#~ msgstr "Assoluto" - -#~ msgid "" -#~ "Enter text, click/drag on image.\n" -#~ "Right click to remove" -#~ msgstr "" -#~ "Imposta il testo e clicca/trascina nell'immagine.\n" -#~ "Clic destro per rimuovere" - -#~ msgid "contrast" -#~ msgstr "Contrasto" - -#~ msgid "Drag Mouse" -#~ msgstr "Trascinamento" - -#~ msgid "Magnified Scroll" -#~ msgstr "Zoom+Scorri" - -#~ msgid "Monitor Check" -#~ msgstr "Verifica schermo" - -#~ msgid "Retouch2" -#~ msgstr "Ritocco2" - -#~ msgid "Art" -#~ msgstr "Arte" - -#~ msgid "Foreground Color" -#~ msgstr "Colore principale" - -#~ msgid "Selected Images Action" -#~ msgstr "Azioni sulle immagini selezionate" - -#~ msgid "Commit" -#~ msgstr "Esegui" - -#~ msgid "select by mouse" -#~ msgstr "Pennello:" - -#~ msgid "match color" -#~ msgstr "% colore simile:" - -#~ msgid "cannot open .tiff and .info files" -#~ msgstr "impossibile aprire i file .tiff e .info" - -#~ msgid "The target file already exists" -#~ msgstr "Il file di destinazione esiste già" - -#~ msgid "TIFF write failure" -#~ msgstr "Scrittura TIFF fallita" - -#~ msgid "filespec too long:" -#~ msgstr "Nome file troppo lungo:" - -#~ msgid "Batch Convert/Resize/Export" -#~ msgstr "Converti/ridimensiona/esporta in blocco" - -#~ msgid "new max. width" -#~ msgstr "Nuova larghezza max:" - -#~ msgid "export to location" -#~ msgstr "Esporta altrove" - -#~ msgid "Select RAW files to convert" -#~ msgstr "Scegli i file RAW da convertire" - -#~ msgid "Choose file type" -#~ msgstr "Scegli il tipo di file" - -#~ msgid "Quit" -#~ msgstr "Uscita" - -#~ msgid "Current Topic" -#~ msgstr "Argomento corrente" - -#~ msgid "add image to collection: %s" -#~ msgstr "Aggiungi immagine alla collezione %s" - -#~ msgid "select files to rename" -#~ msgstr "scegli i file da rinominare" - -#~ msgid "smaller" -#~ msgstr "Riduci" - -#~ msgid "bigger" -#~ msgstr "Aumenta" - -#~ msgid "too many saved files" -#~ msgstr "Troppi file da ricordare" - -#~ msgid "insert saved images here" -#~ msgstr "Inserisci qui le immagini ricordate" - -#~ msgid "remove and save image" -#~ msgstr "Rimuovi immagine e ricordala" - -#~ msgid "remove image from collection" -#~ msgstr "Rimuovi immagine dalla collezione" - -#~ msgid "add image to collection" -#~ msgstr "Aggiungi immagine alla collezione" - -#~ msgid "View Collection" -#~ msgstr "Vista collezione" - -#~ msgid "Edit Collection" -#~ msgstr "Modifica collezione" - -#~ msgid "Action:" -#~ msgstr "Azione:" - -#~ msgid "Editing:" -#~ msgstr "Modifica di:" - -#~ msgid "View a collection" -#~ msgstr "Visualizza una collezione" - -#~ msgid "Edit a collection" -#~ msgstr "Modifica una collezione" - -#~ msgid "" -#~ "When editing a collection, right-click \n" -#~ "an image or thumbnail to add or remove." -#~ msgstr "" -#~ "Nella gestione di collezioni, usa un clic destro \n" -#~ "su immagini e miniature per aggiungere o eliminare." - -#~ msgid "Edit Tags" -#~ msgstr "Modifica etichette" - -#~ msgid "help file not found: %s" -#~ msgstr "File di aiuto non trovato: %s" - -#~ msgid "" -#~ "Rename failed: \n" -#~ " %s" -#~ msgstr "" -#~ "Rinominazione fallita: \n" -#~ " %s" - -#~ msgid "top hat filter by color" -#~ msgstr "Filtro \"top hat\" per colore" - -#~ msgid "set median brightness by color" -#~ msgstr "Impostazione luminosità media per colore" - -#~ msgid "flatten outliers by color (2)" -#~ msgstr "Appiattimento estremi per colore (2)" - -#~ msgid "flatten outliers by color (1)" -#~ msgstr "Appiattimento estremi per colore (1)" - -#~ msgid "Soften" -#~ msgstr "Morbidezza" - -#~ msgid "" -#~ "Press the reduce button to reduce noise \n" -#~ "in small steps. Use [Undo] to start over." -#~ msgstr "" -#~ "Premi il bottone [Riduci] per ridurre il rumore \n" -#~ "poco per volta. Usa [Annulla] per ricominciare." - -#~ msgid "List of keyboard shortcuts" -#~ msgstr "Mostra una lista di scorciatoie da tastiera" - -#~ msgid "select all matching colors within mouse:" -#~ msgstr "seleziona tutti i colori col mouse" - -#~ msgid "replace" -#~ msgstr "rimpiazza" - -#~ msgid "" -#~ "Outline\n" -#~ " Width" -#~ msgstr "Spessore contorno:" - -#~ msgid "no bookmarks defined" -#~ msgstr "Nessun segnalibro definito" - -#~ msgid "Edit list of bookmarked images" -#~ msgstr "Modifica lista di segnalibri" - -#~ msgid "" -#~ "new keyboard shortcuts installed \n" -#~ "prior renamed to KB-shortcuts-old" -#~ msgstr "" -#~ "installate le nuove scorciatoie \n" -#~ "quelle precedenti rinominate come KB-shortcuts-old" - -#~ msgid "Start Trim function for each new image" -#~ msgstr "Lancia Ritaglia per ogni nuova immagine" - -#~ msgid "start edit function first" -#~ msgstr "Occorre prima eseguire una funzione di edit" - -#~ msgid "Turn upright or level tilted image" -#~ msgstr "Ruota per raddrizzare o mettere in piano" - -#~ msgid "gold" -#~ msgstr "Gold" - -#~ msgid "Zoom-out (smaller)" -#~ msgstr "Riduci" - -#~ msgid "Zoom-in (bigger)" -#~ msgstr "Ingrandisci" - -#~ msgid "Enhance" -#~ msgstr "Migliora" - -#~ msgid "Transform" -#~ msgstr "Trasforma" - -#~ msgid "Save+F" -#~ msgstr "Salva>N" - -#~ msgid "Save to a new file" -#~ msgstr "Salva con nome differente" - -#~ msgid "Save+V" -#~ msgstr "Salva+V" - -#~ msgid "Save to a new version" -#~ msgstr "Salva con nuova versione" - -#~ msgid "Save to the same file" -#~ msgstr "Salva il file (sovrascrive)" - -#~ msgid "Save to a new file name" -#~ msgstr "Salva su un nuovo file" - -#~ msgid "Save to New File" -#~ msgstr "Salva in un file nuovo" - -#~ msgid "Save to a new (next) version" -#~ msgstr "Salva su una versione successiva" - -#~ msgid "Save to New Version" -#~ msgstr "Salva con nuova versione" - -#~ msgid "Save to the same file (replace)" -#~ msgstr "Salva nello stesso file (rimpiazza)" - -#~ msgid "Save to Same File" -#~ msgstr "Salva (sovrascrivi)" - -#~ msgid "Save File" -#~ msgstr "Salva file" - -#~ msgid "Warning" -#~ msgstr "Attenzione" - -#~ msgid "Do not warn again" -#~ msgstr "Non chiedere di nuovo" - -#~ msgid "Overwrite original file?" -#~ msgstr "Sovrascrivere il file originale?" - -#~ msgid "Save Stuck Pixels" -#~ msgstr "Salva posizioni" - -#~ msgid "there are zero stuck pixels" -#~ msgstr "Non ci sono pixel difettosi" - -#~ msgid "current tags" -#~ msgstr "Etichette attuali:" - -#~ msgid "image stars" -#~ msgstr "Voto dell'immagine" - -#~ msgid "use last" -#~ msgstr "Utilizza ultima" - -#~ msgid "image date (yyyymmdd)" -#~ msgstr "Data immagine (aaaammgg)" - -#~ msgid "Edit Caption and Comments" -#~ msgstr "Modifica titolo e commenti" - -#~ msgid "change sequence" -#~ msgstr "Cambia sequenza" - -#~ msgid "jump to last page" -#~ msgstr "Vai all'ultima pagina" - -#~ msgid "jump to first page" -#~ msgstr "Vai alla prima pagina" - -#~ msgid "Gallery from Tab F" -#~ msgstr "Sincronizza la galleria della pagina F" - -#~ msgid "Edit image geotags" -#~ msgstr "Modifica Geotags" - -#~ msgid "Batch Tags" -#~ msgstr "Etichettatura di massa" - -#~ msgid "Edit image date/rating/tags" -#~ msgstr "Modifica data/voto/etichette" - -#~ msgid "Edit image caption or comment" -#~ msgstr "Modifica titoli e commenti dell'immagine" - -#~ msgid "Edit Caption/Comments" -#~ msgstr "Modifica titolo/commenti" - -#~ msgid "User Guide etc." -#~ msgstr "Guida utente ecc." - -#~ msgid "no plugin command" -#~ msgstr "Comando di plugin non trovato" - -#~ msgid "cmsCreateTransform() failed" -#~ msgstr "Errore in cmsCreateTransform()" - -#~ msgid "angle" -#~ msgstr "angolo" - -#~ msgid "Lighter Areas" -#~ msgstr "Aree luminose" - -#~ msgid "Darker Areas" -#~ msgstr "Aree scure" - -#~ msgid "working" -#~ msgstr "elaborazione" - -#~ msgid "replace original files? (max. %d x %d)" -#~ msgstr "Sostituire i file originali? (max. %d x %d)" - -#~ msgid "replace original files?" -#~ msgstr "Sovrascrivere i file originali?" - -#~ msgid "delete originals" -#~ msgstr "Elimina originali" - -#~ msgid "remove EXIF" -#~ msgstr "Elimina EXIF" - -#~ msgid "replace originals" -#~ msgstr "Sostituisci gli originali" - -#~ msgid "same" -#~ msgstr "uguale" - -#~ msgid "save as collection" -#~ msgstr "Salva come collezione" - -#~ msgid "collection:" -#~ msgstr "collezione: " - -#~ msgid "start with current image" -#~ msgstr "comincia con l'immagine corrente" - -#~ msgid "continuous loop" -#~ msgstr "Ciclo continuo" - -#~ msgid "latest versions only" -#~ msgstr "Solo l'ultima versione" - -#~ msgid "Batch Convert/Resize/Move" -#~ msgstr "Converti/Modifica/Sposta in massa" - -#~ msgid "Edge Blend Width" -#~ msgstr "Larghezza di sfumatura" - -#~ msgid "" -#~ "overlay image file error: \n" -#~ " %s" -#~ msgstr "" -#~ "Errore nel file di sfondo: \n" -#~ " %s" - -#~ msgid "" -#~ "layout image file error: \n" -#~ " %s" -#~ msgstr "" -#~ "Errore nel file di composizione: \n" -#~ " %s" - -#~ msgid "Blend Width for edits in area" -#~ msgstr "Larghezza sfumatura per modifiche confinate" - -#~ msgid "Blue: Red" -#~ msgstr "blu: Rosso" - -#~ msgid "Green: Blue" -#~ msgstr "Verde. Blu" - -#~ msgid "Red: Green" -#~ msgstr "Rosso: Verde" - -#~ msgid "search index file missing" -#~ msgstr "File di indice mancante" - -#~ msgid "Discard edits?" -#~ msgstr "Scartare le modifiche?" - -#~ msgid "prior function still active" -#~ msgstr "" -#~ "Una funzione interattiva è ancora in uso\n" -#~ "Termina tale funzione e riprova." - -#~ msgid "completed" -#~ msgstr "Completato" - -#~ msgid "new top directory" -#~ msgstr "Nuova cartella principale" - -#~ msgid "old top directory" -#~ msgstr "Vecchia cartella principale" - -#~ msgid "geotags file must be downloaded" -#~ msgstr "Il file di Geotags deve essere scaricato" - -#~ msgid "CMYK Density" -#~ msgstr "Densità CMYK" - -#~ msgid "Newly Added Images" -#~ msgstr "Immagini nuove aggiunte" - -#~ msgid "Plugins menu is empty" -#~ msgstr "Il menù dei plugin è vuoto" - -#~ msgid "menu name" -#~ msgstr "Nome nel menù" - -#~ msgid "False Colors" -#~ msgstr "Scorrimento colori" - -#~ msgid "+Brightness -Density" -#~ msgstr "+Luma -Densità" - -#~ msgid "curve file has different no. of curves" -#~ msgstr "Il file di curve ha un numero diverso di curve" - -#~ msgid "curve file is invalid" -#~ msgstr "File di curve non valido" - -#~ msgid "" -#~ "warning: real memory %d MB < required %d MB \n" -#~ "response time may become very long \n" -#~ msgstr "" -#~ "attenzione: RAM (%d Mb) inferiore a quella richiesta (%d Mb)\n" -#~ "il programma può diventare molto lento\n" - -#~ msgid "location is not a valid directory" -#~ msgstr "La posizione non è una cartella valida" - -#~ msgid "select random" -#~ msgstr "Transizioni casuali" - -#~ msgid "shift-left" -#~ msgstr "Scorrimento a sinistra" - -#~ msgid "(enter keys)" -#~ msgstr "(premi i tasti)" - -#~ msgid "Previous Image Viewed" -#~ msgstr "Ultima immagine usata" - -#~ msgid "maximum" -#~ msgstr "Massimo" - -#~ msgid "minimum" -#~ msgstr "Minimo" - -#~ msgid "Edit Function Amplifier" -#~ msgstr "Regola amplificazione di funzione" - -#~ msgid "delete" -#~ msgstr "Elimina" - -#~ msgid "create" -#~ msgstr "Crea" - -#~ msgid "Leverage edits by brightness or color" -#~ msgstr "Modula la funzione corrente secondo luminosità/colore" - -#~ msgid "Leverage Edits" -#~ msgstr "Modula ritocco" - -#~ msgid "Edit translations while using Fotoxx" -#~ msgstr "Modifica traduzioni durante l'uso di Fotoxx" - -#~ msgid "Edit Translations" -#~ msgstr "Modifica le traduzioni" - -#~ msgid "Favorites Menu" -#~ msgstr "Menù dei preferiti" +#~ msgid "Transition:" +#~ msgstr "Effetto di transizione:" diff -Nru fotoxx-14.03/locales/translate-nl.po fotoxx-14.04/locales/translate-nl.po --- fotoxx-14.03/locales/translate-nl.po 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/locales/translate-nl.po 2014-04-01 06:09:31.000000000 +0000 @@ -4,7 +4,7 @@ msgstr "" "Project-Id-Version: fotoxx 14.02\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-01 08:51+0100\n" +"POT-Creation-Date: 2014-04-01 08:04+0200\n" "PO-Revision-Date: 2014-01-20 12:34+0100\n" "Last-Translator: Arthur Kalverboer \n" "Language-Team: Dutch\n" @@ -20,7 +20,7 @@ msgid "Select Area for Edits" msgstr "Uitsnede om te bewerken" -#: f.area.cc:57 f.retouch.cc:2051 +#: f.area.cc:57 f.retouch.cc:2160 msgid "Press F1 for help" msgstr "Druk F1 voor help" @@ -64,7 +64,7 @@ msgid "select all matching colors within mouse" msgstr "selecteer alle matchende kleuren binnen muis" -#: f.area.cc:115 f.retouch.cc:2086 +#: f.area.cc:115 f.retouch.cc:2195 msgid "mouse radius" msgstr "muis straal" @@ -156,7 +156,7 @@ msgid "save select area to a file" msgstr "bewaar uitsnede in een bestand" -#: f.bend.cc:72 f.menus.cc:246 +#: f.bend.cc:72 f.menus.cc:208 msgid "Unbend" msgstr "Afbeelding ontkrommen" @@ -185,7 +185,7 @@ "De afbeelding wordt vervormd zodat de vierhoek in een \n" "rechthoek veranderd. " -#: f.bend.cc:353 f.menus.cc:247 +#: f.bend.cc:353 f.menus.cc:209 msgid "Keystone Correction" msgstr "Keystone Correctie" @@ -235,7 +235,7 @@ " Herhalen tot het gewenste resultaat. \n" " Indien gereed, een andere uitsnede selecteren of druk [Klaar]." -#: f.bend.cc:1105 f.menus.cc:249 +#: f.bend.cc:1105 f.menus.cc:211 msgid "Warp area" msgstr "Kromtrekken uitsnede" @@ -257,7 +257,7 @@ " Herhalen tot het gewenste resultaat. \n" " Indien gereed, druk [Klaar]." -#: f.bend.cc:1520 f.menus.cc:250 +#: f.bend.cc:1520 f.menus.cc:212 msgid "Warp curved" msgstr "Kromtrekken gebogen" @@ -265,7 +265,7 @@ msgid "warp span" msgstr "kromtrekken spanwijdte" -#: f.bend.cc:1830 f.menus.cc:251 +#: f.bend.cc:1830 f.menus.cc:213 msgid "Warp linear" msgstr "Kromtrekken lineair" @@ -279,15 +279,15 @@ " Herhalen tot het gewenste resultaat. \n" " Indien gereed, druk [Klaar]." -#: f.bend.cc:2161 f.menus.cc:252 +#: f.bend.cc:2161 f.menus.cc:214 msgid "Warp affine" msgstr "Kromtrekken affine" -#: f.color.cc:64 f.menus.cc:239 +#: f.color.cc:64 f.menus.cc:201 msgid "Shift Colors" msgstr "Verschuiven Kleuren" -#: f.color.cc:285 f.menus.cc:240 +#: f.color.cc:285 f.menus.cc:202 msgid "Color Mode" msgstr "Kleur Mode" @@ -340,8 +340,8 @@ msgid "mouse radius for color sample" msgstr "straal cirkel voor kleurmonster" -#: f.color.cc:609 f.color.cc:614 f.file.cc:4220 f.menus.cc:208 f.menus.cc:297 -#: f.menus.cc:433 fotoxx.h:1039 +#: f.color.cc:609 f.color.cc:614 f.file.cc:4222 f.menus.cc:172 f.menus.cc:255 +#: f.menus.cc:349 fotoxx.h:1044 msgid "Open" msgstr "Openen" @@ -365,11 +365,11 @@ msgid "select source image color first" msgstr "kies eerst kleur in afbeelding" -#: f.color.cc:872 f.tools.cc:5665 +#: f.color.cc:872 f.tools.cc:5973 msgid "Click image to select pixels." msgstr "Klik in afbeelding om pixels te selecteren" -#: f.color.cc:911 f.menus.cc:243 +#: f.color.cc:911 f.menus.cc:205 msgid "Revise RGB" msgstr "Reviseren RGB" @@ -397,15 +397,15 @@ msgid "+Blue -Yellow" msgstr "+Blauw -Geel" -#: f.color.cc:1382 fotoxx.h:1050 +#: f.color.cc:1382 fotoxx.h:1055 msgid "Red" msgstr "Rood" -#: f.color.cc:1383 fotoxx.h:1018 +#: f.color.cc:1383 fotoxx.h:1023 msgid "Green" msgstr "Groen" -#: f.color.cc:1384 fotoxx.h:992 +#: f.color.cc:1384 fotoxx.h:997 msgid "Blue" msgstr "Blauw" @@ -438,7 +438,7 @@ msgstr "Schilderen en kromtrekken afbeelding" #: f.combine.cc:2831 f.combine.cc:3485 f.combine.cc:4902 f.combine.cc:5801 -#: f.effects.cc:3478 f.menus.cc:60 f.menus.cc:121 +#: f.effects.cc:3546 f.menus.cc:87 msgid "Image" msgstr "Afbeelding" @@ -506,7 +506,7 @@ msgid "no curve (scanned image)" msgstr "geen curve (gescande afbeelding)" -#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:214 f.menus.cc:473 +#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:178 f.menus.cc:386 msgid "Resize" msgstr "Herschalen" @@ -670,7 +670,7 @@ msgid "Gradual" msgstr "" -#: f.combine.cc:6842 fotoxx.h:1044 +#: f.combine.cc:6842 fotoxx.h:1049 msgid "Power" msgstr "Sterkte" @@ -683,7 +683,7 @@ msgid "Enter text, click/drag on image." msgstr "Tekst invoegen, klik/sleep op afbeelding" -#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:850 +#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:844 msgid "Text" msgstr "Tekst" @@ -703,8 +703,8 @@ msgid "shadow" msgstr "schaduw" -#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:63 f.menus.cc:124 -#: f.menus.cc:292 fotoxx.h:999 +#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:90 f.menus.cc:251 +#: fotoxx.h:1004 msgid "Color" msgstr "Kleur" @@ -712,7 +712,7 @@ msgid "Transparency" msgstr "Doorzichtigheid" -#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1078 +#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1084 msgid "Width" msgstr "breedte" @@ -757,7 +757,7 @@ msgid "black/white" msgstr "zwart/wit" -#: f.effects.cc:989 f.menus.cc:257 +#: f.effects.cc:989 f.menus.cc:219 msgid "Graduated Blur" msgstr "Graduele Vervaging" @@ -825,7 +825,7 @@ msgid "borders" msgstr "randen" -#: f.effects.cc:2474 f.menus.cc:262 +#: f.effects.cc:2474 f.menus.cc:224 msgid "Vignette" msgstr "Vignette" @@ -833,48 +833,64 @@ msgid "Add Texture" msgstr "" -#: f.effects.cc:3040 -msgid "Add pattern" +#: f.effects.cc:3043 +msgid "Background Pattern" msgstr "" -#: f.effects.cc:3044 f.menus.cc:264 -msgid "Pattern" +#: f.effects.cc:3047 +msgid "Pattern File:" +msgstr "" + +#: f.effects.cc:3052 +msgid "Geometry" +msgstr "" + +#: f.effects.cc:3053 +msgid "Calculate" +msgstr "" + +#: f.effects.cc:3055 +msgid "Zoom" msgstr "" -#: f.effects.cc:3051 -msgid "Pattern size" +#: f.effects.cc:3066 f.menus.cc:226 +msgid "Pattern" msgstr "" -#: f.effects.cc:3062 f.effects.cc:3066 +#: f.effects.cc:3073 msgid "Overlap" msgstr "" -#: f.effects.cc:3107 +#: f.effects.cc:3080 +msgid "Opacity" +msgstr "" + +#: f.effects.cc:3116 msgid "choose pattern tile" msgstr "" -#: f.effects.cc:3382 +#: f.effects.cc:3450 msgid "Create Mosaic" msgstr "" -#: f.effects.cc:3468 +#: f.effects.cc:3536 msgid "Tile" msgstr "" -#: f.effects.cc:3476 f.menus.cc:259 +#: f.effects.cc:3544 f.menus.cc:221 msgid "Tiles" msgstr "Tegels" -#: f.effects.cc:3482 +#: f.effects.cc:3550 msgid "Tile blending" msgstr "" -#: f.effects.cc:3560 +#: f.effects.cc:3628 #, c-format msgid "exceeded max. tiles: %d" msgstr "" -#: f.effects.cc:3575 +#: f.effects.cc:3643 #, c-format msgid "only %d tile images found" msgstr "" @@ -887,7 +903,7 @@ msgid "no more images" msgstr "geen afbeeldingen meer" -#: f.file.cc:330 f.menus.cc:153 f.menus.cc:482 +#: f.file.cc:330 f.menus.cc:118 f.menus.cc:395 msgid "Open RAW file (ufraw)" msgstr "Open RAW bestand (ufraw)" @@ -944,7 +960,7 @@ "Bestand overschrijven? \n" " %s" -#: f.file.cc:836 f.menus.cc:155 +#: f.file.cc:836 f.menus.cc:120 msgid "Rename Image File" msgstr "Hernoemen bestand..." @@ -952,7 +968,7 @@ msgid "Old Name" msgstr "oude naam" -#: f.file.cc:844 f.tools.cc:4504 +#: f.file.cc:844 f.tools.cc:4803 msgid "New Name" msgstr "nieuwe naam" @@ -1000,7 +1016,7 @@ msgid "new location" msgstr "nieuwe locatie" -#: f.file.cc:1233 f.tools.cc:4809 +#: f.file.cc:1233 f.tools.cc:5108 msgid "Select directory" msgstr "Selecteer map" @@ -1025,7 +1041,7 @@ msgid "(automatic step to next image)" msgstr "(automatische stap naar volgende afbeelding)" -#: f.file.cc:1457 f.menus.cc:157 +#: f.file.cc:1457 f.menus.cc:122 msgid "Trash Image File" msgstr "Afbeeldingsbestand naar prullenbak" @@ -1071,7 +1087,7 @@ " %s" msgstr "" -#: f.file.cc:2191 f.menus.cc:149 +#: f.file.cc:2191 f.menus.cc:114 msgid "Open Image File" msgstr "Openen ..." @@ -1093,103 +1109,107 @@ msgid "file type not supported: %s" msgstr "bestandstype niet ondersteund: %s" -#: f.file.cc:4209 f.menus.cc:296 f.menus.cc:432 +#: f.file.cc:4209 f.file.cc:4291 f.menus.cc:360 f.tools.cc:851 +msgid "Scroll" +msgstr "Scroll" + +#: f.file.cc:4211 f.menus.cc:254 f.menus.cc:348 msgid "Sync.G" msgstr "Sync.G" -#: f.file.cc:4221 +#: f.file.cc:4223 msgid "change directory" msgstr "verander map" -#: f.file.cc:4229 f.menus.cc:434 +#: f.file.cc:4231 f.menus.cc:350 msgid "GoTo" msgstr "GaNaar" -#: f.file.cc:4234 f.menus.cc:437 +#: f.file.cc:4236 f.menus.cc:353 msgid "Sort" msgstr "Sorteren" -#: f.file.cc:4241 f.file.cc:4665 f.file.cc:4666 f.file.cc:4668 f.menus.cc:435 +#: f.file.cc:4243 f.file.cc:4657 f.file.cc:4658 f.file.cc:4660 f.menus.cc:351 msgid "Zoom+" msgstr "Zoom+" -#: f.file.cc:4252 f.file.cc:4667 f.file.cc:4669 f.menus.cc:436 +#: f.file.cc:4254 f.file.cc:4659 f.file.cc:4661 f.menus.cc:352 msgid "Zoom-" msgstr "Zoom-" -#: f.file.cc:4265 f.file.cc:4673 f.menus.cc:442 +#: f.file.cc:4267 f.file.cc:4665 f.menus.cc:358 msgid "Row↑" msgstr "Rij↑" -#: f.file.cc:4277 f.file.cc:4674 f.menus.cc:443 +#: f.file.cc:4279 f.file.cc:4666 f.menus.cc:359 msgid "Row↓" msgstr "Rij↓" -#: f.file.cc:4289 f.file.cc:4676 f.menus.cc:438 +#: f.file.cc:4309 f.file.cc:4668 f.menus.cc:354 msgid "First" msgstr "Eerste" -#: f.file.cc:4290 f.file.cc:4677 f.menus.cc:439 +#: f.file.cc:4310 f.file.cc:4669 f.menus.cc:355 msgid "Last" msgstr "Laatste" -#: f.file.cc:4291 f.file.cc:4671 f.file.cc:4678 f.menus.cc:440 +#: f.file.cc:4311 f.file.cc:4663 f.file.cc:4670 f.menus.cc:356 msgid "Page↑" msgstr "Pagina↑" -#: f.file.cc:4292 f.file.cc:4672 f.file.cc:4679 f.menus.cc:441 +#: f.file.cc:4312 f.file.cc:4664 f.file.cc:4671 f.menus.cc:357 msgid "Page↓" msgstr "Pagina↓" -#: f.file.cc:4342 +#: f.file.cc:4366 msgid "Choose image directory" msgstr "Kies afbeeldingsmap" -#: f.file.cc:4348 f.file.cc:4363 +#: f.file.cc:4372 f.file.cc:4387 msgid "recent" msgstr "recent" -#: f.file.cc:4349 f.file.cc:4368 +#: f.file.cc:4373 f.file.cc:4392 msgid "newest" msgstr "nieuwste" -#: f.file.cc:4350 f.file.cc:4377 +#: f.file.cc:4374 f.file.cc:4401 msgid "collections" msgstr "collecties" -#: f.file.cc:4423 f.tools.cc:2476 +#: f.file.cc:4449 f.tools.cc:2451 msgid "no collections found" msgstr "nieuwe collecties gevonden" -#: f.file.cc:4430 +#: f.file.cc:4456 msgid "Choose collection" msgstr "Kies collectie" -#: f.file.cc:4475 +#: f.file.cc:4503 msgid "Gallery Sort" msgstr "Galerie Sortering " -#: f.file.cc:4479 +#: f.file.cc:4507 msgid "File Name" msgstr "Bestandsnaam" -#: f.file.cc:4480 +#: f.file.cc:4508 msgid "File Mod Date/Time" msgstr "Bestand wijz datum/tijd" -#: f.file.cc:4481 +#: f.file.cc:4509 msgid "Photo Date/Time (EXIF)" msgstr "Foto Datum/Tijd (EXIF)" -#: f.file.cc:4483 +#: f.file.cc:4511 msgid "ascending" msgstr "oplopend" -#: f.file.cc:4484 +#: f.file.cc:4512 msgid "descending" msgstr "aflopend" -#: f.file.cc:5542 fotoxx.h:1061 +#: f.file.cc:5534 fotoxx.h:1067 msgid "Select Files" msgstr "Selecteer bestanden" @@ -1214,7 +1234,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Kleine draaiing: sleep rechter rand met de muis" -#: f.image.cc:302 f.menus.cc:212 f.menus.cc:472 +#: f.image.cc:302 f.menus.cc:176 f.menus.cc:385 msgid "Trim/Rotate" msgstr "Bijsnijden/Draaien" @@ -1230,7 +1250,7 @@ msgid "Lock Ratio" msgstr "verhoudingen vasthouden" -#: f.image.cc:326 f.tools.cc:2793 +#: f.image.cc:326 msgid "Customize" msgstr "Aanpassen" @@ -1266,7 +1286,7 @@ msgid "Resize Image" msgstr "Herschalen Afbeelding" -#: f.image.cc:1650 f.menus.cc:215 +#: f.image.cc:1650 f.menus.cc:179 msgid "Flip" msgstr "Afbeelding spiegelen" @@ -1307,1123 +1327,1128 @@ msgid "plugin failed" msgstr "plugin werkt niet" -#: f.menus.cc:56 f.menus.cc:117 -msgid "File" -msgstr "Bestand" - -#: f.menus.cc:57 f.menus.cc:118 -msgid "Tools" -msgstr "Gereedschap" - -#: f.menus.cc:58 f.menus.cc:119 f.menus.cc:462 -msgid "Metadata" -msgstr "Metadata" - -#: f.menus.cc:59 f.menus.cc:120 -msgid "Areas" -msgstr "Uitsnedes" - -#: f.menus.cc:61 f.menus.cc:122 -msgid "Retouch" -msgstr "Retoucheren" - -#: f.menus.cc:62 f.menus.cc:123 -msgid "Repair" -msgstr "Repareren" - -#: f.menus.cc:64 f.menus.cc:125 -msgid "Bend" -msgstr "Kromtrekken" - -#: f.menus.cc:65 f.menus.cc:126 -msgid "Effects" -msgstr "Effecten" - -#: f.menus.cc:66 f.menus.cc:127 -msgid "Combine" -msgstr "Samenvoegen" - -#: f.menus.cc:67 f.menus.cc:128 -msgid "Plugins" -msgstr "Plugins" - -#: f.menus.cc:68 f.menus.cc:129 fotoxx-14.03.cc:3811 fotoxx.h:1021 -msgid "Help" -msgstr "Help" - -#: f.menus.cc:101 f.menus.cc:290 fotoxx-14.03.cc:3751 +#: f.menus.cc:67 fotoxx-14.04.cc:3775 msgid "Favorite Functions" msgstr "" -#: f.menus.cc:102 +#: f.menus.cc:68 msgid "Open, Save, Trash, Rename, Print" msgstr "Openen, Bewaren, Verwijderen, Hernoemen, Afdrukken" -#: f.menus.cc:103 +#: f.menus.cc:69 msgid "Index Files, Settings, Collections, Batch Funcs ..." msgstr "Indexering, Instellingen, Collecties, Batch functies ..." -#: f.menus.cc:104 +#: f.menus.cc:70 msgid "Captions, Tags, Ratings, Geotags, Search ... " msgstr "Onderschriften, Tags, Ratings, Geotags, Zoeken ..." -#: f.menus.cc:105 +#: f.menus.cc:71 msgid "Select image areas to edit, copy and paste" msgstr "Selecteer uitsnedes om te bewerken, te kopieren en te plakken " -#: f.menus.cc:106 +#: f.menus.cc:72 msgid "Trim/Crop, Rotate, Resize, Add Text" msgstr "Bijsnijden, Draaien, Herschalen, Tekst toevoegen" -#: f.menus.cc:107 +#: f.menus.cc:73 msgid "Improve brightness, contrast, color ..." msgstr "Verbeteren helderheid, contrast, kleur ..." -#: f.menus.cc:108 +#: f.menus.cc:74 msgid "Sharpen, Clean, Red-eyes, Paint, Clone ..." msgstr "Verscherpen, Schonen, Rode-ogen, Verven, Klonen ..." -#: f.menus.cc:109 +#: f.menus.cc:75 msgid "White Balance, Color Profile, Color Matching" msgstr "Witbalans, Kleurprofiel, Kleurmatching" -#: f.menus.cc:110 +#: f.menus.cc:76 msgid "Fix Perspective, Bend/Warp image ..." msgstr "Repareren Perspectief, Buigen/Kromtrekken afbeelding ..." -#: f.menus.cc:111 +#: f.menus.cc:77 msgid "Special Effects, Arty Transforms" msgstr "Speciale Effecten, Artistieke Transformaties" -#: f.menus.cc:112 +#: f.menus.cc:78 msgid "HDR, HDF, Panorama, Stack, Mashup" msgstr "HDR, HDF, Panorama, Stapelen, Mashup" -#: f.menus.cc:113 +#: f.menus.cc:79 msgid "Use other image editors within Fotoxx" msgstr "Gebruik andere afbeelding editors binnen Fotoxx" -#: f.menus.cc:114 +#: f.menus.cc:80 msgid "Quick Start, User Guide, Recent Changes ..." msgstr "Snel Start, Gebruikershandleiding, Recente wijzigingen ..." -#: f.menus.cc:148 +#: f.menus.cc:83 +msgid "File" +msgstr "Bestand" + +#: f.menus.cc:84 +msgid "Tools" +msgstr "Gereedschap" + +#: f.menus.cc:85 f.menus.cc:375 +msgid "Metadata" +msgstr "Metadata" + +#: f.menus.cc:86 +msgid "Areas" +msgstr "Uitsnedes" + +#: f.menus.cc:88 +msgid "Retouch" +msgstr "Retoucheren" + +#: f.menus.cc:89 +msgid "Repair" +msgstr "Repareren" + +#: f.menus.cc:91 +msgid "Bend" +msgstr "Kromtrekken" + +#: f.menus.cc:92 +msgid "Effects" +msgstr "Effecten" + +#: f.menus.cc:93 +msgid "Combine" +msgstr "Samenvoegen" + +#: f.menus.cc:94 +msgid "Plugins" +msgstr "Plugins" + +#: f.menus.cc:95 fotoxx-14.04.cc:3835 fotoxx.h:1026 +msgid "Help" +msgstr "Help" + +#: f.menus.cc:113 msgid "New Window" msgstr "Nieuw Venster" -#: f.menus.cc:148 +#: f.menus.cc:113 msgid "Open another window" msgstr "Open nog een venster" -#: f.menus.cc:149 f.menus.cc:297 +#: f.menus.cc:114 f.menus.cc:255 msgid "Open a new image file" msgstr "Open nieuwe afbeelding" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open Previous File" msgstr "Open vorig bestand" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open the previously seen file" msgstr "Open vorig getoond bestand" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Open a recently seen file" msgstr "Open een onlangs getoond bestand" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Recently Seen Images" msgstr "Onlangs Bekeken Afbeeldingen" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Newest Images" msgstr "Nieuwste Afbeeldingen" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Open a newly added file" msgstr "Open een nieuw toegevoegd bestand" -#: f.menus.cc:153 +#: f.menus.cc:118 msgid "Open and edit a camera RAW file" msgstr "Open en bewerk een RAW bestand" -#: f.menus.cc:154 f.menus.cc:300 +#: f.menus.cc:119 f.menus.cc:258 msgid "Save modified image file to disk" msgstr "Bewaar gewijzigd afbeeldingsbestand" -#: f.menus.cc:154 +#: f.menus.cc:119 msgid "Save to Disk" msgstr "Bewaar op schijf" -#: f.menus.cc:155 +#: f.menus.cc:120 msgid "Change the image file name" msgstr "Wijzig naam van het afbeeldingsbestand" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "Create a blank image" msgstr "Maak een lege afbeelding" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "New Blank Image" msgstr "Nieuwe Lege Afbeelding" -#: f.menus.cc:157 f.menus.cc:301 +#: f.menus.cc:122 f.menus.cc:259 msgid "Move image file to Trash" msgstr "Verplaats afbeeldingsbestand naar prullenbak" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print Image" msgstr "Afdrukken Afbeelding" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print the current image" msgstr "Afdrukken actuele afbeelding" -#: f.menus.cc:159 +#: f.menus.cc:124 msgid "Quit Fotoxx" msgstr "Verlaat Fotoxx" -#: f.menus.cc:161 f.tools.cc:92 f.tools.cc:339 +#: f.menus.cc:126 f.tools.cc:92 f.tools.cc:339 msgid "Index Image Files" msgstr "Indexering Afbeeldingen" -#: f.menus.cc:161 +#: f.menus.cc:126 msgid "Index new files and make thumbnails" msgstr "Indexeer nieuwe bestanden en maak miniaturen" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "Change user preferences" msgstr "Verander gebruikersvoorkeuren" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "User Settings" msgstr "Gebruikers instellingen" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Change Keyboard Shortcut Keys" msgstr "Wijzig Keyboard Shortcut Toetsen" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Keyboard Shortcuts" msgstr "Keyboard Shortcuts" -#: f.menus.cc:164 f.tools.cc:1943 +#: f.menus.cc:129 f.tools.cc:1918 msgid "Manage Collections" msgstr "Beheren Collecties" -#: f.menus.cc:164 +#: f.menus.cc:129 msgid "Organize images into collections" msgstr "Organiseer afbeeldingen in collecties" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Convert for a new top directory" msgstr "Converteren voor een nieuwe bovenste map" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Move Collections" msgstr "Verplaats Collecties" -#: f.menus.cc:166 f.tools.cc:2777 f.tools.cc:2780 +#: f.menus.cc:131 f.tools.cc:2728 msgid "Slide Show" msgstr "Diashow starten" -#: f.menus.cc:166 +#: f.menus.cc:131 msgid "Start a slide show" msgstr "Start een diashow" -#: f.menus.cc:167 f.tools.cc:4497 +#: f.menus.cc:132 f.tools.cc:4796 msgid "Batch Convert" msgstr "Batchgewijs Converteren" -#: f.menus.cc:167 +#: f.menus.cc:132 msgid "Rename/convert/resize/move multiple files" msgstr "Hernoemen/Converteren/Herschalen/Verplaatsen meerdere bestanden" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Batch Convert RAW" msgstr "Batchgewijs Converteren RAW" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Convert multiple camera RAW files" msgstr "Converteer meerdere RAW bestanden" -#: f.menus.cc:169 -msgid "Brightness Histogram" -msgstr "Helderheids Histogram" +#: f.menus.cc:134 f.menus.cc:185 f.menus.cc:390 f.retouch.cc:314 +#: f.tools.cc:5620 +msgid "Brightness Distribution" +msgstr "Helderheids Verdeling" -#: f.menus.cc:169 +#: f.menus.cc:134 msgid "Show a brightness distribution graph" msgstr "Toon helderheids verdeling grafiek" -#: f.menus.cc:170 f.menus.cc:480 f.tools.cc:5517 +#: f.menus.cc:135 f.menus.cc:393 f.tools.cc:5825 msgid "Grid Lines" msgstr "Raster instellen" -#: f.menus.cc:170 +#: f.menus.cc:135 msgid "Show or revise grid lines" msgstr "Toon of herstel raster lijnen" -#: f.menus.cc:171 f.tools.cc:5701 +#: f.menus.cc:136 f.tools.cc:6009 msgid "Show RGB" msgstr "RGB waarden tonen" -#: f.menus.cc:171 +#: f.menus.cc:136 msgid "Show RGB colors at mouse click" msgstr "Toon RGB kleuren bij muisklik" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Dark/Bright Pixels" msgstr "Donker/Licht Pixels" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Highlight darkest and brightest pixels" msgstr "Markeer donkerste en lichtste pixels" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Chart to adjust monitor color" msgstr "Grafiek instellen monitor kleur" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Monitor Color" msgstr "Monitor Kleur " -#: f.menus.cc:174 +#: f.menus.cc:139 msgid "Chart to adjust monitor gamma" msgstr "Grafiek instellen monitor gamma" -#: f.menus.cc:174 f.tools.cc:6213 +#: f.menus.cc:139 f.tools.cc:6521 msgid "Monitor Gamma" msgstr "Gamma waarde monitor" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change Language" msgstr "Taal veranderen" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change the GUI language" msgstr "Verander de GUI taal" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Missing Translations" msgstr "Ontbrekende Vertalingen" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Report missing translations" msgstr "Rapport ontbrekende vertalingen" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Create a Gnome menu and launcher" msgstr "Maak een Gnome menu en starter" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Menu and Launcher" msgstr "Menu en Starter" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn Images to CD/DVD" msgstr "Afbeelding op CD/DVD branden" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn selected image files to CD or DVD" msgstr "Brand geselecteerde afbeeldingsbestanden naar CD of DVD" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Memory and CPU (to terminal/logfile)" msgstr "Geheugen en CPU (naar beeldscherm/logfile)" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Resources" msgstr "Hulpbronnen" -#: f.menus.cc:183 f.meta.cc:121 f.meta.cc:1945 +#: f.menus.cc:147 f.meta.cc:121 f.meta.cc:1946 msgid "Edit Metadata" msgstr "Bewerken Metadata" -#: f.menus.cc:183 +#: f.menus.cc:147 msgid "Edit image tags/caption/rating ..." msgstr "Bewerken afbeeldings tags/onderschrift/rating ..." -#: f.menus.cc:184 +#: f.menus.cc:148 msgid "Add/remove tags for multiple images" msgstr "Toevoegen/verwijderen tags voor meerdere afbeeldingen" -#: f.menus.cc:184 f.meta.cc:1547 +#: f.menus.cc:148 f.meta.cc:1547 msgid "Batch Add/Remove Tags" msgstr "Batchgewijs Toevoegen/Verwijderen Tags" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "List a few key metadata items" msgstr "Belangrijkste metadata opsommen" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "View Metadata (short)" msgstr "Tonen Metadata (kort)" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "List all metadata items" msgstr "Opsommen alle metadata items" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "View Metadata (long)" msgstr "Toon Metadata (lang)" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "List captions and comments only" msgstr "Opsommen onderschriften en commentaar" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "View Captions and Comments" msgstr "Tonen Onderschriften en Commentaar" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit Any Metadata" msgstr "Bewerken Metadata" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit any image metadata" msgstr "Bewerken metadata van afbeelding" -#: f.menus.cc:189 f.meta.cc:2039 +#: f.menus.cc:153 f.meta.cc:2040 msgid "Delete Metadata" msgstr "Verwijderen Metadata" -#: f.menus.cc:189 +#: f.menus.cc:153 msgid "Remove all metadata from an image" msgstr "Verwijder alle metadata van een afbeelding" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "(Toggle) show captions and comments" msgstr "(Wissel) toon onderschriften en commentaar" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "Show Captions on Image" msgstr "Toon Onderschriften op Afbeelding" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download Geolocations" msgstr "Download Geolocaties" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download initial geolocation database" msgstr "Download initiele geolocatie database" -#: f.menus.cc:193 f.meta.cc:3023 +#: f.menus.cc:157 f.meta.cc:3027 msgid "Edit Geotags" msgstr "Bewerken Geotags" -#: f.menus.cc:193 +#: f.menus.cc:157 msgid "Edit image location and geotags" msgstr "Bewerken afbeeldings locatie en geotags" -#: f.menus.cc:194 +#: f.menus.cc:158 msgid "Add geotags to multiple images" msgstr "Toevoegen geotags aan meerdere afbeeldingen" -#: f.menus.cc:194 f.meta.cc:3225 +#: f.menus.cc:158 f.meta.cc:3229 msgid "Batch Add Geotags" msgstr "Batchgewijs Toevoegen Geotags" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Find all images for a location [date]" msgstr "Zoek alle afbeeldingen voor een locatie [datum]" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Images by Location/Date" msgstr "Afbeeldingen per Locatie/Datum" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Find images by clicking a world map" msgstr "Zoek afbeeldingen door op een wereldkaart te klikken" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Images by Map Location" msgstr "Afbeeldingen per Kaart Locatie" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Find images meeting select criteria" msgstr "Zoek afbeeldingen volgens selectie criteria" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Search Images" msgstr "Afbeeldingen doorzoeken" -#: f.menus.cc:199 fotoxx.h:1060 +#: f.menus.cc:163 fotoxx.h:1066 msgid "Select" msgstr "Selecteren" -#: f.menus.cc:199 +#: f.menus.cc:163 msgid "Select object or area for editing" msgstr "Selecteer object of uitsnede om te bewerken" -#: f.menus.cc:200 fotoxx.h:1062 +#: f.menus.cc:164 fotoxx.h:1068 msgid "Show" msgstr "Tonen" -#: f.menus.cc:200 +#: f.menus.cc:164 msgid "Show (outline) existing area" msgstr "Toon (contour) bestaande uitsnede" -#: f.menus.cc:201 fotoxx.h:1022 +#: f.menus.cc:165 fotoxx.h:1027 msgid "Hide" msgstr "Verbergen" -#: f.menus.cc:201 +#: f.menus.cc:165 msgid "Hide existing area" msgstr "Verberg bestaande uitsnede" -#: f.menus.cc:202 fotoxx.h:1011 +#: f.menus.cc:166 fotoxx.h:1016 msgid "Enable" msgstr "Uitsnede activeren" -#: f.menus.cc:202 +#: f.menus.cc:166 msgid "Enable area for editing" msgstr "Activeer uitsnede om te bewerken" -#: f.menus.cc:203 fotoxx.h:1006 +#: f.menus.cc:167 fotoxx.h:1011 msgid "Disable" msgstr "Uitsnede deactiveren" -#: f.menus.cc:203 +#: f.menus.cc:167 msgid "Disable area for editing" msgstr "Deactiveer uitsnede om te bewerken" -#: f.menus.cc:204 fotoxx.h:1025 +#: f.menus.cc:168 fotoxx.h:1030 msgid "Invert" msgstr "Uitsnede inverteren" -#: f.menus.cc:204 +#: f.menus.cc:168 msgid "Reverse existing area" msgstr "Bestaande uitsnede omkeren" -#: f.menus.cc:205 +#: f.menus.cc:169 msgid "Erase existing area" msgstr "Verwijder bestaande uitsnede" -#: f.menus.cc:205 fotoxx.h:1074 +#: f.menus.cc:169 fotoxx.h:1080 msgid "Unselect" msgstr "Deselecteren" -#: f.menus.cc:206 fotoxx.h:1001 +#: f.menus.cc:170 fotoxx.h:1006 msgid "Copy" msgstr "Uitsnede kopieren" -#: f.menus.cc:206 +#: f.menus.cc:170 msgid "Copy an area for later pasting" msgstr "Copieer uitsnede om later te plakken" -#: f.menus.cc:207 fotoxx.h:1041 +#: f.menus.cc:171 fotoxx.h:1046 msgid "Paste" msgstr "Uitsnede plakken" -#: f.menus.cc:207 +#: f.menus.cc:171 msgid "Paste an area into the current image" msgstr "Plak een uitsnede in huidige afbeelding" -#: f.menus.cc:208 +#: f.menus.cc:172 msgid "Open a file with a saved area" msgstr "Open een bestand met een opgeslagen uitsnede" -#: f.menus.cc:209 f.menus.cc:300 fotoxx.h:1057 +#: f.menus.cc:173 f.menus.cc:258 fotoxx.h:1062 msgid "Save" msgstr "Opslaan" -#: f.menus.cc:209 +#: f.menus.cc:173 msgid "Save an area to a file" msgstr "Een uitsnede opslaan naar een bestand" -#: f.menus.cc:211 +#: f.menus.cc:175 msgid "Rotate 90 degrees" msgstr "Roteer 90 graden" -#: f.menus.cc:211 f.menus.cc:474 +#: f.menus.cc:175 f.menus.cc:387 msgid "Rotate 90º" msgstr "Roteer 90º" -#: f.menus.cc:212 +#: f.menus.cc:176 msgid "Trim/Crop margins and/or Rotate" msgstr "Bijsnijden marges en/of Draaien" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Auto-Trim" msgstr "Auto-Bijsnijden" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Remove margins from warp, panorama, etc." msgstr "Verwijder marges na kromtrekken, panorama, etc." -#: f.menus.cc:214 +#: f.menus.cc:178 msgid "Change pixel dimensions" msgstr "Verander pixel dimensies" -#: f.menus.cc:215 +#: f.menus.cc:179 msgid "Mirror image horizontally or vertically" msgstr "Spiegel afbeelding horizontaal of verticaal" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Add Text" msgstr "Schrijf Tekst" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Write text on image" msgstr "Schrijf tekst op afbeelding" -#: f.menus.cc:218 +#: f.menus.cc:182 msgid "Fast auto enhance that may work OK" msgstr "Snelle auto-verbetering dat mogelijk goed werkt" -#: f.menus.cc:218 f.menus.cc:475 +#: f.menus.cc:182 f.menus.cc:388 msgid "Voodoo Enhance" msgstr "Voodoo Verbeteren" -#: f.menus.cc:219 +#: f.menus.cc:183 msgid "Adjust brightness, contrast, color" msgstr "Instellen helderheid, contrast, kleur" -#: f.menus.cc:219 f.menus.cc:476 f.retouch.cc:265 +#: f.menus.cc:183 f.menus.cc:389 f.retouch.cc:271 msgid "Retouch Combo" msgstr "Retoucheer Combo" -#: f.menus.cc:222 +#: f.menus.cc:184 msgid "Add local contrast, enhance details" msgstr "Toevoegen lokaal contrast, verbeter details" -#: f.menus.cc:222 f.menus.cc:478 f.retouch.cc:929 +#: f.menus.cc:184 f.menus.cc:391 f.retouch.cc:1039 msgid "Tone Mapping" msgstr "Tone mapping instellen" -#: f.menus.cc:223 +#: f.menus.cc:185 msgid "Adjust brightness distribution" msgstr "Instellen helderheids verdeling" -#: f.menus.cc:223 f.menus.cc:477 f.tools.cc:5314 -msgid "Brightness Distribution" -msgstr "Helderheids Verdeling" - -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Brightness Ramp" msgstr "Helderheidsverspreiding instellen" -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Fix brightness uniformity across image" msgstr "Repareren helderheidsverdeling over de afbeelding" -#: f.menus.cc:225 f.retouch.cc:2050 +#: f.menus.cc:187 f.retouch.cc:2159 msgid "Paint Edits" msgstr "Veranderingen schilderen" -#: f.menus.cc:225 +#: f.menus.cc:187 msgid "Paint edit function gradually with mouse" msgstr "Bewerkingsfunctie geleidelijk met muis schilderen " -#: f.menus.cc:227 +#: f.menus.cc:188 f.retouch.cc:2390 +msgid "Leverage Edits" +msgstr "Veranderingen versterken" + +#: f.menus.cc:188 +msgid "Leverage edits by brightness or color" +msgstr "Veranderingen versterken met helderheid of kleur" + +#: f.menus.cc:190 msgid "Make the image look sharper" msgstr "Laat de afbeelding er scherper uitzien" -#: f.menus.cc:227 f.repair.cc:79 f.tools.cc:4535 f.tools.cc:4904 +#: f.menus.cc:190 f.repair.cc:79 f.tools.cc:4834 f.tools.cc:5203 msgid "Sharpen" msgstr "Afbeelding verscherpen" -#: f.menus.cc:228 f.repair.cc:1565 +#: f.menus.cc:191 f.repair.cc:1565 msgid "Blur" msgstr "Afbeelding vervagen" -#: f.menus.cc:228 +#: f.menus.cc:191 msgid "Make the image look fuzzy" msgstr "Laat de afbeelding er nevelig uitzien" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Filter noise from low-light photos" msgstr "Filter ruis van laag belichte foto's" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Reduce Noise" msgstr "Ruis verminderen" -#: f.menus.cc:230 +#: f.menus.cc:193 msgid "Remove unwanted objects" msgstr "Verwijder ongewenste objecten" -#: f.menus.cc:230 f.repair.cc:1558 +#: f.menus.cc:193 f.repair.cc:1558 msgid "Smart Erase" msgstr "Slim verwijderen" -#: f.menus.cc:231 +#: f.menus.cc:194 msgid "Fix red-eyes from electronic flash" msgstr "Repareren rode-ogen door electronisch flitslicht" -#: f.menus.cc:231 f.menus.cc:479 +#: f.menus.cc:194 f.menus.cc:392 msgid "Red Eyes" msgstr "Rode ogen corrigeren" -#: f.menus.cc:232 +#: f.menus.cc:195 msgid "Paint image pixels using the mouse" msgstr "Schilderen afbeeldings pixels met de muis" -#: f.menus.cc:232 f.repair.cc:2403 +#: f.menus.cc:195 f.repair.cc:2403 msgid "Paint/Clone" msgstr "Pixels Schilderen/Klonen" -#: f.menus.cc:233 f.repair.cc:2995 +#: f.menus.cc:196 f.repair.cc:2995 msgid "Remove Dust" msgstr "Stofspikkels verwijderen" -#: f.menus.cc:233 +#: f.menus.cc:196 msgid "Remove dust spots from scanned slides" msgstr "Verwijderen stofspikkels van gescande dia's" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Anti-alias" msgstr "Anti-alias" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Smoothen edges with jaggies" msgstr "Glad maken randen met randjes" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Fix Color Fringes" msgstr "Repareren Kleur Franjes" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Reduce Chromatic Abberation" msgstr "Verminderen Chromatische Aberratie" -#: f.menus.cc:236 +#: f.menus.cc:199 msgid "Erase known hot and dark pixels" msgstr "Verwijderen bekende hete en donkere pixels" -#: f.menus.cc:236 f.repair.cc:4008 +#: f.menus.cc:199 f.repair.cc:4008 msgid "Fix Stuck Pixels" msgstr "Repareren Defecte Pixels" -#: f.menus.cc:239 +#: f.menus.cc:201 msgid "Shift/convert colors into other colors" msgstr "Verschuiven/converteren kleuren naar andere kleuren" -#: f.menus.cc:240 +#: f.menus.cc:202 msgid "Make BW/color, negative/positive, sepia" msgstr "Maak BW/kleur, negatief/positief, sepia" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Color Profile" msgstr "Kleurprofiel" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Convert to another color profile" msgstr "Omzetten naar ander kleurprofiel" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match Colors" msgstr "Match Kleuren" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match colors on one image with another" msgstr "Match kleuren van twee afbeeldingen" -#: f.menus.cc:243 +#: f.menus.cc:205 msgid "Adjust color in selected image areas" msgstr "Instellen kleur in geselecteerde uitsnedes" -#: f.menus.cc:244 +#: f.menus.cc:206 msgid "Adjust color using CMYK or RGB values" msgstr "Instellen kleur met CMYK of RGB waarden" -#: f.menus.cc:246 +#: f.menus.cc:208 msgid "Remove curvature, esp. panoramas" msgstr "Verwijder kromming, met name panorama's" -#: f.menus.cc:247 +#: f.menus.cc:209 msgid "Straighten objects seen from an angle" msgstr "Rechttrekken objecten gezien vanuit een hoek" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten Book Page" msgstr "Platstrijken Pagina van Boek" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten a photographed book page" msgstr "Platstrijken foto van pagina" -#: f.menus.cc:249 +#: f.menus.cc:211 msgid "Distort image areas using the mouse" msgstr "Verdraai uitsnede met de muis" -#: f.menus.cc:250 f.menus.cc:251 f.menus.cc:252 +#: f.menus.cc:212 f.menus.cc:213 f.menus.cc:214 msgid "Distort the whole image using the mouse" msgstr "Verdraai hele afbeelding met de muis" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Color Depth" msgstr "Kleurdiepte instellen" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Reduce color depth (posterize)" msgstr "Verminderen kleurdiepte (minder schakeringen)" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Convert to pencil sketch" msgstr "Converteer naar potlood schets" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Sketch" msgstr "Schets" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Convert to colored line drawing" msgstr "Converteren naar lijn tekenen" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Drawing" msgstr "Tekenen" -#: f.menus.cc:257 +#: f.menus.cc:219 msgid "Graduated Blur depending on contrast" msgstr "Graduele Vervaging afhankelijk van contrast" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Create an embossed or 3D appearance" msgstr "Maak een relief of 3D verschijning" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Embossing" msgstr "Reliefdruk" -#: f.menus.cc:259 +#: f.menus.cc:221 msgid "Convert to square tiles" msgstr "Converteren naar vierkante tegels" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Converteren naar stippen (Roy Lichtenstein effect)" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Dots" msgstr "Krantendruk" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Convert into a simulated painting" msgstr "Converteren naar nagebootst schilderij" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Painting" msgstr "Schilderij" -#: f.menus.cc:262 +#: f.menus.cc:224 msgid "Change brightness or color radially" msgstr "Verander helderheid of kleur radiaal" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Add texture to an image" msgstr "Toevoegen textuur aan afbeelding" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Texture" msgstr "Textuur" -#: f.menus.cc:264 +#: f.menus.cc:226 msgid "Tile image with a repeating pattern" msgstr "" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Create a mosaic with tiles made from all images" msgstr "" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Mosaic" msgstr "" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "Combine bright/dark images for better detail" msgstr "Samenvoegen licht/donker afbeeldingen voor beter detail" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "High Dynamic Range" msgstr "Hoog dynamisch bereik (HDR)" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "Combine near/far focus images for deeper focus" msgstr "Samenvoegen dichtbij/veraf afbeeldingen voor meer scherptediepte" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "High Depth of Field" msgstr "Hoge scherptediepte (HDF)" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Combine images to erase passing people, etc." msgstr "Samenvoegen afbeeldingen om voorbijgangers etc. te verwijderen " -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Stack / Paint" msgstr "Stapelen / Schilderen" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Combine noisy images into a low-noise image" msgstr "Samenvoegen ruis afbeeldingen naar lagere-ruis afbeelding" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Stack / Noise" msgstr "Stapelen / Ruis verminderen" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Combine images into a panorama" msgstr "Samenvoegen afbeeldingen in een panorama" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Panorama" msgstr "Panorama maken" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Combine images into a vertical panorama" msgstr "Samenvoegen afbeeldingen in een verticaal panorama" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Vertical Panorama" msgstr "Verticaal panorama" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Arrange multiple images on a background image" msgstr "schikken meerdere afbeeldingen op een achtergrond afbeelding" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Mashup" msgstr "Mashup" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Add another image editor to the menu" msgstr "Een andere afbeeldingseditor aan menu toevoegen" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Edit Plugins" msgstr "Plugins aanpassen" -#: f.menus.cc:277 fotoxx-14.03.cc:3777 +#: f.menus.cc:239 fotoxx-14.04.cc:3801 msgid "Quick Start" msgstr "Snel Start" -#: f.menus.cc:277 +#: f.menus.cc:239 msgid "Quick Start mini-guide" msgstr "Snel Start mini-handleiding" -#: f.menus.cc:278 +#: f.menus.cc:240 msgid "Read the user guide" msgstr "Lees de gebruikershandleiding" -#: f.menus.cc:278 fotoxx-14.03.cc:3780 +#: f.menus.cc:240 fotoxx-14.04.cc:3804 msgid "User Guide" msgstr "Gebruikershandleiding" -#: f.menus.cc:279 +#: f.menus.cc:241 msgid "Recent user guide changes" msgstr "Recente veranderingen gebruikershandleiding" -#: f.menus.cc:279 fotoxx-14.03.cc:3783 +#: f.menus.cc:241 fotoxx-14.04.cc:3807 msgid "User Guide Changes" msgstr "Gebruikershandleiding Veranderingen" -#: f.menus.cc:280 +#: f.menus.cc:242 msgid "Fotoxx updates notification" msgstr "Fotoxx update notificatie" -#: f.menus.cc:280 fotoxx-14.03.cc:3786 +#: f.menus.cc:242 fotoxx-14.04.cc:3810 msgid "Program Updates" msgstr "Programma Updates" -#: f.menus.cc:281 fotoxx-14.03.cc:3792 +#: f.menus.cc:243 fotoxx-14.04.cc:3816 msgid "Edit Functions Summary" msgstr "Opsomming Bewerkingsfuncties" -#: f.menus.cc:281 +#: f.menus.cc:243 msgid "Summary of image edit functions" msgstr "Opsomming van bewerkingsfuncties voor afbeeldingen" -#: f.menus.cc:282 fotoxx-14.03.cc:3789 +#: f.menus.cc:244 fotoxx-14.04.cc:3813 msgid "README" msgstr "README" -#: f.menus.cc:282 +#: f.menus.cc:244 msgid "Technical installation notes" msgstr "Opmerkingen Technische Installatie" -#: f.menus.cc:283 fotoxx-14.03.cc:3795 +#: f.menus.cc:245 fotoxx-14.04.cc:3819 msgid "Change Log" msgstr "Veranderingslogboek" -#: f.menus.cc:283 +#: f.menus.cc:245 msgid "List updates by Fotoxx version" msgstr "Opsomming updates per Fotoxx versie" -#: f.menus.cc:284 fotoxx-14.03.cc:3798 +#: f.menus.cc:246 fotoxx-14.04.cc:3822 msgid "Log File" msgstr "Log Bestand" -#: f.menus.cc:284 +#: f.menus.cc:246 msgid "View the log file and error messages" msgstr "Bekijk het log bestand en foutboodschappen" -#: f.menus.cc:285 +#: f.menus.cc:247 msgid "How to do Fotoxx translations" msgstr "Hoe Fotoxx vertalen" -#: f.menus.cc:285 fotoxx-14.03.cc:3801 +#: f.menus.cc:247 fotoxx-14.04.cc:3825 msgid "Translations" msgstr "Vertalingen" -#: f.menus.cc:286 fotoxx-14.03.cc:3804 +#: f.menus.cc:248 fotoxx-14.04.cc:3828 msgid "Home Page" msgstr "Homepage" -#: f.menus.cc:286 +#: f.menus.cc:248 msgid "Show the Fotoxx web page" msgstr "Toon de Fotoxx webpagina" -#: f.menus.cc:287 fotoxx-14.03.cc:3807 +#: f.menus.cc:249 fotoxx-14.04.cc:3831 msgid "About" msgstr "Over fotoxx" -#: f.menus.cc:287 +#: f.menus.cc:249 msgid "Version, license, contact, credits" msgstr "Versie, licentie, contact, bijdragen" -#: f.menus.cc:290 -msgid "Favs" -msgstr "Favorieten" - -#: f.menus.cc:292 +#: f.menus.cc:251 msgid "Color of area borders etc." msgstr "Kleur randen van uitsnede etc." -#: f.menus.cc:293 fotoxx.h:1072 +#: f.menus.cc:252 fotoxx.h:1078 msgid "Undo" msgstr "Ongedaan maken" -#: f.menus.cc:293 +#: f.menus.cc:252 msgid "Undo one edit" msgstr "Stap ongedaan maken " -#: f.menus.cc:294 fotoxx.h:1051 +#: f.menus.cc:253 fotoxx.h:1056 msgid "Redo" msgstr "Opnieuw" -#: f.menus.cc:294 +#: f.menus.cc:253 msgid "Redo one edit" msgstr "Stap opnieuw uitvoeren" -#: f.menus.cc:296 f.menus.cc:432 +#: f.menus.cc:254 f.menus.cc:348 msgid "Set gallery from current image file" msgstr "Instellen galerie van huidige afbeelding" -#: f.menus.cc:298 +#: f.menus.cc:256 msgid "Open the previous file" msgstr "Open vorig bestand" -#: f.menus.cc:298 fotoxx.h:1046 +#: f.menus.cc:256 fotoxx.h:1051 msgid "Prev" msgstr "Vorige" -#: f.menus.cc:299 fotoxx.h:1034 +#: f.menus.cc:257 fotoxx.h:1039 msgid "Next" msgstr "Volgende" -#: f.menus.cc:299 +#: f.menus.cc:257 msgid "Open the next file" msgstr "Open volgend bestand" -#: f.menus.cc:301 f.menus.cc:483 fotoxx.h:1068 +#: f.menus.cc:259 f.menus.cc:396 fotoxx.h:1074 msgid "Trash" msgstr "Prullenbak" -#: f.menus.cc:344 f.menus.cc:373 +#: f.menus.cc:306 msgid "Run as Fotoxx edit function" msgstr "Uitvoeren als Fotoxx bewerkingsfunctie" -#: f.menus.cc:412 +#: f.menus.cc:328 msgid "Top" msgstr "Boven" -#: f.menus.cc:433 +#: f.menus.cc:349 msgid "open another directory" msgstr "open andere map" -#: f.menus.cc:434 +#: f.menus.cc:350 msgid "go to bookmarked image" msgstr "ga naar afbeelding van bladwijzer" -#: f.menus.cc:435 +#: f.menus.cc:351 msgid "increase thumbnail size" msgstr "vergroten miniaturen" -#: f.menus.cc:436 +#: f.menus.cc:352 msgid "reduce thumbnail size" msgstr "verkleinen miniaturen" -#: f.menus.cc:437 +#: f.menus.cc:353 msgid "change sort order" msgstr "verander sorteer volgorde" -#: f.menus.cc:438 +#: f.menus.cc:354 msgid "jump to beginning (top)" msgstr "spring naar begin (boven)" -#: f.menus.cc:439 +#: f.menus.cc:355 msgid "jump to end (bottom)" msgstr "spring naar eind (onder)" -#: f.menus.cc:440 +#: f.menus.cc:356 msgid "previous page" msgstr "vorige pagina" -#: f.menus.cc:441 +#: f.menus.cc:357 msgid "next page" msgstr "volgende pagina" -#: f.menus.cc:442 +#: f.menus.cc:358 msgid "previous row" msgstr "vorige rij" -#: f.menus.cc:443 +#: f.menus.cc:359 msgid "next row" msgstr "volgende rij" -#: f.menus.cc:461 +#: f.menus.cc:360 +msgid "slow scroll" +msgstr "" + +#: f.menus.cc:374 msgid "Popup Image" msgstr "" -#: f.menus.cc:463 fotoxx.h:1054 +#: f.menus.cc:376 fotoxx.h:1059 msgid "Rename" msgstr "Hernoemen" -#: f.menus.cc:464 +#: f.menus.cc:377 msgid "Copy to Location" msgstr "Kopieren naar Locatie" -#: f.menus.cc:465 +#: f.menus.cc:378 msgid "Move to Location" msgstr "Verplaatsen naar Locatie" -#: f.menus.cc:466 +#: f.menus.cc:379 msgid "Copy to Clipboard" msgstr "Copieer naar Klembord" -#: f.menus.cc:467 +#: f.menus.cc:380 msgid "Remove from Collection" msgstr "Verwijderen uit Collectie" -#: f.menus.cc:468 +#: f.menus.cc:381 msgid "Cut to Image Cache" msgstr "Verplaatsen naar Afbeeldings Cache" -#: f.menus.cc:469 +#: f.menus.cc:382 msgid "Copy to Image Cache" msgstr "Copieer naar Afbeeldings Cache" -#: f.menus.cc:470 +#: f.menus.cc:383 msgid "Paste Image Cache Here (clear)" msgstr "Plakken Afbeeldings Cache Hier (schonen)" -#: f.menus.cc:471 +#: f.menus.cc:384 msgid "Paste Image Cache Here (keep)" msgstr "Plakken Afbeeldings Cache Hier (bewaren)" -#: f.menus.cc:481 +#: f.menus.cc:394 msgid "Select Area" msgstr "Uitsnede" @@ -2432,7 +2457,7 @@ msgid "Rating: %c (stars)" msgstr "Rating: %c (sterren)" -#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1939 f.meta.cc:3036 f.meta.cc:3311 +#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1940 f.meta.cc:3040 f.meta.cc:3315 msgid "file type cannot have metadata" msgstr "" @@ -2484,7 +2509,7 @@ msgid "Recent Tags" msgstr "recente tags" -#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4267 +#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4271 msgid "Defined Tags" msgstr "gedefineerde tags" @@ -2504,7 +2529,7 @@ msgid "time is invalid" msgstr "tijd is ongeldig" -#: f.meta.cc:532 fotoxx.h:1029 +#: f.meta.cc:532 fotoxx.h:1034 msgid "Manage Tags" msgstr "Tags beheren" @@ -2520,11 +2545,11 @@ msgid "tag" msgstr "tag" -#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1474 +#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1449 msgid "file not found" msgstr "bestand niet gevonden" -#: f.meta.cc:1552 f.meta.cc:3257 f.tools.cc:4501 f.tools.cc:4966 +#: f.meta.cc:1552 f.meta.cc:3261 f.tools.cc:4800 f.tools.cc:5265 msgid "0 files selected" msgstr "geen bestand geselecteerd" @@ -2549,7 +2574,7 @@ msgid "specify files and tags" msgstr "specificeer bestanden en tags" -#: f.meta.cc:1788 f.meta.cc:3369 f.tools.cc:4800 f.tools.cc:5185 +#: f.meta.cc:1788 f.meta.cc:3373 f.tools.cc:5099 f.tools.cc:5484 #, c-format msgid "%d files selected" msgstr "%d bestanden geselecteerd" @@ -2558,11 +2583,11 @@ msgid "View Metadata" msgstr "Bekijken Metadata" -#: f.meta.cc:1903 +#: f.meta.cc:1904 msgid "Caption: \n" msgstr "Onderschrift: \n" -#: f.meta.cc:1905 +#: f.meta.cc:1906 msgid "" "\n" "Comment: \n" @@ -2570,23 +2595,23 @@ "\n" "Commentaar: \n" -#: f.meta.cc:1949 +#: f.meta.cc:1950 msgid "key name" msgstr "sleutel naam" -#: f.meta.cc:1951 +#: f.meta.cc:1952 msgid "key value" msgstr "sleutel waarde" -#: f.meta.cc:2041 fotoxx.h:985 +#: f.meta.cc:2042 fotoxx.h:990 msgid "All" msgstr "Alles" -#: f.meta.cc:2042 +#: f.meta.cc:2043 msgid "One Key:" msgstr "Een Sleutel:" -#: f.meta.cc:2222 +#: f.meta.cc:2223 #, c-format msgid "" "Download geotags data (8 megabytes). \n" @@ -2597,48 +2622,40 @@ "Opslaan in %s \n" "Doorgaan?" -#: f.meta.cc:2261 +#: f.meta.cc:2262 msgid "download failed" msgstr "download mislukt" -#: f.meta.cc:2292 fotoxx-14.03.cc:1079 -msgid "Location from World Map" -msgstr "Locatie van Wereldkaart" - -#: f.meta.cc:2294 -msgid "Loading world map" -msgstr "Laden wereldkaart" - -#: f.meta.cc:2304 f.meta.cc:2449 +#: f.meta.cc:2298 f.meta.cc:2445 msgid "please download geolocations data" msgstr "download geolocatie gegevens" -#: f.meta.cc:2309 +#: f.meta.cc:2304 msgid "Loading geolocations" msgstr "Laden geolocaties" -#: f.meta.cc:2737 f.meta.cc:3209 f.meta.cc:3477 +#: f.meta.cc:2741 f.meta.cc:3213 f.meta.cc:3481 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "verkeerde breedtegraad/lengtegraad: %s %s" -#: f.meta.cc:3024 +#: f.meta.cc:3028 msgid "Geocoding web service courtesy of" msgstr "Geocoding web service dienstbaarheid van" -#: f.meta.cc:3045 f.meta.cc:3259 f.meta.cc:4772 +#: f.meta.cc:3049 f.meta.cc:3263 f.meta.cc:4778 msgid "city" msgstr "stad" -#: f.meta.cc:3048 f.meta.cc:3262 f.meta.cc:4775 +#: f.meta.cc:3052 f.meta.cc:3266 f.meta.cc:4781 msgid "country" msgstr "land" -#: f.meta.cc:3120 f.meta.cc:3390 +#: f.meta.cc:3124 f.meta.cc:3394 msgid "city not found" msgstr "stad niet gevonden" -#: f.meta.cc:3455 +#: f.meta.cc:3459 msgid "" "data is incomplete \n" " proceed?" @@ -2646,139 +2663,139 @@ "gegevens zijn onvolledig \n" " doorgaan?" -#: f.meta.cc:3481 f.tools.cc:4844 +#: f.meta.cc:3485 f.tools.cc:5143 msgid "no files selected" msgstr "geen bestanden geselecteerd" -#: f.meta.cc:3513 +#: f.meta.cc:3517 msgid "choose city" msgstr "kies stad" -#: f.meta.cc:3599 +#: f.meta.cc:3603 msgid "not found" msgstr "niet gevonden" -#: f.meta.cc:3600 +#: f.meta.cc:3604 msgid "city and country required" msgstr "stad en land verplicht" -#: f.meta.cc:3692 +#: f.meta.cc:3696 msgid "Report Geotag Groups" msgstr "Rapport Geotag Groepen" -#: f.meta.cc:3693 +#: f.meta.cc:3697 msgid "Group by country" msgstr "Groepeer per land" -#: f.meta.cc:3694 +#: f.meta.cc:3698 msgid "Group by country/city" msgstr "Groepeer per land/stad" -#: f.meta.cc:3695 +#: f.meta.cc:3699 msgid "Group by country/city/date" msgstr "Groepeer per land/stad/datum" -#: f.meta.cc:3698 +#: f.meta.cc:3702 msgid "Combine within" msgstr "Combineer binnen" -#: f.meta.cc:3700 +#: f.meta.cc:3704 msgid "days" msgstr "dagen" -#: f.meta.cc:3815 +#: f.meta.cc:3819 msgid "geotag groups" msgstr "geotag groepen" -#: f.meta.cc:4043 +#: f.meta.cc:4047 msgid "search range (km)" msgstr "zoekbereik (km)" -#: f.meta.cc:4116 +#: f.meta.cc:4120 msgid "No matching images found" msgstr "Geen matchende afbeeldingen gevonden" -#: f.meta.cc:4202 +#: f.meta.cc:4206 msgid "Search Image Metadata" msgstr "Doorzoeken Afbeelding Metadata" -#: f.meta.cc:4206 +#: f.meta.cc:4210 msgid "images to search:" msgstr "te zoeken afbeeldingen:" -#: f.meta.cc:4207 +#: f.meta.cc:4211 msgid "all" msgstr "alles" -#: f.meta.cc:4208 +#: f.meta.cc:4212 msgid "current set only" msgstr "alleen huidige verzameling " -#: f.meta.cc:4211 +#: f.meta.cc:4215 msgid "matching images:" msgstr "matchende afbeeldingen:" -#: f.meta.cc:4212 +#: f.meta.cc:4216 msgid "new set" msgstr "nieuwe verzameling" -#: f.meta.cc:4213 +#: f.meta.cc:4217 msgid "add to set" msgstr "toevoegen aan verzameling" -#: f.meta.cc:4214 +#: f.meta.cc:4218 msgid "remove" msgstr "verwijderen" -#: f.meta.cc:4217 +#: f.meta.cc:4221 msgid "report type:" msgstr "" -#: f.meta.cc:4218 +#: f.meta.cc:4222 msgid "gallery" msgstr "" -#: f.meta.cc:4219 +#: f.meta.cc:4223 msgid "metadata" msgstr "" -#: f.meta.cc:4225 +#: f.meta.cc:4229 msgid "date range" msgstr "datum van/tot" -#: f.meta.cc:4226 +#: f.meta.cc:4230 msgid "stars range" msgstr "sterren van/tot" -#: f.meta.cc:4227 +#: f.meta.cc:4231 msgid "search tags" msgstr "doorzoeken tags" -#: f.meta.cc:4228 +#: f.meta.cc:4232 msgid "search text" msgstr "doorzoeken tekst" -#: f.meta.cc:4229 +#: f.meta.cc:4233 msgid "search files" msgstr "doorzoeken bestanden" -#: f.meta.cc:4234 +#: f.meta.cc:4238 msgid "(yyyymmdd)" msgstr "(jjjjmmmdd)" -#: f.meta.cc:4240 +#: f.meta.cc:4244 msgid "all/any" msgstr "alle/enkele" -#: f.meta.cc:4259 +#: f.meta.cc:4263 msgid "other criteria" msgstr "andere criteria" -#: f.meta.cc:4263 +#: f.meta.cc:4267 msgid "other" msgstr "ander" -#: f.meta.cc:4398 +#: f.meta.cc:4402 msgid "" "to remove images from current set, \n" "search current set" @@ -2786,7 +2803,7 @@ "doorzoek huidige verzameling om afbeeldingen \n" "te verwijderen uit huidige verzameling " -#: f.meta.cc:4405 +#: f.meta.cc:4409 msgid "" "to add images to current set, \n" "search all images" @@ -2794,28 +2811,28 @@ "doorzoek alle afbeeldingen om afbeeldingen \n" "toe te voegen aan huidige verzameling " -#: f.meta.cc:4632 +#: f.meta.cc:4636 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "afbeeldingen toegevoegd: %d verwijderd: %d nieuwe telling: %d" -#: f.meta.cc:4635 +#: f.meta.cc:4639 msgid "no changes made" msgstr "geen veranderingen gemaakt" -#: f.meta.cc:4769 +#: f.meta.cc:4775 msgid "Add Geotags Search Criteria" msgstr "Toevoegen Geotags Zoek Criteria" -#: f.meta.cc:4788 +#: f.meta.cc:4794 msgid "range (km)" msgstr "bereik (km)" -#: f.meta.cc:4881 +#: f.meta.cc:4885 msgid "error in latitude/longitude/range" msgstr "fout in breedtegraad/lengtegraad/bereik" -#: f.meta.cc:4946 +#: f.meta.cc:4950 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2823,19 +2840,19 @@ "Deze items worden altijd gerapporteerd: \n" "datum, sterren, tags, onderschrift, commentaar" -#: f.meta.cc:4970 +#: f.meta.cc:4974 msgid "Additional Items for Report" msgstr "Toegevoegde Items voor Rapport" -#: f.meta.cc:4976 +#: f.meta.cc:4980 msgid "Keyword" msgstr "Sleutelwoord" -#: f.meta.cc:4983 +#: f.meta.cc:4987 msgid "Match Criteria" msgstr "Match Criteria" -#: f.meta.cc:5554 f.tools.cc:300 +#: f.meta.cc:5558 f.tools.cc:300 msgid "image index is missing" msgstr "afbeeldings index ontbreekt" @@ -2880,7 +2897,7 @@ "2. Druk [verwijderen]. \n" "3. Herhaal met nieuwe uitsnede. " -#: f.repair.cc:1563 fotoxx.h:1048 +#: f.repair.cc:1563 fotoxx.h:1053 msgid "Radius" msgstr "straal" @@ -3001,87 +3018,95 @@ msgid "Stuck Pixels file" msgstr "Defecte Pixels bestand" -#: f.repair.cc:4203 +#: f.repair.cc:4203 f.tools.cc:3380 msgid "file format error" msgstr "fout in bestandsformaat" -#: f.retouch.cc:292 fotoxx.h:993 +#: f.retouch.cc:292 +msgid "Amplifier" +msgstr "" + +#: f.retouch.cc:293 fotoxx.h:998 msgid "Brightness" msgstr "helderheid" -#: f.retouch.cc:293 fotoxx.h:1000 +#: f.retouch.cc:294 fotoxx.h:1005 msgid "Contrast" msgstr "Contrast" -#: f.retouch.cc:294 +#: f.retouch.cc:295 msgid "Low Color" msgstr "Laag Kleur" -#: f.retouch.cc:295 +#: f.retouch.cc:296 msgid "Warmer" msgstr "Warmer" -#: f.retouch.cc:296 +#: f.retouch.cc:297 msgid "Dark Areas" msgstr "Donkere gebieden" -#: f.retouch.cc:304 f.retouch.cc:305 f.retouch.cc:306 +#: f.retouch.cc:306 +msgid "Max." +msgstr "" + +#: f.retouch.cc:307 f.retouch.cc:308 f.retouch.cc:309 msgid "High" msgstr "Hoog" -#: f.retouch.cc:307 +#: f.retouch.cc:310 msgid "Cooler" msgstr "Koeler" -#: f.retouch.cc:308 +#: f.retouch.cc:311 msgid "Bright" msgstr "Licht" -#: f.retouch.cc:311 +#: f.retouch.cc:317 msgid "Click for white balance or black level" msgstr "Klik voor witbalans of zwart nivo" -#: f.retouch.cc:957 +#: f.retouch.cc:1067 msgid "low" msgstr "laag" -#: f.retouch.cc:959 +#: f.retouch.cc:1069 msgid "high" msgstr "hoog" -#: f.retouch.cc:962 +#: f.retouch.cc:1072 msgid "Amplify" msgstr "Versterken" -#: f.retouch.cc:1301 +#: f.retouch.cc:1411 msgid "Adjust Brightness Distribution" msgstr "Instellen Helderheids Verdeling" -#: f.retouch.cc:1339 +#: f.retouch.cc:1449 msgid "Flatten" msgstr "Afvlakken" -#: f.retouch.cc:1340 +#: f.retouch.cc:1450 msgid "Deband" msgstr "Ontstrepen" -#: f.retouch.cc:1341 +#: f.retouch.cc:1451 msgid "Darken" msgstr "Donker maken" -#: f.retouch.cc:1342 +#: f.retouch.cc:1452 msgid "Brighten" msgstr "Lichter maken" -#: f.retouch.cc:1675 +#: f.retouch.cc:1784 msgid "Ramp brightness across image" msgstr "Helderheidsverspreiding horizontaal/verticaal" -#: f.retouch.cc:2052 f.tools.cc:5777 +#: f.retouch.cc:2161 f.retouch.cc:2398 f.tools.cc:6085 msgid "Edit function must be active" msgstr "Bewerkingsfunctie moet actief zijn" -#: f.retouch.cc:2060 fotoxx-14.03.cc:3108 +#: f.retouch.cc:2169 fotoxx-14.04.cc:3132 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -3089,14 +3114,26 @@ "Uitsnede kan niet bewaard worden.\n" "Doorgaan?" -#: f.retouch.cc:2089 +#: f.retouch.cc:2198 msgid "power: center" msgstr "kracht: centrum" -#: f.retouch.cc:2094 +#: f.retouch.cc:2203 msgid "reset area" msgstr "reset uitsnede" +#: f.retouch.cc:2391 +msgid "Edit Function Amplifier" +msgstr "Versterker functie wijzigen" + +#: f.retouch.cc:2427 +msgid "minimum" +msgstr "minimum" + +#: f.retouch.cc:2429 +msgid "maximum" +msgstr "maximum" + #: f.tools.cc:95 msgid "Top Image Directories" msgstr "Hoogste Afbeeldings Mappen" @@ -3152,152 +3189,136 @@ msgid "COMPLETED" msgstr "VOLTOOID" -#: f.tools.cc:818 +#: f.tools.cc:817 msgid "Settings" msgstr "Instellingen" -#: f.tools.cc:821 +#: f.tools.cc:820 msgid "Startup Display" msgstr "Tonen bij Opstart" -#: f.tools.cc:823 +#: f.tools.cc:822 msgid "Recent Files Gallery" msgstr "Laatst bekeken galerie" -#: f.tools.cc:825 +#: f.tools.cc:824 msgid "Newest Files Gallery" msgstr "Nieuwste Bestanden Galerie" -#: f.tools.cc:827 +#: f.tools.cc:826 msgid "Previous Gallery" msgstr "" -#: f.tools.cc:829 +#: f.tools.cc:828 msgid "Previous Image" msgstr "" -#: f.tools.cc:831 +#: f.tools.cc:830 msgid "Blank Window" msgstr "Leeg Venster" -#: f.tools.cc:833 +#: f.tools.cc:832 msgid "Directory Gallery" msgstr "Galerie-map" -#: f.tools.cc:837 +#: f.tools.cc:836 msgid "Image File" msgstr "Afbeeldingsbestand" -#: f.tools.cc:844 -msgid "Menu Style" -msgstr "Menu Stijl" - -#: f.tools.cc:845 -msgid "Classic" -msgstr "Klassiek" - -#: f.tools.cc:846 -msgid "Vertical" -msgstr "Verticaal" - -#: f.tools.cc:849 +#: f.tools.cc:843 msgid "Toolbar Style" msgstr "Toolbar stijl" -#: f.tools.cc:851 +#: f.tools.cc:845 msgid "Icons" msgstr "Pictogrammen" -#: f.tools.cc:852 +#: f.tools.cc:846 msgid "Both" msgstr "Beide" -#: f.tools.cc:855 +#: f.tools.cc:849 msgid "Image Pan" msgstr "Afbeelding Pan" -#: f.tools.cc:856 +#: f.tools.cc:850 msgid "Drag" msgstr "Slepen" -#: f.tools.cc:857 -msgid "Scroll" -msgstr "Scroll" - -#: f.tools.cc:858 +#: f.tools.cc:852 msgid "Magnified" msgstr "Vergroot" -#: f.tools.cc:867 +#: f.tools.cc:861 msgid "Default JPEG quality" msgstr "Default JPEG kwaliteit" -#: f.tools.cc:871 +#: f.tools.cc:865 msgid "Zooms for 200%" msgstr "Inzoomen 200%" -#: f.tools.cc:875 +#: f.tools.cc:869 msgid "RAW command" msgstr "RAW opdracht" -#: f.tools.cc:879 +#: f.tools.cc:873 msgid "RAW file types" msgstr "RAW bestandstype" -#: f.tools.cc:1027 +#: f.tools.cc:1016 msgid "startup directory is invalid" msgstr "opstart map is ongeldig" -#: f.tools.cc:1035 +#: f.tools.cc:1024 msgid "startup file is invalid" msgstr "opstart bestand is ongeldig" -#: f.tools.cc:1130 +#: f.tools.cc:1105 msgid "Select startup directory" msgstr "Kies opstart map" -#: f.tools.cc:1138 +#: f.tools.cc:1113 msgid "Select startup image file" msgstr "Kies opstart afbeeldingsbestand" -#: f.tools.cc:1176 +#: f.tools.cc:1151 msgid "Click list position. Click thumbnail to add." msgstr "Klik regel in lijst. Om toe te voegen klik miniatuur." -#: f.tools.cc:1201 f.tools.cc:1418 +#: f.tools.cc:1176 f.tools.cc:1393 msgid "Edit Bookmarks" msgstr "Bewerken bladwijzers" -#: f.tools.cc:1349 +#: f.tools.cc:1324 msgid "unable to save bookmarks file" msgstr "kan bladwijzer bestand niet bewaren" -#: f.tools.cc:1418 +#: f.tools.cc:1393 msgid "Go To Bookmark" msgstr "Ga Naar Bladwijzer" -#: f.tools.cc:1563 +#: f.tools.cc:1538 msgid "Edit KB Shortcuts" msgstr "Bewerk KB Shortcuts" -#: f.tools.cc:1568 +#: f.tools.cc:1543 msgid "shortcut key:" msgstr "shortcut toets:" -#: f.tools.cc:1569 +#: f.tools.cc:1544 msgid "(enter key)" msgstr "" -#: f.tools.cc:1695 +#: f.tools.cc:1670 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Gereserveerd, kan niet gebruikt worden" -#: f.tools.cc:1826 +#: f.tools.cc:1801 msgid "unable to save KB-shortcuts file" msgstr "kan KB-shortcuts bestand niet bewaren" -#: f.tools.cc:1914 +#: f.tools.cc:1889 msgid "" "Right-click collection thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -3305,280 +3326,313 @@ "Rechterklik collectie miniatuur om te knippen/kopieren \n" "opslaan, invoegen vanuit cache, of verwijderen." -#: f.tools.cc:1955 +#: f.tools.cc:1930 msgid "Start a new collection, add images" msgstr "Begin een nieuwe collectie, afbeeldingen toevoegen" -#: f.tools.cc:1957 +#: f.tools.cc:1932 msgid "New collection from current gallery" msgstr "Nieuwe collectie van huidige galerie " -#: f.tools.cc:1959 +#: f.tools.cc:1934 msgid "Collection to view or edit" msgstr "Collectie om te bekijken of te bewerken" -#: f.tools.cc:1961 +#: f.tools.cc:1936 msgid "Select images, add to cache" msgstr "Selecteer afbeeldingen, aan cache toevoegen" -#: f.tools.cc:1963 +#: f.tools.cc:1938 msgid "Clear image cache" msgstr "Schonen afbeeldings cache" -#: f.tools.cc:1964 +#: f.tools.cc:1939 msgid "(0 images)" msgstr "(0 afbeeldingen)" -#: f.tools.cc:1966 +#: f.tools.cc:1941 msgid "Delete a collection" msgstr "Een collectie verwijderen" -#: f.tools.cc:1987 +#: f.tools.cc:1962 msgid "New Collection" msgstr "Nieuwe Collectie" -#: f.tools.cc:1988 +#: f.tools.cc:1963 msgid "Choose Collection" msgstr "Kies Collectie" -#: f.tools.cc:1989 +#: f.tools.cc:1964 msgid "Delete Collection" msgstr "Collectie verwijderen" -#: f.tools.cc:1990 +#: f.tools.cc:1965 #, c-format msgid "(%d images)" msgstr "(%d afbeeldingen)" -#: f.tools.cc:1991 +#: f.tools.cc:1966 #, c-format msgid "%d images remaining in cache" msgstr "%d afbeeldingen overgebleven in cache " -#: f.tools.cc:2025 f.tools.cc:2064 +#: f.tools.cc:2000 f.tools.cc:2039 msgid "New collection created" msgstr "Nieuwe collectie gemaakt" -#: f.tools.cc:2031 +#: f.tools.cc:2006 msgid "gallery is empty" msgstr "galerie is leeg" -#: f.tools.cc:2105 +#: f.tools.cc:2080 #, c-format msgid "delete %s ?" msgstr "verwijder %s ?" -#: f.tools.cc:2461 +#: f.tools.cc:2436 msgid "all collections" msgstr "alle collecties" -#: f.tools.cc:2495 +#: f.tools.cc:2470 msgid "Move Collection" msgstr "Verplaats Afbeeldingen" -#: f.tools.cc:2497 +#: f.tools.cc:2472 msgid "collection name" msgstr "naam collectie" -#: f.tools.cc:2500 +#: f.tools.cc:2475 msgid "old path segment" msgstr "oud pad segment" -#: f.tools.cc:2503 +#: f.tools.cc:2478 msgid "new path segment" msgstr "nieuw pad segment" -#: f.tools.cc:2592 +#: f.tools.cc:2567 msgid "Replace Collection?" msgstr "Vervangen Collectie?" -#: f.tools.cc:2708 +#: f.tools.cc:2694 msgid "Press ESC to exit slide show" msgstr "Druk ESC om diashow te stoppen" -#: f.tools.cc:2709 -msgid "last versions" -msgstr "laatste versies" - -#: f.tools.cc:2713 +#: f.tools.cc:2696 msgid "instant" msgstr "moment" -#: f.tools.cc:2714 +#: f.tools.cc:2697 msgid "fade-in" msgstr "fade-in" -#: f.tools.cc:2715 +#: f.tools.cc:2698 msgid "roll-right" msgstr "rol-rechts" -#: f.tools.cc:2716 +#: f.tools.cc:2699 msgid "roll-down" msgstr "rol-neer" -#: f.tools.cc:2717 +#: f.tools.cc:2700 msgid "venetian" msgstr "venetiaan" -#: f.tools.cc:2718 +#: f.tools.cc:2701 msgid "grate" msgstr "tralie" -#: f.tools.cc:2719 +#: f.tools.cc:2702 msgid "rectangle" msgstr "rechthoek" -#: f.tools.cc:2720 +#: f.tools.cc:2703 msgid "radar" msgstr "radar" -#: f.tools.cc:2721 +#: f.tools.cc:2704 msgid "jaws" msgstr "kaken" -#: f.tools.cc:2722 +#: f.tools.cc:2705 msgid "ellipse" msgstr "ellips" -#: f.tools.cc:2723 +#: f.tools.cc:2706 msgid "raindrops" msgstr "regendruppels" -#: f.tools.cc:2724 +#: f.tools.cc:2707 msgid "doubledoor" msgstr "nieuw transitie type" -#: f.tools.cc:2725 +#: f.tools.cc:2708 msgid "rotate" msgstr "" -#: f.tools.cc:2787 -msgid "Pause List" -msgstr "Pauze Lijst" +#: f.tools.cc:2739 +msgid "Clip Limit" +msgstr "Clip Limiet" -#: f.tools.cc:2794 -msgid "transitions" -msgstr "transities" +#: f.tools.cc:2741 +msgid "Show Captions" +msgstr "" -#: f.tools.cc:2796 -msgid "seconds" -msgstr "seconden" +#: f.tools.cc:2744 +msgid "Music File" +msgstr "Muziek Bestand" -#: f.tools.cc:2800 -msgid "Clip Limit (%)" -msgstr "Clip Limiet (%)" +#: f.tools.cc:2749 +msgid "Customize:" +msgstr "Aanpassen:" -#: f.tools.cc:2802 -msgid "show captions" -msgstr "" +#: f.tools.cc:2750 +msgid "transitions" +msgstr "transities" -#: f.tools.cc:2805 -msgid "music file" -msgstr "muziek bestand" +#: f.tools.cc:2751 +msgid "image files" +msgstr "" -#: f.tools.cc:2820 f.tools.cc:2828 f.tools.cc:2956 f.tools.cc:2979 -#: f.tools.cc:2992 +#: f.tools.cc:2759 f.tools.cc:2880 #, c-format msgid "%d images" msgstr "%d afbeeldingen" -#: f.tools.cc:2854 -msgid "no image files selected" -msgstr "geen afbeeldingsbestanden geselecteerd" +#: f.tools.cc:2781 f.tools.cc:2847 f.tools.cc:2875 f.tools.cc:2937 +#: f.tools.cc:3033 f.tools.cc:3189 f.tools.cc:3236 f.tools.cc:3253 +#: f.tools.cc:3396 +msgid "invalid collection" +msgstr "ongeldige collectie" -#: f.tools.cc:2945 f.tools.cc:2968 +#: f.tools.cc:2860 msgid "open collection" msgstr "open collectie" -#: f.tools.cc:3013 +#: f.tools.cc:2900 msgid "Select music file or playlist" msgstr "Selecteer muziekbestand of speellijst" -#: f.tools.cc:3046 -msgid "invalid collection" -msgstr "ongeldige collectie" - -#: f.tools.cc:3061 f.tools.cc:3131 -msgid "empty collection" -msgstr "lege collectie" - -#: f.tools.cc:3167 +#: f.tools.cc:2917 msgid "select random (if 5+ enabled)" msgstr "" -#: f.tools.cc:3186 +#: f.tools.cc:2941 msgid "Transition Preferences" msgstr "Transitie Voorkeuren" -#: f.tools.cc:3196 +#: f.tools.cc:2950 msgid "transition" msgstr "transitie" -#: f.tools.cc:3197 +#: f.tools.cc:2951 msgid "enabled" msgstr "geactiveerd" -#: f.tools.cc:3198 +#: f.tools.cc:2952 msgid "slowdown" msgstr "vertraging" -#: f.tools.cc:3199 +#: f.tools.cc:2953 msgid "preference" msgstr "voorkeur" -#: f.tools.cc:4506 +#: f.tools.cc:3037 +msgid "Image Preferences" +msgstr "" + +#: f.tools.cc:3041 f.tools.cc:3090 f.tools.cc:3202 +msgid "Image File:" +msgstr "Afbeeldingsbestand:" + +#: f.tools.cc:3044 +msgid "Play tone" +msgstr "" + +#: f.tools.cc:3046 +msgid "Transition" +msgstr "" + +#: f.tools.cc:3051 f.tools.cc:3071 +msgid "+Seconds" +msgstr "" + +#: f.tools.cc:3053 +msgid "before zoom" +msgstr "" + +#: f.tools.cc:3056 +msgid "Zoom size %" +msgstr "" + +#: f.tools.cc:3059 +msgid "Steps" +msgstr "" + +#: f.tools.cc:3063 +msgid "Zoom center" +msgstr "" + +#: f.tools.cc:3073 +msgid "after zoom" +msgstr "" + +#: f.tools.cc:3075 +msgid "next" +msgstr "volgende" + +#: f.tools.cc:4805 msgid "base" msgstr "basis" -#: f.tools.cc:4508 +#: f.tools.cc:4807 msgid "adder" msgstr "toevoeging" -#: f.tools.cc:4512 +#: f.tools.cc:4811 msgid "New Location" msgstr "Nieuwe Locatie" -#: f.tools.cc:4517 +#: f.tools.cc:4816 msgid "New File Type" msgstr "Nieuw Bestands Type" -#: f.tools.cc:4521 f.tools.cc:4529 +#: f.tools.cc:4820 f.tools.cc:4828 msgid "no change" msgstr "geen verandering" -#: f.tools.cc:4524 +#: f.tools.cc:4823 msgid "max. Width" msgstr "max. Breedte" -#: f.tools.cc:4527 fotoxx.h:1020 +#: f.tools.cc:4826 fotoxx.h:1025 msgid "Height" msgstr "hoogte" -#: f.tools.cc:4532 f.tools.cc:4905 +#: f.tools.cc:4831 f.tools.cc:5204 msgid "Delete Originals" msgstr "Verwijder Originelen" -#: f.tools.cc:4533 f.tools.cc:4902 +#: f.tools.cc:4832 f.tools.cc:5201 msgid "Copy Metadata" msgstr "Kopieren Metadata" -#: f.tools.cc:4534 f.tools.cc:4903 +#: f.tools.cc:4833 f.tools.cc:5202 msgid "Upright" msgstr "Rechtop" -#: f.tools.cc:4626 +#: f.tools.cc:4925 msgid "file already exists" msgstr "bestand bestaat reeds" -#: f.tools.cc:4634 +#: f.tools.cc:4933 msgid "file type not supported" msgstr "bestandstype niet ondersteund" -#: f.tools.cc:4703 +#: f.tools.cc:5002 msgid "cannot create new file" msgstr "kan nieuw bestand niet aanmaken" -#: f.tools.cc:4854 +#: f.tools.cc:5153 msgid "" "new name/base/adder unreasonable\n" " e.g. newname ### 100 10" @@ -3586,117 +3640,117 @@ "nieuwe naam/basis/toevoeging niet logisch\n" " bijv. naam ### 100 10" -#: f.tools.cc:4877 +#: f.tools.cc:5176 #, c-format msgid "max. size %d x %d is not reasonable" msgstr "max. grootte %d x %d is niet logisch" -#: f.tools.cc:4896 +#: f.tools.cc:5195 #, c-format msgid "Convert %d image files" msgstr "Converteren %d afbeeldingen" -#: f.tools.cc:4897 +#: f.tools.cc:5196 msgid "Rename to" msgstr "Hernoemen naar" -#: f.tools.cc:4898 +#: f.tools.cc:5197 msgid "Convert to" msgstr "Converteren naar" -#: f.tools.cc:4899 +#: f.tools.cc:5198 msgid "Resize within" msgstr "Herschalen in" -#: f.tools.cc:4900 +#: f.tools.cc:5199 msgid "Output to" msgstr "Uitvoer naar" -#: f.tools.cc:4906 +#: f.tools.cc:5205 msgid "PROCEED?" msgstr "DOORGAAN?" -#: f.tools.cc:4938 +#: f.tools.cc:5237 msgid "Batch Convert RAW Files" msgstr "Batchgewijs converteren RAW bestanden" -#: f.tools.cc:4969 +#: f.tools.cc:5268 msgid "output file type" msgstr "output bestandstype" -#: f.tools.cc:4981 +#: f.tools.cc:5280 msgid "white balance" msgstr "witbalans" -#: f.tools.cc:4982 +#: f.tools.cc:5281 msgid "interpolation" msgstr "interpolatie" -#: f.tools.cc:4983 +#: f.tools.cc:5282 msgid "color space" msgstr "kleurruimte" -#: f.tools.cc:4984 +#: f.tools.cc:5283 msgid "gamma curve" msgstr "gamma curve" -#: f.tools.cc:4987 +#: f.tools.cc:5286 msgid "camera" msgstr "camera" -#: f.tools.cc:4988 +#: f.tools.cc:5287 msgid "fixed" msgstr "vast" -#: f.tools.cc:4989 +#: f.tools.cc:5288 msgid "calculated" msgstr "berekend" -#: f.tools.cc:5006 +#: f.tools.cc:5305 msgid "default" msgstr "default" -#: f.tools.cc:5012 +#: f.tools.cc:5311 msgid "defaults" msgstr "defaults" -#: f.tools.cc:5526 +#: f.tools.cc:5834 msgid "x-spacing" msgstr "x-afstand" -#: f.tools.cc:5527 +#: f.tools.cc:5835 msgid "x-count" msgstr "x-aantal" -#: f.tools.cc:5528 +#: f.tools.cc:5836 msgid "x-enable" msgstr "x-activeren" -#: f.tools.cc:5534 +#: f.tools.cc:5842 msgid "y-spacing" msgstr "y-afstand" -#: f.tools.cc:5535 +#: f.tools.cc:5843 msgid "y-count" msgstr "y-aantal" -#: f.tools.cc:5536 +#: f.tools.cc:5844 msgid "y-enable" msgstr "y-activeren" -#: f.tools.cc:5984 +#: f.tools.cc:6292 msgid "Darkest and Brightest Pixels" msgstr "Donkerste en Lichtste Pixels" -#: f.tools.cc:6007 +#: f.tools.cc:6315 msgid "Dark Limit" msgstr "Donkere Limiet" -#: f.tools.cc:6008 +#: f.tools.cc:6316 msgid "Bright Limit" msgstr "Lichte Limiet" -#: f.tools.cc:6115 +#: f.tools.cc:6423 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3704,31 +3758,31 @@ "Helderheid moet een geleidelijke verandering laten \n" "zien, zich geheel uitstrekkend naar de randen." -#: f.tools.cc:6272 +#: f.tools.cc:6580 msgid "Available Translations" msgstr "Beschikbare vertalingen" -#: f.tools.cc:6276 +#: f.tools.cc:6584 msgid "Set Language" msgstr "Instellen taal" -#: f.tools.cc:6364 +#: f.tools.cc:6672 msgid "Make Launcher" msgstr "Maak Starter" -#: fotoxx-14.03.cc:312 +#: fotoxx-14.04.cc:309 msgid "Tab F: image file view/edit" msgstr "Tab F: afbeeldingsbestand bekijken/bewerken" -#: fotoxx-14.03.cc:321 +#: fotoxx-14.04.cc:318 msgid "Tab G: image gallery" msgstr "Tab G: afbeeldings galerie" -#: fotoxx-14.03.cc:330 +#: fotoxx-14.04.cc:327 msgid "Tab W: world map" msgstr "Tab W: wereldkaart" -#: fotoxx-14.03.cc:447 +#: fotoxx-14.04.cc:441 msgid "" "First time Fotoxx startup. \n" "Latest version: http://www.kornelix.com/fotoxx \n" @@ -3738,59 +3792,63 @@ "Laatste versie: http://www.kornelix.com/fotoxx \n" "Bestand indexering zal starten (kan even duren) \n" -#: fotoxx-14.03.cc:492 +#: fotoxx-14.04.cc:488 msgid "Please install missing programs:" msgstr "Ontbrekende programma's installeren" -#: fotoxx-14.03.cc:901 +#: fotoxx-14.04.cc:904 msgid "(reduced)" msgstr "(gereduceerd)" -#: fotoxx-14.03.cc:902 +#: fotoxx-14.04.cc:905 msgid "area active" msgstr "uitsnede actief" -#: fotoxx-14.03.cc:903 +#: fotoxx-14.04.cc:906 msgid "dialog open" msgstr "dialoog open" -#: fotoxx-14.03.cc:904 +#: fotoxx-14.04.cc:907 msgid "function busy" msgstr "functie bezig" -#: fotoxx-14.03.cc:905 +#: fotoxx-14.04.cc:908 msgid "file index busy" msgstr "bestand indexering bezig" -#: fotoxx-14.03.cc:906 +#: fotoxx-14.04.cc:909 msgid "menu locked" msgstr "menu gesloten" -#: fotoxx-14.03.cc:953 +#: fotoxx-14.04.cc:956 msgid "edits" msgstr "wijzigingen" -#: fotoxx-14.03.cc:999 +#: fotoxx-14.04.cc:1002 msgid "Kill active dialog?" msgstr "Afsluiten actieve dialoog?" -#: fotoxx-14.03.cc:2768 +#: fotoxx-14.04.cc:1082 +msgid "Location from World Map" +msgstr "Locatie van Wereldkaart" + +#: fotoxx-14.04.cc:2792 msgid "Exceed 50 anchor points" msgstr "50 ankerpunten overschreden" -#: fotoxx-14.03.cc:2951 +#: fotoxx-14.04.cc:2975 msgid "load curve from a file" msgstr "laad curve vanuit bestand" -#: fotoxx-14.03.cc:3026 +#: fotoxx-14.04.cc:3050 msgid "save curve to a file" msgstr "bewaar curve in een bestand" -#: fotoxx-14.03.cc:3101 +#: fotoxx-14.04.cc:3125 msgid "Too many edits, please save image" msgstr "Te veel aanpassingen, graag afbeelding opslaan" -#: fotoxx-14.03.cc:3116 +#: fotoxx-14.04.cc:3140 msgid "" "Select area not active.\n" "Continue?" @@ -3798,288 +3856,292 @@ "Uitsnede niet actief.\n" "Doorgaan?" -#: fotoxx-14.03.cc:3503 +#: fotoxx-14.04.cc:3527 msgid "This action will discard changes\n" msgstr "Deze bewerking zal veranderingen weggooien\n" -#: fotoxx-14.03.cc:3504 fotoxx.h:1026 +#: fotoxx-14.04.cc:3528 fotoxx.h:1031 msgid "Keep" msgstr "Handhaven" -#: fotoxx-14.03.cc:3505 +#: fotoxx-14.04.cc:3529 msgid "Discard" msgstr "Weggooien" -#: fotoxx-14.03.cc:3519 fotoxx-14.03.cc:3539 +#: fotoxx-14.04.cc:3543 fotoxx-14.04.cc:3563 msgid "prior function active" msgstr "vorige functie actief" -#: fotoxx.h:983 +#: fotoxx.h:988 msgid "Add" msgstr "Toevoegen" -#: fotoxx.h:984 +#: fotoxx.h:989 msgid "Add All" msgstr "Alles toevoegen" -#: fotoxx.h:986 +#: fotoxx.h:991 msgid "Amount" msgstr "waarde" -#: fotoxx.h:987 +#: fotoxx.h:992 msgid "Angle" msgstr "Hoek" -#: fotoxx.h:988 +#: fotoxx.h:993 msgid "Apply" msgstr "Toepassen" -#: fotoxx.h:989 +#: fotoxx.h:994 msgid "Autocomplete" msgstr "Auto-gereedmaken" -#: fotoxx.h:990 +#: fotoxx.h:995 msgid "Black" msgstr "Zwart" -#: fotoxx.h:991 +#: fotoxx.h:996 msgid "Blend Width" msgstr "Meng breedte" -#: fotoxx.h:994 +#: fotoxx.h:999 msgid "Browse" msgstr "Zoeken" -#: fotoxx.h:995 +#: fotoxx.h:1000 msgid "Cancel" msgstr "Annuleren" -#: fotoxx.h:996 +#: fotoxx.h:1001 msgid "center" msgstr "centrum" -#: fotoxx.h:997 +#: fotoxx.h:1002 msgid "Choose" msgstr "Kiezen" -#: fotoxx.h:998 +#: fotoxx.h:1003 msgid "Clear" msgstr "Herstellen" -#: fotoxx.h:1002 +#: fotoxx.h:1007 msgid "Create" msgstr "" -#: fotoxx.h:1003 +#: fotoxx.h:1008 msgid "Curve File:" msgstr "Curve bestand:" -#: fotoxx.h:1004 +#: fotoxx.h:1009 msgid "Cut" msgstr "Knippen" -#: fotoxx.h:1005 +#: fotoxx.h:1010 msgid "Delete" msgstr "Uitsnede verwijderen" -#: fotoxx.h:1007 -msgid "Bdist" -msgstr "Hverd" +#: fotoxx.h:1012 +msgid "Dist" +msgstr "" -#: fotoxx.h:1008 +#: fotoxx.h:1013 msgid "Done" msgstr "Klaar" -#: fotoxx.h:1009 +#: fotoxx.h:1014 msgid "edge" msgstr "rand" -#: fotoxx.h:1010 +#: fotoxx.h:1015 msgid "Edit" msgstr "Bewerken" -#: fotoxx.h:1012 +#: fotoxx.h:1017 msgid "Erase" msgstr "Verwijderen" -#: fotoxx.h:1013 +#: fotoxx.h:1018 msgid "Fetch" msgstr "Ophalen" -#: fotoxx.h:1014 +#: fotoxx.h:1019 msgid "Find" msgstr "Zoeken" -#: fotoxx.h:1015 +#: fotoxx.h:1020 msgid "Finish" msgstr "Gereed" -#: fotoxx.h:1016 +#: fotoxx.h:1021 msgid "Font" msgstr "Font" -#: fotoxx.h:1017 +#: fotoxx.h:1022 msgid "Geotags" msgstr "Geotags" -#: fotoxx.h:1019 +#: fotoxx.h:1024 msgid "Grid" msgstr "Raster" -#: fotoxx.h:1023 +#: fotoxx.h:1028 msgid "Images" msgstr "Afbeeldingen" -#: fotoxx.h:1024 +#: fotoxx.h:1029 msgid "Insert" msgstr "Invoegen" -#: fotoxx.h:1027 +#: fotoxx.h:1032 msgid "limit" msgstr "limiet" -#: fotoxx.h:1028 +#: fotoxx.h:1033 msgid "Make" msgstr "Maken" -#: fotoxx.h:1030 +#: fotoxx.h:1035 msgid "Map" msgstr "Kaart" -#: fotoxx.h:1031 +#: fotoxx.h:1036 msgid "Max" msgstr "Max" -#: fotoxx.h:1032 +#: fotoxx.h:1037 msgid "Negative" msgstr "Negatief" -#: fotoxx.h:1033 +#: fotoxx.h:1038 msgid "New" msgstr "Nieuw" -#: fotoxx.h:1035 zfuncs.cc:8589 +#: fotoxx.h:1040 zfuncs.cc:8589 msgid "No" msgstr "Nee" -#: fotoxx.h:1036 +#: fotoxx.h:1041 msgid "no images" msgstr "geen afbeeldingen" -#: fotoxx.h:1037 +#: fotoxx.h:1042 msgid "no selection" msgstr "geen selectie" -#: fotoxx.h:1038 +#: fotoxx.h:1043 msgid "OK" msgstr "OK" -#: fotoxx.h:1040 +#: fotoxx.h:1045 msgid "Open RAW File" msgstr "Open RAW bestand" -#: fotoxx.h:1042 +#: fotoxx.h:1047 msgid "Pause" msgstr "Pauze" -#: fotoxx.h:1043 +#: fotoxx.h:1048 msgid "Percent" msgstr "percentage" -#: fotoxx.h:1045 +#: fotoxx.h:1050 msgid "Presets" msgstr "Voorinstelling" -#: fotoxx.h:1047 +#: fotoxx.h:1052 msgid "Proceed" msgstr "Doorgaan" -#: fotoxx.h:1049 +#: fotoxx.h:1054 msgid "range" msgstr "bereik" -#: fotoxx.h:1052 +#: fotoxx.h:1057 msgid "Reduce" msgstr "verminderen" -#: fotoxx.h:1053 +#: fotoxx.h:1058 msgid "Remove" msgstr "Verwijderen" -#: fotoxx.h:1055 +#: fotoxx.h:1060 msgid "Reset" msgstr "Reset" -#: fotoxx.h:1056 +#: fotoxx.h:1061 msgid "Rotate" msgstr "Draaien" -#: fotoxx.h:1058 +#: fotoxx.h:1063 msgid "Unknown file type, save as tiff/jpeg/png to edit" msgstr "Bestandstype onbekend, om te bewerken opslaan als tiff/jpeg/png" -#: fotoxx.h:1059 +#: fotoxx.h:1064 msgid "Search" msgstr "Zoeken" -#: fotoxx.h:1063 +#: fotoxx.h:1065 +msgid "Seconds" +msgstr "Seconden" + +#: fotoxx.h:1069 msgid "Size" msgstr "Grootte" -#: fotoxx.h:1064 +#: fotoxx.h:1070 msgid "Start" msgstr "Starten" -#: fotoxx.h:1065 +#: fotoxx.h:1071 msgid "Strength" msgstr "Sterkte" -#: fotoxx.h:1066 +#: fotoxx.h:1072 msgid "Threshold" msgstr "drempel" -#: fotoxx.h:1067 +#: fotoxx.h:1073 #, c-format msgid "exceed %d files" msgstr "overschrijding %d bestanden " -#: fotoxx.h:1069 +#: fotoxx.h:1075 msgid "Trim" msgstr "Bijsnijden" -#: fotoxx.h:1070 +#: fotoxx.h:1076 msgid "Undo All" msgstr "Alles ongedaan maken" -#: fotoxx.h:1071 +#: fotoxx.h:1077 msgid "Undo Last" msgstr "Laatste ongedaan maken" -#: fotoxx.h:1073 +#: fotoxx.h:1079 msgid "Unfinish" msgstr "Unfinish" -#: fotoxx.h:1075 +#: fotoxx.h:1081 msgid "View" msgstr "Beeld" -#: fotoxx.h:1076 +#: fotoxx.h:1082 msgid "Web" msgstr "Web" -#: fotoxx.h:1077 +#: fotoxx.h:1083 msgid "White" msgstr "Wit" -#: fotoxx.h:1079 +#: fotoxx.h:1085 msgid "x-offset" msgstr "x-verschuiving" -#: fotoxx.h:1080 +#: fotoxx.h:1086 msgid "y-offset" msgstr "y-verschuiving" -#: fotoxx.h:1081 zfuncs.cc:8589 +#: fotoxx.h:1087 zfuncs.cc:8589 msgid "Yes" msgstr "Ja" @@ -4234,704 +4296,5 @@ msgid "add parameter" msgstr "toevoegen parameter" -#~ msgid "no top image directory defined" -#~ msgstr "bovenste afbeeldings map niet gedefinieerd" - -#~ msgid "Synch Files, Settings, Collections, Batch Funcs ..." -#~ msgstr "Synch Bestanden, Instellingen, Collecties, Batch Functies ..." - -#~ msgid "Synchronize Files" -#~ msgstr " Synchroniseren Bestanden" - -#~ msgid "Batch Rename" -#~ msgstr "Batchgewijs hernoemen" - -#~ msgid "Rename multiple image files" -#~ msgstr "Hernoemen meerdere afbeeldingsbestanden" - -#~ msgid "Convert resize, move multiple files" -#~ msgstr "Converteren herschalen, verplaatsen meerdere bestanden" - -#~ msgid "" -#~ "Metadata index is missing.\n" -#~ "Use Tools > Synchronize Files." -#~ msgstr "" -#~ "Metadata index ontbreekt.\n" -#~ "Gebruik Gereedschap > Synchroniseer Bestanden." - -#~ msgid "warmer" -#~ msgstr "warmer" - -#~ msgid "cooler" -#~ msgstr "koeler" - -#~ msgid "" -#~ "Synchronize Files makes gallery windows fast \n" -#~ "and enables metadata functions to work correctly.\n" -#~ msgstr "" -#~ "Synchroniseren van bestanden maken galerie vensters \n" -#~ "sneller en metadata functies werken daardoor correct.\n" - -#~ msgid "top image directory is invalid" -#~ msgstr "bovenste afbeeldings map is ongeldig" - -#~ msgid "thumbnail directory is invalid" -#~ msgstr "miniatuur map is ongeldig" - -#~ msgid "no search index file is present" -#~ msgstr "zoek-index bestand niet aanwezig" - -#~ msgid "last file sync time is unknown" -#~ msgstr "onbekende sync tijd laatste bestand" - -#~ msgid "new/modified files are present" -#~ msgstr "nieuwe/gewijzigde bestanden zijn aanwezig" - -#~ msgid "file sync disabled" -#~ msgstr "sync bestanden gedeactiveerd" - -#~ msgid "file sync not needed" -#~ msgstr "sync bestanden niet nodig" - -#~ msgid "Use file sync function (recommended)" -#~ msgstr "Gebruik bestanden sync functie (aanbevolen)" - -#~ msgid "(if NO, metadata functions are disabled)" -#~ msgstr "(indien NEE, worden metadata functies gedeactiveerd)" - -#~ msgid "Thumbnail Options:" -#~ msgstr "Miniatuur Opties:" - -#~ msgid "None (galleries are slow)" -#~ msgstr "Geen (galerien zijn traag)" - -#~ msgid "Use hidden directories with images" -#~ msgstr "Gebruik verborgen afbeeldings-bestanden" - -#~ msgid "Use Directory" -#~ msgstr "Map Gebruiken" - -#~ msgid "Initialize Everything" -#~ msgstr "Alles Initialiseren" - -#~ msgid "File sync is necessary. Cancel anyway?" -#~ msgstr "Sync bestanden is nodig. Toch annuleren?" - -#~ msgid "directory is invalid" -#~ msgstr "map is ongeldig" - -#~ msgid "select a thumbnail option" -#~ msgstr "selecteer een miniatuur optie" - -#~ msgid "thumbnail directory cannot be under top directory" -#~ msgstr "miniatuur map mag niet onder bovenste map liggen" - -#~ msgid "Synchronize Files (may need some time)" -#~ msgstr " Synchroniseren Bestanden (kan even duren)" - -#~ msgid "delete all thumbnails" -#~ msgstr "alle miniaturen verwijderen" - -#~ msgid "delete orphan thumbnails" -#~ msgstr "verweesde miniaturen verwijderen" - -#~ msgid "%d orphan thumbnails deleted \n" -#~ msgstr "%d verweesde miniaturen verwijderd\n" - -#~ msgid "create missing and update stale thumbnails" -#~ msgstr "Verkeerde miniaturen herstellen en verouderde acualiseren" - -#~ msgid "%d thumbnails created, %d errors \n" -#~ msgstr "%d miniaturen gemaakt, %d fouten \n" - -#~ msgid "no search index file is in use" -#~ msgstr "zoek-index bestand niet in gebruik" - -#~ msgid "rebuild search index" -#~ msgstr "opnieuw zoek-index opbouwen " - -#~ msgid "%d current index records found \n" -#~ msgstr "%d actuele index records gevonden \n" - -#~ msgid "find all image files and build index records" -#~ msgstr "zoek alle afbeeldingen en opbouwen index records" - -#~ msgid "too many image files" -#~ msgstr "te veel afbeeldingsbestanden" - -#~ msgid "found %d image files \n" -#~ msgstr "gevonden %d afbeeldingsbestanden \n" - -#~ msgid "merging old and new index records" -#~ msgstr "samenvoegen oude en nieuwe index records" - -#~ msgid "files found in current index recs: %d \n" -#~ msgstr "bestanden gevonden in actuele index recs: %d \n" - -#~ msgid "KILLED" -#~ msgstr "KILLED" - -#~ msgid "Show hidden files" -#~ msgstr "Toon verborgen bestanden" - -#~ msgid "new base name" -#~ msgstr "nieuwe basisnaam" - -#~ msgid "starting sequence" -#~ msgstr "start volgnummer" - -#~ msgid "increment" -#~ msgstr "toename" - -#~ msgid "new file already exists:" -#~ msgstr "nieuw bestand bestaat reeds:" - -#~ msgid "Rename failed:" -#~ msgstr "Hernoemen mislukt:" - -#~ msgid "base name / sequence / increment not reasonable" -#~ msgstr "basisnaam / volgorde / toename niet zinvol" - -#~ msgid "new file type" -#~ msgstr "nieuw bestandstype" - -#~ msgid "max. width" -#~ msgstr "max. breedte" - -#~ msgid "overwrite" -#~ msgstr "overschrijven" - -#~ msgid "copy to location" -#~ msgstr "kopieren naar locatie" - -#~ msgid "move to location" -#~ msgstr "verplaatsen naar locatie" - -#~ msgid "delete metadata" -#~ msgstr "verwijderen metadata" - -#~ msgid "upright rotation" -#~ msgstr "rechtop rotatie" - -#~ msgid "overwrite files?" -#~ msgstr "overschrijven bestanden?" - -#~ msgid "overwrite files? (max. %d x %d)" -#~ msgstr "overschrijven bestanden? (max. %d x %d)" - -#~ msgid "" -#~ "copy files? \n" -#~ " to location %s" -#~ msgstr "" -#~ "coieer bestanden? \n" -#~ " naar locatie %s" - -#~ msgid "" -#~ "copy files? (max. %d x %d) \n" -#~ " to location %s" -#~ msgstr "" -#~ "copieer bestanden? (max. %d x %d) \n" -#~ " naar locatie %s" - -#~ msgid "" -#~ "\n" -#~ " and delete originals" -#~ msgstr "" -#~ "\n" -#~ " en verwijder originelen" - -#~ msgid "edits: %d" -#~ msgstr "wijzigingen: %d" - -#~ msgid "file sync busy" -#~ msgstr "bestands sync bezig" - -#~ msgid "file sync active" -#~ msgstr "bestands sync actief" - -#~ msgid "search index missing" -#~ msgstr "zoek-index ontbreekt" - -#~ msgid "open" -#~ msgstr "Openen" - -#~ msgid "choose" -#~ msgstr "Kies" - -#~ msgid "open folder" -#~ msgstr "open map" - -#~ msgid "Adjust White Balance" -#~ msgstr "Instellen witbalans" - -#~ msgid "Click white or gray image location" -#~ msgstr "Klik op een witte of grijze locatie in de afbeelding" - -#~ msgid "reduce" -#~ msgstr "verminderen" - -#~ msgid "outline threshold" -#~ msgstr "contour drempel" - -#~ msgid "outline width" -#~ msgstr "contour breedte" - -#~ msgid "image brightness" -#~ msgstr "helderheid afbeelding" - -#~ msgid "Brightness/Contrast/Color" -#~ msgstr "Helderheid/Contrast/Kleur" - -#~ msgid "Adjust contrast using a gamma curve" -#~ msgstr "Instellen contrast met een gamma curve" - -#~ msgid "Gamma Curves" -#~ msgstr "Gamma Curves" - -#~ msgid "Click on a white/gray area to fix color tint" -#~ msgstr "Klik op wit/zwart uitsnede om kleurtint te repareren " - -#~ msgid "White Balance" -#~ msgstr "Witbalans instellen" - -#~ msgid "Brightness/Color" -#~ msgstr "Helderheid/Kleur instellen" - -#~ msgid "edge detection" -#~ msgstr "rand herkenning" - -#~ msgid "cycles" -#~ msgstr "cycli" - -#~ msgid "small-steps" -#~ msgstr "kleine-stappen" - -#~ msgid "Saturation" -#~ msgstr "Verzadiging" - -#~ msgid " reset 1 " -#~ msgstr " herstel 1" - -#~ msgid "reset all" -#~ msgstr "alles terugzetten" - -#~ msgid "previous" -#~ msgstr "vorig" - -#~ msgid "adjust image gamma" -#~ msgstr "instellen afbeelding gamma" - -#~ msgid "arrow keys" -#~ msgstr "pijltjes toetsen" - -#~ msgid "curve file is invalid" -#~ msgstr "curve bestand is ongeldig" - -#~ msgid "curve file has different no. of curves" -#~ msgstr "curve bestand heeft verschillend aantal curves" - -#~ msgid "histogram" -#~ msgstr "histogram" - -#~ msgid "+Brightness -Density" -#~ msgstr "+Helderheid -Dichtheid" - -#~ msgid "False Colors" -#~ msgstr "Kleuren Verschuiven" - -#~ msgid "menu name" -#~ msgstr "menu naam" - -#~ msgid "Plugins menu is empty" -#~ msgstr "Plugins menu is leeg" - -#~ msgid "Newly Added Images" -#~ msgstr "Nieuw Toegevoegde Afbeeldingen" - -#~ msgid "CMYK Density" -#~ msgstr "CMYK dichtheid" - -#~ msgid "geotags file must be downloaded" -#~ msgstr "geotags bestand moet worden gedownload" - -#~ msgid "old top directory" -#~ msgstr "bovenste map oud" - -#~ msgid "new top directory" -#~ msgstr "bovenste map nieuw" - -#~ msgid "completed" -#~ msgstr "Klaar" - -#~ msgid "prior function still active" -#~ msgstr "vorige functie nog actief" - -#~ msgid "Discard edits?" -#~ msgstr "Weggooien wijzigingen?" - -#~ msgid "search index file missing" -#~ msgstr "zoek-index bestand ontbreekt" - -#~ msgid "Red: Green" -#~ msgstr "Rood: Groen" - -#~ msgid "Green: Blue" -#~ msgstr "Groen: Blauw" - -#~ msgid "Blue: Red" -#~ msgstr "Blauw: Rood" - -#~ msgid "Blend Width for edits in area" -#~ msgstr "Meng Breedte voor bewerkingen in uitsnede" - -#~ msgid "" -#~ "layout image file error: \n" -#~ " %s" -#~ msgstr "" -#~ "layout afbeeldingsbestand fout: \n" -#~ " %s" - -#~ msgid "" -#~ "overlay image file error: \n" -#~ " %s" -#~ msgstr "" -#~ "overlay afbeeldingsbestand fout: \n" -#~ " %s" - -#~ msgid "Edge Blend Width" -#~ msgstr "Rand Meng Breedte" - -#~ msgid "Batch Convert/Resize/Move" -#~ msgstr "Batchgewijs Converteren/Herschalen/Verplaatsen" - -#~ msgid "latest versions only" -#~ msgstr "alleen laatste versies" - -#~ msgid "continuous loop" -#~ msgstr "doorlopende loop" - -#~ msgid "start with current image" -#~ msgstr "begin met huidige afbeelding" - -#~ msgid "collection:" -#~ msgstr "collectie:" - -#~ msgid "save as collection" -#~ msgstr "opslaan als collectie" - -#~ msgid "same" -#~ msgstr "zelfde" - -#~ msgid "replace originals" -#~ msgstr "vervangen originelen" - -#~ msgid "remove EXIF" -#~ msgstr "verwijder EXIF" - -#~ msgid "delete originals" -#~ msgstr "verwijder originelen" - -#~ msgid "replace original files?" -#~ msgstr "vervangen originele bestanden?" - -#~ msgid "replace original files? (max. %d x %d)" -#~ msgstr "vervangen originele bestanden? (max. %d x %d)" - -#~ msgid "working" -#~ msgstr "bezig" - -#~ msgid "Darker Areas" -#~ msgstr "Donkere delen" - -#~ msgid "Lighter Areas" -#~ msgstr "Lichtere delen" - -#~ msgid "Cartoon Parameters" -#~ msgstr "Cartoon Parameters" - -#~ msgid "Contrast Span" -#~ msgstr "Contrast spanwijdte" - -#~ msgid "Contrast Spread" -#~ msgstr "Contrast spreiding" - -#~ msgid "Contrast Saturation" -#~ msgstr "Contrast Verzadiging" - -#~ msgid "Use buttons or drag right edge with mouse" -#~ msgstr "gebruik knoppen of sleep rechter rand met de muis" - -#~ msgid "invert" -#~ msgstr "omkeren" - -#~ msgid "Rotate Right" -#~ msgstr "Rechts Draaien" - -#~ msgid "Rotate Right 90 degrees" -#~ msgstr "Rechts Draaien 90 graden" - -#~ msgid "Rotate Left" -#~ msgstr "Links Draaien" - -#~ msgid "Rotate Left 90 degrees" -#~ msgstr "Links Draaien 90 graden" - -#~ msgid "Cartoon" -#~ msgstr "Cartoon" - -#~ msgid "Convert into a cartoon drawing" -#~ msgstr "Omzetten naar cartoon tekening" - -#~ msgid "new gallery from tab F" -#~ msgstr "nieuwe galerie van tab F" - -#~ msgid "nothing in cache" -#~ msgstr "niets in cache" - -#~ msgid "negative" -#~ msgstr "negatief" - -#~ msgid "Adjust Brightness and Color" -#~ msgstr "Instellen helderheid en kleur" - -#~ msgid "Save+F" -#~ msgstr "Opslaan.B" - -#~ msgid "Save to a new file" -#~ msgstr "Opslaan als ..." - -#~ msgid "Save+V" -#~ msgstr "Opslaan.V" - -#~ msgid "Save to a new version" -#~ msgstr "Opslaan als nieuwe versie" - -#~ msgid "Save to the same file" -#~ msgstr "Opslaan naar zelfde bestand" - -#~ msgid "Save to a new file name" -#~ msgstr "Opslaan met nieuwe bestandsnaam" - -#~ msgid "Save to New File" -#~ msgstr "Opslaan als ..." - -#~ msgid "Save to a new (next) version" -#~ msgstr "Opslaan als nieuwe (volgende) versie" - -#~ msgid "Save to New Version" -#~ msgstr "Opslaan als nieuwe versie" - -#~ msgid "Save to the same file (replace)" -#~ msgstr "Opslaan in zelfde bestand (vervangen)" - -#~ msgid "Save to Same File" -#~ msgstr "Opslaan" - -#~ msgid "Save File" -#~ msgstr "Bestand opslaan" - -#~ msgid "Warning" -#~ msgstr "Waarschuwing" - -#~ msgid "Do not warn again" -#~ msgstr "Niet opnieuw waarschuwen" - -#~ msgid "Overwrite original file?" -#~ msgstr "Overschrijven origineel bestand?" - -#~ msgid "Save Stuck Pixels" -#~ msgstr "Opslaan Defecte Pixels" - -#~ msgid "there are zero stuck pixels" -#~ msgstr "er zijn geen defecte pixels" - -#~ msgid "current tags" -#~ msgstr "actuele tags" - -#~ msgid "image stars" -#~ msgstr "afbeeldings sterren" - -#~ msgid "use last" -#~ msgstr "laatste gebruiken" - -#~ msgid "image date (yyyymmdd)" -#~ msgstr "datum (jjjjmmdd)" - -#~ msgid "Edit Caption and Comments" -#~ msgstr "Bewerk Onderschrift en Commentaar" - -#~ msgid "change sequence" -#~ msgstr "volgorde wijzigen" - -#~ msgid "jump to last page" -#~ msgstr "spring naar laatste pagina " - -#~ msgid "jump to first page" -#~ msgstr "spring naar eerste pagina" - -#~ msgid "Edit image geotags" -#~ msgstr "Bewerken afbeelding geotags" - -#~ msgid "Batch Tags" -#~ msgstr "Batchgewijze Tags" - -#~ msgid "Edit image date/rating/tags" -#~ msgstr "Bewerken afbeelding datum/waarde/tags" - -#~ msgid "Edit image caption or comment" -#~ msgstr "Bewerken afbeelding onderschrift of commentaar" - -#~ msgid "Edit Caption/Comments" -#~ msgstr "Bewerken Onderschrift/Commentaar" - -#~ msgid "User Guide etc." -#~ msgstr "Gebruikershandleiding etc." - -#~ msgid "no plugin command" -#~ msgstr "geen plugin commando" - -#~ msgid "cmsCreateTransform() failed" -#~ msgstr "cmsCreateTransform() mislukt" - -#~ msgid "angle" -#~ msgstr "hoek" - -#~ msgid "Start a new collection" -#~ msgstr "Nieuwe collectie beginnen" - -#~ msgid "" -#~ "Right-click collection thumbnails to \n" -#~ "cut/copy to cache, paste cache, remove." -#~ msgstr "" -#~ "Rechterklik verzameling miniaturen voor \n" -#~ "verplaatsen/kopieren naar cache, plakken cache, verwijderen." - -#~ msgid "Warn Overwrite Original" -#~ msgstr "Waarschuwing Overschrijven Origineel" - -#~ msgid "bright pixels" -#~ msgstr "lichte pixels" - -#~ msgid "Expand Brightness Range" -#~ msgstr "Helderheidsbereik vergroten" - -#~ msgid "Flatten Brightness Distribution" -#~ msgstr "Helderheidsverdeling afvlakken" - -#~ msgid "Expand brightness range" -#~ msgstr "Uitbreiden helderheids bereik" - -#~ msgid "Expand Brightness" -#~ msgstr "Helderheidsbereik vergroten" - -#~ msgid "Flatten brightness distribution" -#~ msgstr "Afvlakken helderheidsverdeling" - -#~ msgid "Flatten Brightness" -#~ msgstr "Helderheidsverdeling afvlakken" - -#~ msgid "Cut off unwanted margins" -#~ msgstr "Afsnijden ongewenste marges" - -#~ msgid "Rotate by any angle" -#~ msgstr "Draaien over een hoek" - -#~ msgid "Rotate, Trim/Crop, Resize, Add Text" -#~ msgstr "Roteren, Bijsnijden, Herschalen, Toevoegen Tekst" - -#~ msgid "Trim/Crop" -#~ msgstr "Bijsnijden" - -#~ msgid "Drag middle to move, drag corners to resize." -#~ msgstr "Sleep het midden om te verplaatsen, sleep hoeken om te vergroten." - -#~ msgid "degrees" -#~ msgstr "graden" - -#~ msgid "Rotate Image" -#~ msgstr "Afbeelding draaien" - -#~ msgid "Drag right edge with mouse" -#~ msgstr "Sleep rechterrand met de muis" - -#~ msgid "Save CMYK parameters" -#~ msgstr "Opslaan CMYK parameters" - -#~ msgid "CMYK parameters file" -#~ msgstr "CMYK parameter bestand" - -#~ msgid "Load CMYK parameters" -#~ msgstr "Laden DRGB parameters" - -#~ msgid "Add standard bias" -#~ msgstr "Toevoegen standaard afwijking" - -#~ msgid "customize" -#~ msgstr "Aanpassen" - -#~ msgid "landscape" -#~ msgstr "landscape" - -#~ msgid "portrait" -#~ msgstr "portrait" - -#~ msgid "location is not a valid directory" -#~ msgstr "locatie is niet een geldige map" - -#~ msgid "" -#~ "warning: real memory %d MB < required %d MB \n" -#~ "response time may become very long \n" -#~ msgstr "" -#~ "waarschuwing: werkelijk geheugen %d MB < vereiste %d MB \n" -#~ "responsetijd kan erg groot worden \n" - -#~ msgid "select random" -#~ msgstr "selecteer random" - -#~ msgid "page-flip" -#~ msgstr "pagina-spiegeling" - -#~ msgid "shift-left" -#~ msgstr "shift-links" - -#~ msgid "(enter keys)" -#~ msgstr "(geef toetsen)" - -#~ msgid "Previous Image Viewed" -#~ msgstr "Laatst bekeken afbeelding" - -#~ msgid "invalid thumbnails directory: %s" -#~ msgstr "ongeldige miniaturen map: %s" - -#~ msgid "Thumbnail Directory" -#~ msgstr "Miniaturen Map" - -#~ msgid "maximum" -#~ msgstr "maximum" - -#~ msgid "minimum" -#~ msgstr "minimum" - -#~ msgid "Edit Function Amplifier" -#~ msgstr "Versterker functie wijzigen" - -#~ msgid "delete" -#~ msgstr "verwijder" - -#~ msgid "create" -#~ msgstr "maken" - -#~ msgid "Leverage edits by brightness or color" -#~ msgstr "Veranderingen versterken met helderheid of kleur" - -#~ msgid "Leverage Edits" -#~ msgstr "Veranderingen versterken" - -#~ msgid "Edit translations while using Fotoxx" -#~ msgstr "Bewerken vertalingen bij gebruik van Fotoxx" - -#~ msgid "Edit Translations" -#~ msgstr "Bewerken vertalingen" - -#~ msgid "Favorites Menu" -#~ msgstr "Favorieten Menu" +#~ msgid "Transition:" +#~ msgstr "Transitie:" diff -Nru fotoxx-14.03/locales/translate-pt.po fotoxx-14.04/locales/translate-pt.po --- fotoxx-14.03/locales/translate-pt.po 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/locales/translate-pt.po 2014-04-01 06:09:31.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: fotoxx-12.09\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-01 08:51+0100\n" +"POT-Creation-Date: 2014-04-01 08:04+0200\n" "PO-Revision-Date: 2014-01-22 23:13-0300\n" "Last-Translator: Andre Campos Rodovalho \n" "Language-Team: Portuguese\n" @@ -22,7 +22,7 @@ msgid "Select Area for Edits" msgstr "Selecionar área para edições" -#: f.area.cc:57 f.retouch.cc:2051 +#: f.area.cc:57 f.retouch.cc:2160 msgid "Press F1 for help" msgstr "Pressione F1 para ajuda" @@ -66,7 +66,7 @@ msgid "select all matching colors within mouse" msgstr "selecionar todas as cores correspondentes com o mouse" -#: f.area.cc:115 f.retouch.cc:2086 +#: f.area.cc:115 f.retouch.cc:2195 msgid "mouse radius" msgstr "raio do mouse" @@ -158,7 +158,7 @@ msgid "save select area to a file" msgstr "salve a área selecionada em um arquivo" -#: f.bend.cc:72 f.menus.cc:246 +#: f.bend.cc:72 f.menus.cc:208 msgid "Unbend" msgstr "Desempenar" @@ -186,7 +186,7 @@ " Clique nos quatro cantos de um quadrilátero. Pressione [aplicar]. \n" " A imagem será distorcida para fazer do quadrilátero um retângulo." -#: f.bend.cc:353 f.menus.cc:247 +#: f.bend.cc:353 f.menus.cc:209 msgid "Keystone Correction" msgstr "Correção Trapezoidal" @@ -236,7 +236,7 @@ " Faça vários ajustes até que esteja satisfeito. \n" " Quando terminar, selecione outra área e precione [pronto]." -#: f.bend.cc:1105 f.menus.cc:249 +#: f.bend.cc:1105 f.menus.cc:211 msgid "Warp area" msgstr "Distorcer área" @@ -258,7 +258,7 @@ " Faça vários ajustes até que esteja satisfeito. \n" " Quando terminar, precione [pronto]." -#: f.bend.cc:1520 f.menus.cc:250 +#: f.bend.cc:1520 f.menus.cc:212 msgid "Warp curved" msgstr "Distorcer curvo" @@ -266,7 +266,7 @@ msgid "warp span" msgstr "deformar alcance" -#: f.bend.cc:1830 f.menus.cc:251 +#: f.bend.cc:1830 f.menus.cc:213 msgid "Warp linear" msgstr "Distorcer linear" @@ -280,15 +280,15 @@ " Faça vários ajustes até que esteja satisfeito. \n" " Quando terminar, precione [pronto]." -#: f.bend.cc:2161 f.menus.cc:252 +#: f.bend.cc:2161 f.menus.cc:214 msgid "Warp affine" msgstr "Distorcer afim" -#: f.color.cc:64 f.menus.cc:239 +#: f.color.cc:64 f.menus.cc:201 msgid "Shift Colors" msgstr "Deslocar Cores" -#: f.color.cc:285 f.menus.cc:240 +#: f.color.cc:285 f.menus.cc:202 msgid "Color Mode" msgstr "Modos de Cores" @@ -341,8 +341,8 @@ msgid "mouse radius for color sample" msgstr "raio do mouse para a amostra de cor" -#: f.color.cc:609 f.color.cc:614 f.file.cc:4220 f.menus.cc:208 f.menus.cc:297 -#: f.menus.cc:433 fotoxx.h:1039 +#: f.color.cc:609 f.color.cc:614 f.file.cc:4222 f.menus.cc:172 f.menus.cc:255 +#: f.menus.cc:349 fotoxx.h:1044 msgid "Open" msgstr "Abrir" @@ -366,11 +366,11 @@ msgid "select source image color first" msgstr "selecione imagem para fonte de cor primeiro" -#: f.color.cc:872 f.tools.cc:5665 +#: f.color.cc:872 f.tools.cc:5973 msgid "Click image to select pixels." msgstr "Clique na imagem para selecionar pixels." -#: f.color.cc:911 f.menus.cc:243 +#: f.color.cc:911 f.menus.cc:205 msgid "Revise RGB" msgstr "Revisar RGB" @@ -398,15 +398,15 @@ msgid "+Blue -Yellow" msgstr "+Azul -Amarelo" -#: f.color.cc:1382 fotoxx.h:1050 +#: f.color.cc:1382 fotoxx.h:1055 msgid "Red" msgstr "Vermelho" -#: f.color.cc:1383 fotoxx.h:1018 +#: f.color.cc:1383 fotoxx.h:1023 msgid "Green" msgstr "Verde" -#: f.color.cc:1384 fotoxx.h:992 +#: f.color.cc:1384 fotoxx.h:997 msgid "Blue" msgstr "Azul" @@ -439,7 +439,7 @@ msgstr "Pintar e distorcer imagem" #: f.combine.cc:2831 f.combine.cc:3485 f.combine.cc:4902 f.combine.cc:5801 -#: f.effects.cc:3478 f.menus.cc:60 f.menus.cc:121 +#: f.effects.cc:3546 f.menus.cc:87 msgid "Image" msgstr "Imagem" @@ -507,7 +507,7 @@ msgid "no curve (scanned image)" msgstr "não vetorial (imagem digitalizada)" -#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:214 f.menus.cc:473 +#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:178 f.menus.cc:386 msgid "Resize" msgstr "Redimensionar" @@ -669,9 +669,9 @@ #: f.combine.cc:6839 msgid "Gradual" -msgstr "" +msgstr "Gradual" -#: f.combine.cc:6842 fotoxx.h:1044 +#: f.combine.cc:6842 fotoxx.h:1049 msgid "Power" msgstr "Força" @@ -684,7 +684,7 @@ msgid "Enter text, click/drag on image." msgstr "Digite o texto, clique/arraste na imagem." -#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:850 +#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:844 msgid "Text" msgstr "Texto" @@ -704,8 +704,8 @@ msgid "shadow" msgstr "sombra" -#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:63 f.menus.cc:124 -#: f.menus.cc:292 fotoxx.h:999 +#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:90 f.menus.cc:251 +#: fotoxx.h:1004 msgid "Color" msgstr "Cor" @@ -713,7 +713,7 @@ msgid "Transparency" msgstr "Transparência" -#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1078 +#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1084 msgid "Width" msgstr "Largura" @@ -758,7 +758,7 @@ msgid "black/white" msgstr "preto/branco" -#: f.effects.cc:989 f.menus.cc:257 +#: f.effects.cc:989 f.menus.cc:219 msgid "Graduated Blur" msgstr "Desfoque Graduado" @@ -826,59 +826,75 @@ msgid "borders" msgstr "bordas" -#: f.effects.cc:2474 f.menus.cc:262 +#: f.effects.cc:2474 f.menus.cc:224 msgid "Vignette" msgstr "Vinheta" #: f.effects.cc:2829 msgid "Add Texture" +msgstr "Adicionar Textura" + +#: f.effects.cc:3043 +msgid "Background Pattern" msgstr "" -#: f.effects.cc:3040 -msgid "Add pattern" +#: f.effects.cc:3047 +msgid "Pattern File:" msgstr "" -#: f.effects.cc:3044 f.menus.cc:264 -msgid "Pattern" +#: f.effects.cc:3052 +msgid "Geometry" msgstr "" -#: f.effects.cc:3051 -msgid "Pattern size" +#: f.effects.cc:3053 +msgid "Calculate" msgstr "" -#: f.effects.cc:3062 f.effects.cc:3066 +#: f.effects.cc:3055 +msgid "Zoom" +msgstr "" + +#: f.effects.cc:3066 f.menus.cc:226 +msgid "Pattern" +msgstr "Padrão" + +#: f.effects.cc:3073 msgid "Overlap" +msgstr "Sobreposição" + +#: f.effects.cc:3080 +msgid "Opacity" msgstr "" -#: f.effects.cc:3107 +#: f.effects.cc:3116 msgid "choose pattern tile" -msgstr "" +msgstr "escolha padrão do ladrilho" -#: f.effects.cc:3382 +#: f.effects.cc:3450 msgid "Create Mosaic" -msgstr "" +msgstr "Criar Mosaico" -#: f.effects.cc:3468 +#: f.effects.cc:3536 msgid "Tile" -msgstr "" +msgstr "Ladrilho" -#: f.effects.cc:3476 f.menus.cc:259 +#: f.effects.cc:3544 f.menus.cc:221 msgid "Tiles" msgstr "Ladrilhos" -#: f.effects.cc:3482 +#: f.effects.cc:3550 msgid "Tile blending" -msgstr "" +msgstr "Mistura de Ladrilhos" -#: f.effects.cc:3560 +#: f.effects.cc:3628 #, c-format msgid "exceeded max. tiles: %d" -msgstr "" +msgstr "excedeu máx. de ladrilhos: %d" -#: f.effects.cc:3575 +#: f.effects.cc:3643 #, c-format msgid "only %d tile images found" -msgstr "" +msgstr "apenas %d imagens de ladrilho encontradas" #: f.file.cc:219 msgid "no newly added files found" @@ -888,7 +904,7 @@ msgid "no more images" msgstr "imagens esgotadas" -#: f.file.cc:330 f.menus.cc:153 f.menus.cc:482 +#: f.file.cc:330 f.menus.cc:118 f.menus.cc:395 msgid "Open RAW file (ufraw)" msgstr "Abrir arquivo RAW (ufraw)" @@ -945,7 +961,7 @@ "Sobrescrever arquivo? \n" " %s" -#: f.file.cc:836 f.menus.cc:155 +#: f.file.cc:836 f.menus.cc:120 msgid "Rename Image File" msgstr "Renomear arquivo" @@ -953,7 +969,7 @@ msgid "Old Name" msgstr "nome antigo" -#: f.file.cc:844 f.tools.cc:4504 +#: f.file.cc:844 f.tools.cc:4803 msgid "New Name" msgstr "novo nome" @@ -1001,7 +1017,7 @@ msgid "new location" msgstr "nova localidade" -#: f.file.cc:1233 f.tools.cc:4809 +#: f.file.cc:1233 f.tools.cc:5108 msgid "Select directory" msgstr "Selecionar pasta" @@ -1026,7 +1042,7 @@ msgid "(automatic step to next image)" msgstr "(passar automaticamente para a próxima imagem)" -#: f.file.cc:1457 f.menus.cc:157 +#: f.file.cc:1457 f.menus.cc:122 msgid "Trash Image File" msgstr "Mover arquivo para lixeira" @@ -1071,8 +1087,10 @@ "create directory? \n" " %s" msgstr "" +"criar diretório? \n" +" %s" -#: f.file.cc:2191 f.menus.cc:149 +#: f.file.cc:2191 f.menus.cc:114 msgid "Open Image File" msgstr "Abrir arquivo" @@ -1094,103 +1112,107 @@ msgid "file type not supported: %s" msgstr "tipo de arquivo não suportado: %s" -#: f.file.cc:4209 f.menus.cc:296 f.menus.cc:432 +#: f.file.cc:4209 f.file.cc:4291 f.menus.cc:360 f.tools.cc:851 +msgid "Scroll" +msgstr "Rolar" + +#: f.file.cc:4211 f.menus.cc:254 f.menus.cc:348 msgid "Sync.G" msgstr "Sinc.G" -#: f.file.cc:4221 +#: f.file.cc:4223 msgid "change directory" msgstr "mudar diretório" -#: f.file.cc:4229 f.menus.cc:434 +#: f.file.cc:4231 f.menus.cc:350 msgid "GoTo" msgstr "IrPara" -#: f.file.cc:4234 f.menus.cc:437 +#: f.file.cc:4236 f.menus.cc:353 msgid "Sort" msgstr "Ordenar" -#: f.file.cc:4241 f.file.cc:4665 f.file.cc:4666 f.file.cc:4668 f.menus.cc:435 +#: f.file.cc:4243 f.file.cc:4657 f.file.cc:4658 f.file.cc:4660 f.menus.cc:351 msgid "Zoom+" msgstr "Zoom+" -#: f.file.cc:4252 f.file.cc:4667 f.file.cc:4669 f.menus.cc:436 +#: f.file.cc:4254 f.file.cc:4659 f.file.cc:4661 f.menus.cc:352 msgid "Zoom-" msgstr "Zoom-" -#: f.file.cc:4265 f.file.cc:4673 f.menus.cc:442 +#: f.file.cc:4267 f.file.cc:4665 f.menus.cc:358 msgid "Row↑" msgstr "Linha↑" -#: f.file.cc:4277 f.file.cc:4674 f.menus.cc:443 +#: f.file.cc:4279 f.file.cc:4666 f.menus.cc:359 msgid "Row↓" msgstr "Linha↓" -#: f.file.cc:4289 f.file.cc:4676 f.menus.cc:438 +#: f.file.cc:4309 f.file.cc:4668 f.menus.cc:354 msgid "First" msgstr "Primeiro" -#: f.file.cc:4290 f.file.cc:4677 f.menus.cc:439 +#: f.file.cc:4310 f.file.cc:4669 f.menus.cc:355 msgid "Last" msgstr "Último" -#: f.file.cc:4291 f.file.cc:4671 f.file.cc:4678 f.menus.cc:440 +#: f.file.cc:4311 f.file.cc:4663 f.file.cc:4670 f.menus.cc:356 msgid "Page↑" msgstr "Página↑" -#: f.file.cc:4292 f.file.cc:4672 f.file.cc:4679 f.menus.cc:441 +#: f.file.cc:4312 f.file.cc:4664 f.file.cc:4671 f.menus.cc:357 msgid "Page↓" msgstr "Página↓" -#: f.file.cc:4342 +#: f.file.cc:4366 msgid "Choose image directory" msgstr "Escolher diretório de imagens" -#: f.file.cc:4348 f.file.cc:4363 +#: f.file.cc:4372 f.file.cc:4387 msgid "recent" msgstr "recente" -#: f.file.cc:4349 f.file.cc:4368 +#: f.file.cc:4373 f.file.cc:4392 msgid "newest" msgstr "mais novo" -#: f.file.cc:4350 f.file.cc:4377 +#: f.file.cc:4374 f.file.cc:4401 msgid "collections" msgstr "coleções" -#: f.file.cc:4423 f.tools.cc:2476 +#: f.file.cc:4449 f.tools.cc:2451 msgid "no collections found" msgstr "nenhuma coleção encontrada" -#: f.file.cc:4430 +#: f.file.cc:4456 msgid "Choose collection" msgstr "Escolher coleção" -#: f.file.cc:4475 +#: f.file.cc:4503 msgid "Gallery Sort" msgstr "Ordenar Galeria" -#: f.file.cc:4479 +#: f.file.cc:4507 msgid "File Name" msgstr "Nome de Arquivo" -#: f.file.cc:4480 +#: f.file.cc:4508 msgid "File Mod Date/Time" msgstr "Data/Hora da Modificação do Arquivo" -#: f.file.cc:4481 +#: f.file.cc:4509 msgid "Photo Date/Time (EXIF)" msgstr "Foto Data/Hora (EXIF)" -#: f.file.cc:4483 +#: f.file.cc:4511 msgid "ascending" msgstr "ascendente" -#: f.file.cc:4484 +#: f.file.cc:4512 msgid "descending" msgstr "descendente" -#: f.file.cc:5542 fotoxx.h:1061 +#: f.file.cc:5534 fotoxx.h:1067 msgid "Select Files" msgstr "Selecionar arquivos" @@ -1204,7 +1226,7 @@ #: f.image.cc:55 f.image.cc:136 msgid "rotate +90º" -msgstr "Rotacioanar +90º" +msgstr "rotacioanar +90º" #: f.image.cc:230 msgid "Trim: drag middle to move, drag corners to resize" @@ -1215,7 +1237,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Pequena rotação: arrastar margem direita com o mouse" -#: f.image.cc:302 f.menus.cc:212 f.menus.cc:472 +#: f.image.cc:302 f.menus.cc:176 f.menus.cc:385 msgid "Trim/Rotate" msgstr "Recortar/Rodar" @@ -1231,7 +1253,7 @@ msgid "Lock Ratio" msgstr "Travar taxa" -#: f.image.cc:326 f.tools.cc:2793 +#: f.image.cc:326 msgid "Customize" msgstr "Customizar" @@ -1267,7 +1289,7 @@ msgid "Resize Image" msgstr "Redimensionar" -#: f.image.cc:1650 f.menus.cc:215 +#: f.image.cc:1650 f.menus.cc:179 msgid "Flip" msgstr "Virar" @@ -1309,1123 +1331,1128 @@ msgid "plugin failed" msgstr "extensão falhou" -#: f.menus.cc:56 f.menus.cc:117 -msgid "File" -msgstr "Arquivo" - -#: f.menus.cc:57 f.menus.cc:118 -msgid "Tools" -msgstr "Ferramentas" - -#: f.menus.cc:58 f.menus.cc:119 f.menus.cc:462 -msgid "Metadata" -msgstr "Metadados" - -#: f.menus.cc:59 f.menus.cc:120 -msgid "Areas" -msgstr "Áreas" - -#: f.menus.cc:61 f.menus.cc:122 -msgid "Retouch" -msgstr "Retocar" - -#: f.menus.cc:62 f.menus.cc:123 -msgid "Repair" -msgstr "Reparo" - -#: f.menus.cc:64 f.menus.cc:125 -msgid "Bend" -msgstr "Curvar" - -#: f.menus.cc:65 f.menus.cc:126 -msgid "Effects" -msgstr "Efeitos" - -#: f.menus.cc:66 f.menus.cc:127 -msgid "Combine" -msgstr "Combinar" - -#: f.menus.cc:67 f.menus.cc:128 -msgid "Plugins" -msgstr "Extensões" - -#: f.menus.cc:68 f.menus.cc:129 fotoxx-14.03.cc:3811 fotoxx.h:1021 -msgid "Help" -msgstr "Ajuda" - -#: f.menus.cc:101 f.menus.cc:290 fotoxx-14.03.cc:3751 +#: f.menus.cc:67 fotoxx-14.04.cc:3775 msgid "Favorite Functions" -msgstr "" +msgstr "Funções Favoritas" -#: f.menus.cc:102 +#: f.menus.cc:68 msgid "Open, Save, Trash, Rename, Print" msgstr "Abrir, Salvar, Lixeira, Renomear, Imprimir" -#: f.menus.cc:103 +#: f.menus.cc:69 msgid "Index Files, Settings, Collections, Batch Funcs ..." msgstr "Arquivos Índice, Configurações, Coleções, Func. em lote ..." -#: f.menus.cc:104 +#: f.menus.cc:70 msgid "Captions, Tags, Ratings, Geotags, Search ... " msgstr "Legendas, Etiquetas, Avaliações, Georeferências, Pesquisar ..." -#: f.menus.cc:105 +#: f.menus.cc:71 msgid "Select image areas to edit, copy and paste" msgstr "Selecionar áreas da imagem para editar, copiar e colar" -#: f.menus.cc:106 +#: f.menus.cc:72 msgid "Trim/Crop, Rotate, Resize, Add Text" msgstr "Recortar/Aparar, Rodar, Redimensionar, Adicionar texto" -#: f.menus.cc:107 +#: f.menus.cc:73 msgid "Improve brightness, contrast, color ..." msgstr "Melhorar brilho, contraste, cor ..." -#: f.menus.cc:108 +#: f.menus.cc:74 msgid "Sharpen, Clean, Red-eyes, Paint, Clone ..." msgstr "Aguçar, Limpar, Olhos vermelhos, Pintura, Clonar ..." -#: f.menus.cc:109 +#: f.menus.cc:75 msgid "White Balance, Color Profile, Color Matching" msgstr "Balanço de Branco, Perfil cores, Mesclagem de cores" -#: f.menus.cc:110 +#: f.menus.cc:76 msgid "Fix Perspective, Bend/Warp image ..." msgstr "Corrigir Perspectiva, Empenar/Distorcer imagem ..." -#: f.menus.cc:111 +#: f.menus.cc:77 msgid "Special Effects, Arty Transforms" msgstr "Efeitos Especiais, Transformações artísticas" -#: f.menus.cc:112 +#: f.menus.cc:78 msgid "HDR, HDF, Panorama, Stack, Mashup" msgstr "HDR, HDF, Panorama, Empilhamento, Combinação" -#: f.menus.cc:113 +#: f.menus.cc:79 msgid "Use other image editors within Fotoxx" msgstr "Usar outros editores de imagem dentro Fotoxx" -#: f.menus.cc:114 +#: f.menus.cc:80 msgid "Quick Start, User Guide, Recent Changes ..." msgstr "Guia Rápido, Manual do Usuário, Mudanças recentes ..." -#: f.menus.cc:148 +#: f.menus.cc:83 +msgid "File" +msgstr "Arquivo" + +#: f.menus.cc:84 +msgid "Tools" +msgstr "Ferramentas" + +#: f.menus.cc:85 f.menus.cc:375 +msgid "Metadata" +msgstr "Metadados" + +#: f.menus.cc:86 +msgid "Areas" +msgstr "Áreas" + +#: f.menus.cc:88 +msgid "Retouch" +msgstr "Retocar" + +#: f.menus.cc:89 +msgid "Repair" +msgstr "Reparo" + +#: f.menus.cc:91 +msgid "Bend" +msgstr "Curvar" + +#: f.menus.cc:92 +msgid "Effects" +msgstr "Efeitos" + +#: f.menus.cc:93 +msgid "Combine" +msgstr "Combinar" + +#: f.menus.cc:94 +msgid "Plugins" +msgstr "Extensões" + +#: f.menus.cc:95 fotoxx-14.04.cc:3835 fotoxx.h:1026 +msgid "Help" +msgstr "Ajuda" + +#: f.menus.cc:113 msgid "New Window" msgstr "Nova Janela" -#: f.menus.cc:148 +#: f.menus.cc:113 msgid "Open another window" msgstr "Abrir outra Janela" -#: f.menus.cc:149 f.menus.cc:297 +#: f.menus.cc:114 f.menus.cc:255 msgid "Open a new image file" msgstr "Abrir novo arquvio de imagem" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open Previous File" msgstr "Abrir arquivo anterior" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open the previously seen file" msgstr "Abrir o arquivo visto anteriormente" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Open a recently seen file" msgstr "Abrir um arquivo visto recentemente" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Recently Seen Images" msgstr "Imagens vistas recentemente" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Newest Images" msgstr "Imagens mais Novas" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Open a newly added file" msgstr "Abrir arquivo adicionado recentemente" -#: f.menus.cc:153 +#: f.menus.cc:118 msgid "Open and edit a camera RAW file" msgstr "Abrir e editar um arquivo RAW da câmera" -#: f.menus.cc:154 f.menus.cc:300 +#: f.menus.cc:119 f.menus.cc:258 msgid "Save modified image file to disk" msgstr "Salvar arquivo-imagem modificado no disco " -#: f.menus.cc:154 +#: f.menus.cc:119 msgid "Save to Disk" msgstr "Salvar em disco" -#: f.menus.cc:155 +#: f.menus.cc:120 msgid "Change the image file name" msgstr "Mudar nome do arquivo" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "Create a blank image" msgstr "Criar uma imagem em branco" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "New Blank Image" msgstr "Nova Imagem em Branco" -#: f.menus.cc:157 f.menus.cc:301 +#: f.menus.cc:122 f.menus.cc:259 msgid "Move image file to Trash" msgstr "Mover arquivo para Lixeira" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print Image" msgstr "Imprimir Imagem" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print the current image" msgstr "Imprimir imagem atual" -#: f.menus.cc:159 +#: f.menus.cc:124 msgid "Quit Fotoxx" msgstr "Fechar Fotoxx" -#: f.menus.cc:161 f.tools.cc:92 f.tools.cc:339 +#: f.menus.cc:126 f.tools.cc:92 f.tools.cc:339 msgid "Index Image Files" msgstr "Arquivos de Índice de imagens" -#: f.menus.cc:161 +#: f.menus.cc:126 msgid "Index new files and make thumbnails" msgstr "Indexar novos arquivos gerar miniaturas" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "Change user preferences" msgstr "Mudar preferências de usuário" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "User Settings" msgstr "Preferências de Usuário" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Change Keyboard Shortcut Keys" msgstr "Mudar Atalhos de Teclado" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Keyboard Shortcuts" msgstr "Teclas de Atalho" -#: f.menus.cc:164 f.tools.cc:1943 +#: f.menus.cc:129 f.tools.cc:1918 msgid "Manage Collections" msgstr "Gerenciar Coleções" -#: f.menus.cc:164 +#: f.menus.cc:129 msgid "Organize images into collections" msgstr "Organizar imagens em Coleções" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Convert for a new top directory" msgstr "Converter para um novo diretório superior" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Move Collections" msgstr "Mover para Coleções" -#: f.menus.cc:166 f.tools.cc:2777 f.tools.cc:2780 +#: f.menus.cc:131 f.tools.cc:2728 msgid "Slide Show" msgstr "Apresentação" -#: f.menus.cc:166 +#: f.menus.cc:131 msgid "Start a slide show" msgstr "Iniciar Apresentação de Slides" -#: f.menus.cc:167 f.tools.cc:4497 +#: f.menus.cc:132 f.tools.cc:4796 msgid "Batch Convert" msgstr "Conversão em Lote" -#: f.menus.cc:167 +#: f.menus.cc:132 msgid "Rename/convert/resize/move multiple files" msgstr "Renomear/converter/redimensionar/mover vários arquivos" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Batch Convert RAW" msgstr "Conversão RAW em Lote" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Convert multiple camera RAW files" msgstr "Converter vários arquivos RAW da câmera" -#: f.menus.cc:169 -msgid "Brightness Histogram" -msgstr "Histograma de Brilho" +#: f.menus.cc:134 f.menus.cc:185 f.menus.cc:390 f.retouch.cc:314 +#: f.tools.cc:5620 +msgid "Brightness Distribution" +msgstr "Distribuição de Brilho" -#: f.menus.cc:169 +#: f.menus.cc:134 msgid "Show a brightness distribution graph" msgstr "Mostrar gráfico de distribuição de brilho" -#: f.menus.cc:170 f.menus.cc:480 f.tools.cc:5517 +#: f.menus.cc:135 f.menus.cc:393 f.tools.cc:5825 msgid "Grid Lines" msgstr "Linhas de grade" -#: f.menus.cc:170 +#: f.menus.cc:135 msgid "Show or revise grid lines" msgstr "Mostrar ou corrigir linhas de grade" -#: f.menus.cc:171 f.tools.cc:5701 +#: f.menus.cc:136 f.tools.cc:6009 msgid "Show RGB" msgstr "Mostrar RGB" -#: f.menus.cc:171 +#: f.menus.cc:136 msgid "Show RGB colors at mouse click" msgstr "Mostrar cores RGB ao clique do mouse" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Dark/Bright Pixels" msgstr "Pixels Claros/Escuros" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Highlight darkest and brightest pixels" msgstr "Destacar pixels mais escuros e mais brilhantes" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Chart to adjust monitor color" msgstr "Gráfico para ajustar cores do monitor" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Monitor Color" msgstr "Cores do Monitor" -#: f.menus.cc:174 +#: f.menus.cc:139 msgid "Chart to adjust monitor gamma" msgstr "Gráfico para ajustar gama do monitor" -#: f.menus.cc:174 f.tools.cc:6213 +#: f.menus.cc:139 f.tools.cc:6521 msgid "Monitor Gamma" msgstr "Monitor Gamma" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change Language" msgstr "Trocar língua" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change the GUI language" msgstr "Mudar a língua da GUI" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Missing Translations" msgstr "Traduções em falta" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Report missing translations" msgstr "Relatar tradução em falta" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Create a Gnome menu and launcher" msgstr "Criar um menu e atalho do Gnome" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Menu and Launcher" msgstr "Menu e Atalho" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn Images to CD/DVD" msgstr "Gravar imagens em CD/DVD" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn selected image files to CD or DVD" msgstr "Gravar imagens selecionadas em CD ou DVD" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Memory and CPU (to terminal/logfile)" msgstr "Memória e CPU (para terminal/arquivo log)" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Resources" msgstr "Recursos" -#: f.menus.cc:183 f.meta.cc:121 f.meta.cc:1945 +#: f.menus.cc:147 f.meta.cc:121 f.meta.cc:1946 msgid "Edit Metadata" msgstr "Editar Metadados" -#: f.menus.cc:183 +#: f.menus.cc:147 msgid "Edit image tags/caption/rating ..." msgstr "Editar etiquetas de imagem/legendas/avaliações ..." -#: f.menus.cc:184 +#: f.menus.cc:148 msgid "Add/remove tags for multiple images" msgstr "Adicionar/remover etiquetas para múltiplas imagens" -#: f.menus.cc:184 f.meta.cc:1547 +#: f.menus.cc:148 f.meta.cc:1547 msgid "Batch Add/Remove Tags" msgstr "Adicionar/Remover Etiqueras em Lote" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "List a few key metadata items" msgstr "Listar poucos ítens de metadados chave" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "View Metadata (short)" msgstr "Visualizar Metadados (curto)" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "List all metadata items" msgstr "Listar todos ítens de metadados" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "View Metadata (long)" msgstr "Visualizar Metadados (longo)" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "List captions and comments only" msgstr "Listar apenas legendas e comentários" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "View Captions and Comments" msgstr "Exibir Legendas e Comentários" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit Any Metadata" msgstr "Editar qualquer Metadado" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit any image metadata" msgstr "Edita qualquer metadados de uma imagem" -#: f.menus.cc:189 f.meta.cc:2039 +#: f.menus.cc:153 f.meta.cc:2040 msgid "Delete Metadata" msgstr "Excluir Metadados" -#: f.menus.cc:189 +#: f.menus.cc:153 msgid "Remove all metadata from an image" msgstr "Remover todos metadados de uma imagem" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "(Toggle) show captions and comments" msgstr "(Comutativo) mostrar legendas e comentários" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "Show Captions on Image" msgstr "Mostrar Legendas na Imagem" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download Geolocations" msgstr "Baixar Geolocalizações" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download initial geolocation database" msgstr "Baixar base de dados incial de geolocalizações" -#: f.menus.cc:193 f.meta.cc:3023 +#: f.menus.cc:157 f.meta.cc:3027 msgid "Edit Geotags" msgstr "Editar Georeferências" -#: f.menus.cc:193 +#: f.menus.cc:157 msgid "Edit image location and geotags" msgstr "Editar localidade de imagem e georeferências" -#: f.menus.cc:194 +#: f.menus.cc:158 msgid "Add geotags to multiple images" msgstr "Adicionar georeferência a múltiplas imagens" -#: f.menus.cc:194 f.meta.cc:3225 +#: f.menus.cc:158 f.meta.cc:3229 msgid "Batch Add Geotags" msgstr "Adicionar Georeferências a várias" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Find all images for a location [date]" msgstr "Encontrar todas imagens por uma localidade [data]" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Images by Location/Date" msgstr "Imagens por Localidade/Data" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Find images by clicking a world map" msgstr "Encontrar imagens ao clicar no mapa mundial" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Images by Map Location" msgstr "Imagens por Locadade no Mapa" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Find images meeting select criteria" msgstr "Encontrar imagens satisfazendo critério selecionado" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Search Images" msgstr "Procurar Imagens" -#: f.menus.cc:199 fotoxx.h:1060 +#: f.menus.cc:163 fotoxx.h:1066 msgid "Select" msgstr "Selecionar" -#: f.menus.cc:199 +#: f.menus.cc:163 msgid "Select object or area for editing" msgstr "Selecionar objeto ou área para edição" -#: f.menus.cc:200 fotoxx.h:1062 +#: f.menus.cc:164 fotoxx.h:1068 msgid "Show" msgstr "Mostrar" -#: f.menus.cc:200 +#: f.menus.cc:164 msgid "Show (outline) existing area" msgstr "Mostrar (traçado) de área existente" -#: f.menus.cc:201 fotoxx.h:1022 +#: f.menus.cc:165 fotoxx.h:1027 msgid "Hide" msgstr "Ocultar" -#: f.menus.cc:201 +#: f.menus.cc:165 msgid "Hide existing area" msgstr "Esconder área existente" -#: f.menus.cc:202 fotoxx.h:1011 +#: f.menus.cc:166 fotoxx.h:1016 msgid "Enable" msgstr "Habilitar" -#: f.menus.cc:202 +#: f.menus.cc:166 msgid "Enable area for editing" msgstr "Habilitar área para edição" -#: f.menus.cc:203 fotoxx.h:1006 +#: f.menus.cc:167 fotoxx.h:1011 msgid "Disable" msgstr "Desabilitar" -#: f.menus.cc:203 +#: f.menus.cc:167 msgid "Disable area for editing" msgstr "Desabilitar área para edição" -#: f.menus.cc:204 fotoxx.h:1025 +#: f.menus.cc:168 fotoxx.h:1030 msgid "Invert" msgstr "Inverter" -#: f.menus.cc:204 +#: f.menus.cc:168 msgid "Reverse existing area" msgstr "Inverter área existente" -#: f.menus.cc:205 +#: f.menus.cc:169 msgid "Erase existing area" msgstr "Apagar área existente" -#: f.menus.cc:205 fotoxx.h:1074 +#: f.menus.cc:169 fotoxx.h:1080 msgid "Unselect" msgstr "Deselecionar" -#: f.menus.cc:206 fotoxx.h:1001 +#: f.menus.cc:170 fotoxx.h:1006 msgid "Copy" msgstr "Copiar" -#: f.menus.cc:206 +#: f.menus.cc:170 msgid "Copy an area for later pasting" msgstr "Copiar uma área para colar depois" -#: f.menus.cc:207 fotoxx.h:1041 +#: f.menus.cc:171 fotoxx.h:1046 msgid "Paste" msgstr "Colar" -#: f.menus.cc:207 +#: f.menus.cc:171 msgid "Paste an area into the current image" msgstr "Colar uma área dentro de imagem atual" -#: f.menus.cc:208 +#: f.menus.cc:172 msgid "Open a file with a saved area" msgstr "Abrir um arquivo com uma área salva" -#: f.menus.cc:209 f.menus.cc:300 fotoxx.h:1057 +#: f.menus.cc:173 f.menus.cc:258 fotoxx.h:1062 msgid "Save" msgstr "Salvar" -#: f.menus.cc:209 +#: f.menus.cc:173 msgid "Save an area to a file" msgstr "Salvar área em um arquivo" -#: f.menus.cc:211 +#: f.menus.cc:175 msgid "Rotate 90 degrees" msgstr "Rotacionar 90 graus" -#: f.menus.cc:211 f.menus.cc:474 +#: f.menus.cc:175 f.menus.cc:387 msgid "Rotate 90º" msgstr "Rotacionar 90º" -#: f.menus.cc:212 +#: f.menus.cc:176 msgid "Trim/Crop margins and/or Rotate" msgstr "Recortar/Aparar margens e/ou Rodar" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Auto-Trim" msgstr "Auto-Recortar" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Remove margins from warp, panorama, etc." msgstr "Remover margens de distorções, panoramas, etc." -#: f.menus.cc:214 +#: f.menus.cc:178 msgid "Change pixel dimensions" msgstr "Mudar dimensões de pixel" -#: f.menus.cc:215 +#: f.menus.cc:179 msgid "Mirror image horizontally or vertically" msgstr "Espelhar imagem horizontalmente ou verticalmente" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Add Text" msgstr "Escrever Texto" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Write text on image" msgstr "Escrever texto em imagem" -#: f.menus.cc:218 +#: f.menus.cc:182 msgid "Fast auto enhance that may work OK" msgstr "Realce automático rápido que deve funcionar bem" -#: f.menus.cc:218 f.menus.cc:475 +#: f.menus.cc:182 f.menus.cc:388 msgid "Voodoo Enhance" msgstr "Realce Vudu" -#: f.menus.cc:219 +#: f.menus.cc:183 msgid "Adjust brightness, contrast, color" msgstr "Ajusta brilho, contraste, cor" -#: f.menus.cc:219 f.menus.cc:476 f.retouch.cc:265 +#: f.menus.cc:183 f.menus.cc:389 f.retouch.cc:271 msgid "Retouch Combo" msgstr "Kit Retoque" -#: f.menus.cc:222 +#: f.menus.cc:184 msgid "Add local contrast, enhance details" msgstr "Adicionar contraste local, realçar detalhes" -#: f.menus.cc:222 f.menus.cc:478 f.retouch.cc:929 +#: f.menus.cc:184 f.menus.cc:391 f.retouch.cc:1039 msgid "Tone Mapping" msgstr "Mapeamento Tonal" -#: f.menus.cc:223 +#: f.menus.cc:185 msgid "Adjust brightness distribution" msgstr "Ajustar distribuição de brilho" -#: f.menus.cc:223 f.menus.cc:477 f.tools.cc:5314 -msgid "Brightness Distribution" -msgstr "Distribuição de Brilho" - -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Brightness Ramp" msgstr "Curvas de brilho" -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Fix brightness uniformity across image" msgstr "Corrigir uniformidade de brilho por toda imagem" -#: f.menus.cc:225 f.retouch.cc:2050 +#: f.menus.cc:187 f.retouch.cc:2159 msgid "Paint Edits" msgstr "Primir Edições" -#: f.menus.cc:225 +#: f.menus.cc:187 msgid "Paint edit function gradually with mouse" msgstr "Função de pintura gradual com o mouse" -#: f.menus.cc:227 +#: f.menus.cc:188 f.retouch.cc:2390 +msgid "Leverage Edits" +msgstr "Influenciar Edições" + +#: f.menus.cc:188 +msgid "Leverage edits by brightness or color" +msgstr "Influenciar edições por brilho ou cor" + +#: f.menus.cc:190 msgid "Make the image look sharper" msgstr "Tornar a imagem mais nítida" -#: f.menus.cc:227 f.repair.cc:79 f.tools.cc:4535 f.tools.cc:4904 +#: f.menus.cc:190 f.repair.cc:79 f.tools.cc:4834 f.tools.cc:5203 msgid "Sharpen" msgstr "Aguçar" -#: f.menus.cc:228 f.repair.cc:1565 +#: f.menus.cc:191 f.repair.cc:1565 msgid "Blur" msgstr "Embaçar" -#: f.menus.cc:228 +#: f.menus.cc:191 msgid "Make the image look fuzzy" msgstr "Deixam a imagem difusa" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Filter noise from low-light photos" msgstr "Filtrar ruído de fotos com pouca luz" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Reduce Noise" msgstr "Reduzir ruído" -#: f.menus.cc:230 +#: f.menus.cc:193 msgid "Remove unwanted objects" msgstr "Remover objetos indesejados" -#: f.menus.cc:230 f.repair.cc:1558 +#: f.menus.cc:193 f.repair.cc:1558 msgid "Smart Erase" msgstr "Apagador inteligente" -#: f.menus.cc:231 +#: f.menus.cc:194 msgid "Fix red-eyes from electronic flash" msgstr "Corrigir olhos vermelhos por flash eletrônico" -#: f.menus.cc:231 f.menus.cc:479 +#: f.menus.cc:194 f.menus.cc:392 msgid "Red Eyes" msgstr "Olhos vermelhos" -#: f.menus.cc:232 +#: f.menus.cc:195 msgid "Paint image pixels using the mouse" msgstr "Pintar pixels de imagem utilizando o mouse" -#: f.menus.cc:232 f.repair.cc:2403 +#: f.menus.cc:195 f.repair.cc:2403 msgid "Paint/Clone" msgstr "Pintar Pixels" -#: f.menus.cc:233 f.repair.cc:2995 +#: f.menus.cc:196 f.repair.cc:2995 msgid "Remove Dust" msgstr "Remover Sujeira" -#: f.menus.cc:233 +#: f.menus.cc:196 msgid "Remove dust spots from scanned slides" msgstr "Remover pontos de sujeira de digitalizações" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Anti-alias" msgstr "Antisserrilhado" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Smoothen edges with jaggies" msgstr "Suavisar contornos irregulares" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Fix Color Fringes" msgstr "Corrigir Franjas Púrpuras" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Reduce Chromatic Abberation" msgstr "Reduzir Aberrações Cromáticas" -#: f.menus.cc:236 +#: f.menus.cc:199 msgid "Erase known hot and dark pixels" msgstr "Apagar pixels quentes ou escuros conhecidos" -#: f.menus.cc:236 f.repair.cc:4008 +#: f.menus.cc:199 f.repair.cc:4008 msgid "Fix Stuck Pixels" msgstr "Corrigir Pixels Presos" -#: f.menus.cc:239 +#: f.menus.cc:201 msgid "Shift/convert colors into other colors" msgstr "Deslocar/converter cores em outras" -#: f.menus.cc:240 +#: f.menus.cc:202 msgid "Make BW/color, negative/positive, sepia" msgstr "Fazer PB/colorido, negativo/positivo, sepia" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Color Profile" msgstr "Perfil de Cores" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Convert to another color profile" msgstr "Converter para outro perfil de cores" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match Colors" msgstr "Mesclar Cores" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match colors on one image with another" msgstr "Equiparar cores de uma imagem com outra" -#: f.menus.cc:243 +#: f.menus.cc:205 msgid "Adjust color in selected image areas" msgstr "Ajustar cor em áreas selecionadas da imagem" -#: f.menus.cc:244 +#: f.menus.cc:206 msgid "Adjust color using CMYK or RGB values" msgstr "Ajustar cor usando valores CMYK ou RGB" -#: f.menus.cc:246 +#: f.menus.cc:208 msgid "Remove curvature, esp. panoramas" msgstr "Remover curvatura, esp. panoramas" -#: f.menus.cc:247 +#: f.menus.cc:209 msgid "Straighten objects seen from an angle" msgstr "Endireitar objetos vistos a um ângulo" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten Book Page" msgstr "Achatar Página de Book" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten a photographed book page" msgstr "Achatar uma página fotografada de um book" -#: f.menus.cc:249 +#: f.menus.cc:211 msgid "Distort image areas using the mouse" msgstr "Distorcer as áreas da imagem usando o mouse" -#: f.menus.cc:250 f.menus.cc:251 f.menus.cc:252 +#: f.menus.cc:212 f.menus.cc:213 f.menus.cc:214 msgid "Distort the whole image using the mouse" msgstr "Distorcer toda a imagem utilizando o mouse" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Color Depth" msgstr "Resolução de cor" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Reduce color depth (posterize)" msgstr "Reduzir profundidade de cor (posterizar)" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Convert to pencil sketch" msgstr "Converter para esboço a lápis" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Sketch" msgstr "Esboço" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Convert to colored line drawing" msgstr "Converter para desenhos de linhas colorias" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Drawing" msgstr "Gravura" -#: f.menus.cc:257 +#: f.menus.cc:219 msgid "Graduated Blur depending on contrast" msgstr "Desfoque Graduado dependente do contraste" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Create an embossed or 3D appearance" msgstr "Criar relevo ou aparência de 3D" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Embossing" msgstr "Alto-relevo" -#: f.menus.cc:259 +#: f.menus.cc:221 msgid "Convert to square tiles" msgstr "Converter para ladrilhos quadrados" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Converter para pontos (efeito Roy Lichtenstein)" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Dots" msgstr "Pontos" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Convert into a simulated painting" msgstr "Converter em uma pintura simulada" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Painting" msgstr "Pintura" -#: f.menus.cc:262 +#: f.menus.cc:224 msgid "Change brightness or color radially" msgstr "Alterar o brilho ou cor radialmente" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Add texture to an image" msgstr "Adicionar textura a uma imagem" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Texture" msgstr "Textura" -#: f.menus.cc:264 +#: f.menus.cc:226 msgid "Tile image with a repeating pattern" -msgstr "" +msgstr "Ladrilhar imagem com um padrão repetitivo" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Create a mosaic with tiles made from all images" -msgstr "" +msgstr "Criar um mosaico com ladrilhos feitos de todas as imagens" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Mosaic" -msgstr "" +msgstr "Mosaico" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "Combine bright/dark images for better detail" msgstr "Combine imagens claras/escuras para melhores detalhes" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "High Dynamic Range" msgstr "Grande Alcance Dinâmico (HDR)" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "Combine near/far focus images for deeper focus" msgstr "Combinar imagens de foco perto/longe para foco profundo" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "High Depth of Field" msgstr "Alta Profundidade de Campo (HDF)" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Combine images to erase passing people, etc." msgstr "Combinar imagens para apagar pessoas que passam, etc" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Stack / Paint" msgstr "Pilha / Pintura" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Combine noisy images into a low-noise image" msgstr "Combinar imagens cheias de ruído em uma imagem com baixo ruído" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Stack / Noise" msgstr "Pilha / Ruído" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Combine images into a panorama" msgstr "Combinar imagens em um panorama" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Panorama" msgstr "Panorama" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Combine images into a vertical panorama" msgstr "Combinar imagens em um panorama vertical" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Vertical Panorama" msgstr "Panorama Vertical" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Arrange multiple images on a background image" msgstr "Dispor múltiplas imagens numa imagem de fundo" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Mashup" msgstr "Combinação" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Add another image editor to the menu" msgstr "Adicionar outro editor de imagem para o menu" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Edit Plugins" msgstr "Editar Extensões" -#: f.menus.cc:277 fotoxx-14.03.cc:3777 +#: f.menus.cc:239 fotoxx-14.04.cc:3801 msgid "Quick Start" msgstr "Guia Rápido" -#: f.menus.cc:277 +#: f.menus.cc:239 msgid "Quick Start mini-guide" msgstr "Mini-guia resumido" -#: f.menus.cc:278 +#: f.menus.cc:240 msgid "Read the user guide" msgstr "Leia o Guia de Usuários" -#: f.menus.cc:278 fotoxx-14.03.cc:3780 +#: f.menus.cc:240 fotoxx-14.04.cc:3804 msgid "User Guide" msgstr "Guia de usuário" -#: f.menus.cc:279 +#: f.menus.cc:241 msgid "Recent user guide changes" msgstr "Mudanças recentes no Guia de Usuários" -#: f.menus.cc:279 fotoxx-14.03.cc:3783 +#: f.menus.cc:241 fotoxx-14.04.cc:3807 msgid "User Guide Changes" msgstr "Mudanças no Guia de Usuários" -#: f.menus.cc:280 +#: f.menus.cc:242 msgid "Fotoxx updates notification" msgstr "Notificações de atualização do Fotoxx" -#: f.menus.cc:280 fotoxx-14.03.cc:3786 +#: f.menus.cc:242 fotoxx-14.04.cc:3810 msgid "Program Updates" msgstr "Atualizações do programa" -#: f.menus.cc:281 fotoxx-14.03.cc:3792 +#: f.menus.cc:243 fotoxx-14.04.cc:3816 msgid "Edit Functions Summary" msgstr "Editar Resumo de Funções" -#: f.menus.cc:281 +#: f.menus.cc:243 msgid "Summary of image edit functions" msgstr "Resumo das funções de edição de imagem" -#: f.menus.cc:282 fotoxx-14.03.cc:3789 +#: f.menus.cc:244 fotoxx-14.04.cc:3813 msgid "README" msgstr "LEIAME" -#: f.menus.cc:282 +#: f.menus.cc:244 msgid "Technical installation notes" msgstr "Notas técnicas da instalação do Fotoxx" -#: f.menus.cc:283 fotoxx-14.03.cc:3795 +#: f.menus.cc:245 fotoxx-14.04.cc:3819 msgid "Change Log" msgstr "Relatório de mudanças" -#: f.menus.cc:283 +#: f.menus.cc:245 msgid "List updates by Fotoxx version" msgstr "Listar atualizações por versão do Fotoxx" -#: f.menus.cc:284 fotoxx-14.03.cc:3798 +#: f.menus.cc:246 fotoxx-14.04.cc:3822 msgid "Log File" msgstr "Arquivo de Log" -#: f.menus.cc:284 +#: f.menus.cc:246 msgid "View the log file and error messages" msgstr "Ver arquivo de log e mensagens de erro" -#: f.menus.cc:285 +#: f.menus.cc:247 msgid "How to do Fotoxx translations" msgstr "Como fazer traduções para o Fotoxx" -#: f.menus.cc:285 fotoxx-14.03.cc:3801 +#: f.menus.cc:247 fotoxx-14.04.cc:3825 msgid "Translations" msgstr "Traduções" -#: f.menus.cc:286 fotoxx-14.03.cc:3804 +#: f.menus.cc:248 fotoxx-14.04.cc:3828 msgid "Home Page" msgstr "Página na web" -#: f.menus.cc:286 +#: f.menus.cc:248 msgid "Show the Fotoxx web page" msgstr "Mostrar a página do Fotoxx na web" -#: f.menus.cc:287 fotoxx-14.03.cc:3807 +#: f.menus.cc:249 fotoxx-14.04.cc:3831 msgid "About" msgstr "Sobre" -#: f.menus.cc:287 +#: f.menus.cc:249 msgid "Version, license, contact, credits" msgstr "Versão, licença, contato, créditos" -#: f.menus.cc:290 -msgid "Favs" -msgstr "Favs" - -#: f.menus.cc:292 +#: f.menus.cc:251 msgid "Color of area borders etc." msgstr "Cor das bordas, área etc." -#: f.menus.cc:293 fotoxx.h:1072 +#: f.menus.cc:252 fotoxx.h:1078 msgid "Undo" msgstr "Desfazer" -#: f.menus.cc:293 +#: f.menus.cc:252 msgid "Undo one edit" msgstr "Desfazer uma edição" -#: f.menus.cc:294 fotoxx.h:1051 +#: f.menus.cc:253 fotoxx.h:1056 msgid "Redo" msgstr "Refazer" -#: f.menus.cc:294 +#: f.menus.cc:253 msgid "Redo one edit" msgstr "Refazer uma edição" -#: f.menus.cc:296 f.menus.cc:432 +#: f.menus.cc:254 f.menus.cc:348 msgid "Set gallery from current image file" msgstr "Definir galeria a partir de imagem atual" -#: f.menus.cc:298 +#: f.menus.cc:256 msgid "Open the previous file" msgstr "Abrir arquivo anterior" -#: f.menus.cc:298 fotoxx.h:1046 +#: f.menus.cc:256 fotoxx.h:1051 msgid "Prev" msgstr "Anterior" -#: f.menus.cc:299 fotoxx.h:1034 +#: f.menus.cc:257 fotoxx.h:1039 msgid "Next" msgstr "Próximo" -#: f.menus.cc:299 +#: f.menus.cc:257 msgid "Open the next file" msgstr "Abrir próximo arquivo" -#: f.menus.cc:301 f.menus.cc:483 fotoxx.h:1068 +#: f.menus.cc:259 f.menus.cc:396 fotoxx.h:1074 msgid "Trash" msgstr "Lixeira" -#: f.menus.cc:344 f.menus.cc:373 +#: f.menus.cc:306 msgid "Run as Fotoxx edit function" msgstr "Executar como função de edição do Fotoxx" -#: f.menus.cc:412 +#: f.menus.cc:328 msgid "Top" msgstr "Topo" -#: f.menus.cc:433 +#: f.menus.cc:349 msgid "open another directory" msgstr "abrir outro diretório" -#: f.menus.cc:434 +#: f.menus.cc:350 msgid "go to bookmarked image" msgstr "Ir para a imagem marcada como favorita" -#: f.menus.cc:435 +#: f.menus.cc:351 msgid "increase thumbnail size" msgstr "aumentar tamanho de miniaturas" -#: f.menus.cc:436 +#: f.menus.cc:352 msgid "reduce thumbnail size" msgstr "reduzir tamanho de miniaturas" -#: f.menus.cc:437 +#: f.menus.cc:353 msgid "change sort order" msgstr "alterar a ordem de classificação" -#: f.menus.cc:438 +#: f.menus.cc:354 msgid "jump to beginning (top)" msgstr "saltar para o início (topo)" -#: f.menus.cc:439 +#: f.menus.cc:355 msgid "jump to end (bottom)" msgstr "saltar para final (rodapé)" -#: f.menus.cc:440 +#: f.menus.cc:356 msgid "previous page" msgstr "página anterior" -#: f.menus.cc:441 +#: f.menus.cc:357 msgid "next page" msgstr "próxima página" -#: f.menus.cc:442 +#: f.menus.cc:358 msgid "previous row" msgstr "coluna anterior" -#: f.menus.cc:443 +#: f.menus.cc:359 msgid "next row" msgstr "próxiuma coluna" -#: f.menus.cc:461 -msgid "Popup Image" +#: f.menus.cc:360 +msgid "slow scroll" msgstr "" -#: f.menus.cc:463 fotoxx.h:1054 +#: f.menus.cc:374 +msgid "Popup Image" +msgstr "Imagem Popup" + +#: f.menus.cc:376 fotoxx.h:1059 msgid "Rename" msgstr "Renomear" -#: f.menus.cc:464 +#: f.menus.cc:377 msgid "Copy to Location" msgstr "Copiar para Localidade" -#: f.menus.cc:465 +#: f.menus.cc:378 msgid "Move to Location" msgstr "Mover para Localidade" -#: f.menus.cc:466 +#: f.menus.cc:379 msgid "Copy to Clipboard" msgstr "Copiar para Área de Transferência" -#: f.menus.cc:467 +#: f.menus.cc:380 msgid "Remove from Collection" msgstr "Remover da Coleção" -#: f.menus.cc:468 +#: f.menus.cc:381 msgid "Cut to Image Cache" msgstr "Recortar para Cache de Imagem" -#: f.menus.cc:469 +#: f.menus.cc:382 msgid "Copy to Image Cache" msgstr "Copiar para Cache de Imagem" -#: f.menus.cc:470 +#: f.menus.cc:383 msgid "Paste Image Cache Here (clear)" msgstr "Colar Cache de Imagem aqui (limpar)" -#: f.menus.cc:471 +#: f.menus.cc:384 msgid "Paste Image Cache Here (keep)" msgstr "Colar Cache de Imagem aqui (manter)" -#: f.menus.cc:481 +#: f.menus.cc:394 msgid "Select Area" msgstr "Selecionar Área" @@ -2434,9 +2461,9 @@ msgid "Rating: %c (stars)" msgstr "Avaliação: %c (estrelas)" -#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1939 f.meta.cc:3036 f.meta.cc:3311 +#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1940 f.meta.cc:3040 f.meta.cc:3315 msgid "file type cannot have metadata" -msgstr "" +msgstr "tipo de arquivo não pode ter metadados" #: f.meta.cc:126 f.repair.cc:4141 msgid "File:" @@ -2486,7 +2513,7 @@ msgid "Recent Tags" msgstr "etiquetas recentes" -#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4267 +#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4271 msgid "Defined Tags" msgstr "etiquetas definidas" @@ -2506,7 +2533,7 @@ msgid "time is invalid" msgstr "hora inválida" -#: f.meta.cc:532 fotoxx.h:1029 +#: f.meta.cc:532 fotoxx.h:1034 msgid "Manage Tags" msgstr "Gerenciar Etiquetas" @@ -2522,11 +2549,11 @@ msgid "tag" msgstr "etiqueta" -#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1474 +#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1449 msgid "file not found" msgstr "arquivo não encontrado" -#: f.meta.cc:1552 f.meta.cc:3257 f.tools.cc:4501 f.tools.cc:4966 +#: f.meta.cc:1552 f.meta.cc:3261 f.tools.cc:4800 f.tools.cc:5265 msgid "0 files selected" msgstr "0 arquivos selecionados" @@ -2551,7 +2578,7 @@ msgid "specify files and tags" msgstr "especificar arquivos e etiquetas" -#: f.meta.cc:1788 f.meta.cc:3369 f.tools.cc:4800 f.tools.cc:5185 +#: f.meta.cc:1788 f.meta.cc:3373 f.tools.cc:5099 f.tools.cc:5484 #, c-format msgid "%d files selected" msgstr "%d arquivos selecionados" @@ -2560,35 +2587,35 @@ msgid "View Metadata" msgstr "Ver metadados" -#: f.meta.cc:1903 +#: f.meta.cc:1904 msgid "Caption: \n" msgstr "Legenda: \n" -#: f.meta.cc:1905 +#: f.meta.cc:1906 msgid "" "\n" "Comment: \n" msgstr "" "\n" -"Comentáriot: \n" +"Comentário: \n" -#: f.meta.cc:1949 +#: f.meta.cc:1950 msgid "key name" msgstr "nome chave" -#: f.meta.cc:1951 +#: f.meta.cc:1952 msgid "key value" msgstr "valor chave" -#: f.meta.cc:2041 fotoxx.h:985 +#: f.meta.cc:2042 fotoxx.h:990 msgid "All" msgstr "Todos" -#: f.meta.cc:2042 +#: f.meta.cc:2043 msgid "One Key:" msgstr "Uma chave:" -#: f.meta.cc:2222 +#: f.meta.cc:2223 #, c-format msgid "" "Download geotags data (8 megabytes). \n" @@ -2599,48 +2626,40 @@ "Salvar em %s \n" "Continuar?" -#: f.meta.cc:2261 +#: f.meta.cc:2262 msgid "download failed" msgstr "carregamento falhou" -#: f.meta.cc:2292 fotoxx-14.03.cc:1079 -msgid "Location from World Map" -msgstr "Localidade no Mapa Mundial" - -#: f.meta.cc:2294 -msgid "Loading world map" -msgstr "Carregando mapa mundi" - -#: f.meta.cc:2304 f.meta.cc:2449 +#: f.meta.cc:2298 f.meta.cc:2445 msgid "please download geolocations data" msgstr "por favor, baixe dados de geolocalizações" -#: f.meta.cc:2309 +#: f.meta.cc:2304 msgid "Loading geolocations" msgstr "Carregando georeferências" -#: f.meta.cc:2737 f.meta.cc:3209 f.meta.cc:3477 +#: f.meta.cc:2741 f.meta.cc:3213 f.meta.cc:3481 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "latitude/longitude inválido: %s %s" -#: f.meta.cc:3024 +#: f.meta.cc:3028 msgid "Geocoding web service courtesy of" msgstr "Serviço de geocodificação web cortesia de" -#: f.meta.cc:3045 f.meta.cc:3259 f.meta.cc:4772 +#: f.meta.cc:3049 f.meta.cc:3263 f.meta.cc:4778 msgid "city" msgstr "cidade" -#: f.meta.cc:3048 f.meta.cc:3262 f.meta.cc:4775 +#: f.meta.cc:3052 f.meta.cc:3266 f.meta.cc:4781 msgid "country" msgstr "país" -#: f.meta.cc:3120 f.meta.cc:3390 +#: f.meta.cc:3124 f.meta.cc:3394 msgid "city not found" msgstr "cidade não encontrada" -#: f.meta.cc:3455 +#: f.meta.cc:3459 msgid "" "data is incomplete \n" " proceed?" @@ -2648,139 +2667,139 @@ "Dados incompletos \n" " continuar?" -#: f.meta.cc:3481 f.tools.cc:4844 +#: f.meta.cc:3485 f.tools.cc:5143 msgid "no files selected" msgstr "nenhum arquivo selecionado" -#: f.meta.cc:3513 +#: f.meta.cc:3517 msgid "choose city" msgstr "escolher cidade" -#: f.meta.cc:3599 +#: f.meta.cc:3603 msgid "not found" msgstr "não encontrado" -#: f.meta.cc:3600 +#: f.meta.cc:3604 msgid "city and country required" msgstr "cidade e país requerido" -#: f.meta.cc:3692 +#: f.meta.cc:3696 msgid "Report Geotag Groups" msgstr "Relatório de Grupos de Georeferencias" -#: f.meta.cc:3693 +#: f.meta.cc:3697 msgid "Group by country" msgstr "Agrupar por país" -#: f.meta.cc:3694 +#: f.meta.cc:3698 msgid "Group by country/city" msgstr "Agrupar por país/cidade" -#: f.meta.cc:3695 +#: f.meta.cc:3699 msgid "Group by country/city/date" msgstr "Agrupar por país/cidade/data" -#: f.meta.cc:3698 +#: f.meta.cc:3702 msgid "Combine within" msgstr "Combinar interiormente" -#: f.meta.cc:3700 +#: f.meta.cc:3704 msgid "days" msgstr "dias" -#: f.meta.cc:3815 +#: f.meta.cc:3819 msgid "geotag groups" msgstr "grupos de georeferência" -#: f.meta.cc:4043 +#: f.meta.cc:4047 msgid "search range (km)" msgstr "procurar distância (km)" -#: f.meta.cc:4116 +#: f.meta.cc:4120 msgid "No matching images found" msgstr "Nenhuma imagem encontrada" -#: f.meta.cc:4202 +#: f.meta.cc:4206 msgid "Search Image Metadata" msgstr "Procurar por Metadados de Imagem" -#: f.meta.cc:4206 +#: f.meta.cc:4210 msgid "images to search:" msgstr "imagens para busca:" -#: f.meta.cc:4207 +#: f.meta.cc:4211 msgid "all" msgstr "todos" -#: f.meta.cc:4208 +#: f.meta.cc:4212 msgid "current set only" msgstr "configuração atual apenas" -#: f.meta.cc:4211 +#: f.meta.cc:4215 msgid "matching images:" msgstr "imagens correspondentes:" -#: f.meta.cc:4212 +#: f.meta.cc:4216 msgid "new set" msgstr "nova configuração" -#: f.meta.cc:4213 +#: f.meta.cc:4217 msgid "add to set" msgstr "adicionar à configuração" -#: f.meta.cc:4214 +#: f.meta.cc:4218 msgid "remove" msgstr "remover" -#: f.meta.cc:4217 +#: f.meta.cc:4221 msgid "report type:" -msgstr "" +msgstr "tipo relatório:" -#: f.meta.cc:4218 +#: f.meta.cc:4222 msgid "gallery" -msgstr "" +msgstr "galeria" -#: f.meta.cc:4219 +#: f.meta.cc:4223 msgid "metadata" -msgstr "" +msgstr "metadados" -#: f.meta.cc:4225 +#: f.meta.cc:4229 msgid "date range" msgstr "variação de data" -#: f.meta.cc:4226 +#: f.meta.cc:4230 msgid "stars range" msgstr "variação de estrelas" -#: f.meta.cc:4227 +#: f.meta.cc:4231 msgid "search tags" msgstr "procurar etiquetas" -#: f.meta.cc:4228 +#: f.meta.cc:4232 msgid "search text" msgstr "procurar texto" -#: f.meta.cc:4229 +#: f.meta.cc:4233 msgid "search files" msgstr "procurar arquivos" -#: f.meta.cc:4234 +#: f.meta.cc:4238 msgid "(yyyymmdd)" msgstr "(aaaammdd)" -#: f.meta.cc:4240 +#: f.meta.cc:4244 msgid "all/any" msgstr "todos/qualquer" -#: f.meta.cc:4259 +#: f.meta.cc:4263 msgid "other criteria" msgstr "outro critério" -#: f.meta.cc:4263 +#: f.meta.cc:4267 msgid "other" msgstr "outro" -#: f.meta.cc:4398 +#: f.meta.cc:4402 msgid "" "to remove images from current set, \n" "search current set" @@ -2788,7 +2807,7 @@ "para remover imagens da configuração atual, \n" "busque na configuração atual" -#: f.meta.cc:4405 +#: f.meta.cc:4409 msgid "" "to add images to current set, \n" "search all images" @@ -2796,28 +2815,28 @@ "para adicionar imagens à configuração atual, \n" "busque todas as imagens" -#: f.meta.cc:4632 +#: f.meta.cc:4636 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "imagens adicionadas: %d removidas: %d nova contagem: %d" -#: f.meta.cc:4635 +#: f.meta.cc:4639 msgid "no changes made" msgstr "nenhuma mudança feita" -#: f.meta.cc:4769 +#: f.meta.cc:4775 msgid "Add Geotags Search Criteria" msgstr "Adicionar Critério de Busca Georeferencial" -#: f.meta.cc:4788 +#: f.meta.cc:4794 msgid "range (km)" msgstr "alcance (km)" -#: f.meta.cc:4881 +#: f.meta.cc:4885 msgid "error in latitude/longitude/range" msgstr "erro na latitude/longitude/distância" -#: f.meta.cc:4946 +#: f.meta.cc:4950 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2825,19 +2844,19 @@ "Esses itens são sempre relatados: \n" "data, estrelas, etiquetas, legenda, comentário" -#: f.meta.cc:4970 +#: f.meta.cc:4974 msgid "Additional Items for Report" msgstr "Itens Adicionais para Relatar" -#: f.meta.cc:4976 +#: f.meta.cc:4980 msgid "Keyword" msgstr "Palavra chave" -#: f.meta.cc:4983 +#: f.meta.cc:4987 msgid "Match Criteria" msgstr "Equiparar Critério" -#: f.meta.cc:5554 f.tools.cc:300 +#: f.meta.cc:5558 f.tools.cc:300 msgid "image index is missing" msgstr "índice de imagem faltando" @@ -2881,7 +2900,7 @@ "1. Arraste o mouse para selecionar. \n" "2. Apague. 3. Repita. " -#: f.repair.cc:1563 fotoxx.h:1048 +#: f.repair.cc:1563 fotoxx.h:1053 msgid "Radius" msgstr "Raio" @@ -3002,87 +3021,95 @@ msgid "Stuck Pixels file" msgstr "Arquvio de Pixels Presos" -#: f.repair.cc:4203 +#: f.repair.cc:4203 f.tools.cc:3380 msgid "file format error" msgstr "erro de formato de arquivo" -#: f.retouch.cc:292 fotoxx.h:993 +#: f.retouch.cc:292 +msgid "Amplifier" +msgstr "" + +#: f.retouch.cc:293 fotoxx.h:998 msgid "Brightness" msgstr "Briho" -#: f.retouch.cc:293 fotoxx.h:1000 +#: f.retouch.cc:294 fotoxx.h:1005 msgid "Contrast" msgstr "Contraste" -#: f.retouch.cc:294 +#: f.retouch.cc:295 msgid "Low Color" msgstr "Cor baixa" -#: f.retouch.cc:295 +#: f.retouch.cc:296 msgid "Warmer" msgstr "Mais quente" -#: f.retouch.cc:296 +#: f.retouch.cc:297 msgid "Dark Areas" msgstr "Áreas Escuras" -#: f.retouch.cc:304 f.retouch.cc:305 f.retouch.cc:306 +#: f.retouch.cc:306 +msgid "Max." +msgstr "" + +#: f.retouch.cc:307 f.retouch.cc:308 f.retouch.cc:309 msgid "High" msgstr "Alto" -#: f.retouch.cc:307 +#: f.retouch.cc:310 msgid "Cooler" msgstr "Mais frio" -#: f.retouch.cc:308 +#: f.retouch.cc:311 msgid "Bright" msgstr "Brilho" -#: f.retouch.cc:311 +#: f.retouch.cc:317 msgid "Click for white balance or black level" msgstr "Clique para balancear o nível de branco ou preto" -#: f.retouch.cc:957 +#: f.retouch.cc:1067 msgid "low" msgstr "baixo" -#: f.retouch.cc:959 +#: f.retouch.cc:1069 msgid "high" msgstr "alto" -#: f.retouch.cc:962 +#: f.retouch.cc:1072 msgid "Amplify" msgstr "Ampliar" -#: f.retouch.cc:1301 +#: f.retouch.cc:1411 msgid "Adjust Brightness Distribution" msgstr "Ajustar Distribuição de Brilho" -#: f.retouch.cc:1339 +#: f.retouch.cc:1449 msgid "Flatten" msgstr "Abrandar" -#: f.retouch.cc:1340 +#: f.retouch.cc:1450 msgid "Deband" msgstr "Debandar" -#: f.retouch.cc:1341 +#: f.retouch.cc:1451 msgid "Darken" msgstr "Escurecer" -#: f.retouch.cc:1342 +#: f.retouch.cc:1452 msgid "Brighten" msgstr "Iluminar" -#: f.retouch.cc:1675 +#: f.retouch.cc:1784 msgid "Ramp brightness across image" msgstr "Curva de Brilho sobre a imagem" -#: f.retouch.cc:2052 f.tools.cc:5777 +#: f.retouch.cc:2161 f.retouch.cc:2398 f.tools.cc:6085 msgid "Edit function must be active" msgstr "Função Editar tem de estar ativada" -#: f.retouch.cc:2060 fotoxx-14.03.cc:3108 +#: f.retouch.cc:2169 fotoxx-14.04.cc:3132 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -3090,14 +3117,26 @@ "Área selecionada não pode ser capturada.\n" "Continuar?" -#: f.retouch.cc:2089 +#: f.retouch.cc:2198 msgid "power: center" msgstr "alimentação: centro" -#: f.retouch.cc:2094 +#: f.retouch.cc:2203 msgid "reset area" msgstr "redefinir área" +#: f.retouch.cc:2391 +msgid "Edit Function Amplifier" +msgstr "Editar função Amplificador" + +#: f.retouch.cc:2427 +msgid "minimum" +msgstr "mínimo" + +#: f.retouch.cc:2429 +msgid "maximum" +msgstr "máximo" + #: f.tools.cc:95 msgid "Top Image Directories" msgstr "Diretórios superiores de Imagem" @@ -3108,7 +3147,7 @@ #: f.tools.cc:105 msgid "Thumbnails" -msgstr "" +msgstr "Miniaturas" #: f.tools.cc:143 f.tools.cc:742 msgid "terminated by user" @@ -3120,7 +3159,7 @@ #: f.tools.cc:195 msgid "Choose thumbnail directory" -msgstr "" +msgstr "Escolher diretório de miniaturas" #: f.tools.cc:311 #, c-format @@ -3133,7 +3172,7 @@ #: f.tools.cc:323 msgid "thumbnails directory not .../thumbnails" -msgstr "" +msgstr "diretório de miniaturas não é .../thumbnails" #: f.tools.cc:369 f.tools.cc:396 #, c-format @@ -3153,152 +3192,136 @@ msgid "COMPLETED" msgstr "COMPLETO" -#: f.tools.cc:818 +#: f.tools.cc:817 msgid "Settings" msgstr "Configurações" -#: f.tools.cc:821 +#: f.tools.cc:820 msgid "Startup Display" msgstr "Exibição Inicial" -#: f.tools.cc:823 +#: f.tools.cc:822 msgid "Recent Files Gallery" msgstr "Arquivos Recentes da Galeria" -#: f.tools.cc:825 +#: f.tools.cc:824 msgid "Newest Files Gallery" msgstr "Galeria de Arquivos Recentes" -#: f.tools.cc:827 +#: f.tools.cc:826 msgid "Previous Gallery" -msgstr "" +msgstr "Galeria Anterior" -#: f.tools.cc:829 +#: f.tools.cc:828 msgid "Previous Image" -msgstr "" +msgstr "Imagem Anterior" -#: f.tools.cc:831 +#: f.tools.cc:830 msgid "Blank Window" msgstr "Janela em Branco" -#: f.tools.cc:833 +#: f.tools.cc:832 msgid "Directory Gallery" msgstr "Diretório de Galeria" -#: f.tools.cc:837 +#: f.tools.cc:836 msgid "Image File" msgstr "Arquivo de Imagem" -#: f.tools.cc:844 -msgid "Menu Style" -msgstr "Estilo de Menu" - -#: f.tools.cc:845 -msgid "Classic" -msgstr "Classico" - -#: f.tools.cc:846 -msgid "Vertical" -msgstr "Vertical" - -#: f.tools.cc:849 +#: f.tools.cc:843 msgid "Toolbar Style" msgstr "Estilo da barra de ferramentas" -#: f.tools.cc:851 +#: f.tools.cc:845 msgid "Icons" msgstr "Ícones" -#: f.tools.cc:852 +#: f.tools.cc:846 msgid "Both" msgstr "Ambos" -#: f.tools.cc:855 +#: f.tools.cc:849 msgid "Image Pan" msgstr "Navegador de Imagem" -#: f.tools.cc:856 +#: f.tools.cc:850 msgid "Drag" msgstr "Arrastar" -#: f.tools.cc:857 -msgid "Scroll" -msgstr "Rolar" - -#: f.tools.cc:858 +#: f.tools.cc:852 msgid "Magnified" msgstr "Ampliado" -#: f.tools.cc:867 +#: f.tools.cc:861 msgid "Default JPEG quality" msgstr "Qualidade JPEG padrão" -#: f.tools.cc:871 +#: f.tools.cc:865 msgid "Zooms for 200%" msgstr "Amplia para 200%" -#: f.tools.cc:875 +#: f.tools.cc:869 msgid "RAW command" msgstr "comando RAW" -#: f.tools.cc:879 +#: f.tools.cc:873 msgid "RAW file types" msgstr "Tipos de arquivos RAW" -#: f.tools.cc:1027 +#: f.tools.cc:1016 msgid "startup directory is invalid" msgstr "diretório de iniciação é inválido" -#: f.tools.cc:1035 +#: f.tools.cc:1024 msgid "startup file is invalid" msgstr "arquivo de iniação é inválido" -#: f.tools.cc:1130 +#: f.tools.cc:1105 msgid "Select startup directory" msgstr "Selecionar diretório de inicialização" -#: f.tools.cc:1138 +#: f.tools.cc:1113 msgid "Select startup image file" msgstr "Selecionar arquivo de imagem inicial" -#: f.tools.cc:1176 +#: f.tools.cc:1151 msgid "Click list position. Click thumbnail to add." msgstr "Clique na posição da lista. Clique na miniatura para adicionar." -#: f.tools.cc:1201 f.tools.cc:1418 +#: f.tools.cc:1176 f.tools.cc:1393 msgid "Edit Bookmarks" msgstr "Editar Favoritos" -#: f.tools.cc:1349 +#: f.tools.cc:1324 msgid "unable to save bookmarks file" msgstr "incapaz de salvar arquivo de favoritos" -#: f.tools.cc:1418 +#: f.tools.cc:1393 msgid "Go To Bookmark" msgstr "Ir para Favorito" -#: f.tools.cc:1563 +#: f.tools.cc:1538 msgid "Edit KB Shortcuts" msgstr "Editar Atalhos" -#: f.tools.cc:1568 +#: f.tools.cc:1543 msgid "shortcut key:" msgstr "tecla de atalho:" -#: f.tools.cc:1569 +#: f.tools.cc:1544 msgid "(enter key)" -msgstr "" +msgstr "(tecla enter)" -#: f.tools.cc:1695 +#: f.tools.cc:1670 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Reservado, não pode ser usado" -#: f.tools.cc:1826 +#: f.tools.cc:1801 msgid "unable to save KB-shortcuts file" msgstr "incapaz de salvar arquivo de atalhos do teclado" -#: f.tools.cc:1914 +#: f.tools.cc:1889 msgid "" "Right-click collection thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -3306,280 +3329,313 @@ "Clique direito com o mouse nas miniaturas da coleção para \n" "recortar/colar no cache, inserir a partir do cache, ou remover." -#: f.tools.cc:1955 +#: f.tools.cc:1930 msgid "Start a new collection, add images" msgstr "Criar nova coleção, adicionar imagens" -#: f.tools.cc:1957 +#: f.tools.cc:1932 msgid "New collection from current gallery" msgstr "Nova coleção a partir da galeria atual" -#: f.tools.cc:1959 +#: f.tools.cc:1934 msgid "Collection to view or edit" msgstr "Coleção para ver ou editar " -#: f.tools.cc:1961 +#: f.tools.cc:1936 msgid "Select images, add to cache" msgstr "Selecionar imagens, adicionar ao cache" -#: f.tools.cc:1963 +#: f.tools.cc:1938 msgid "Clear image cache" msgstr "Limpar cache de imagens" -#: f.tools.cc:1964 +#: f.tools.cc:1939 msgid "(0 images)" msgstr "(0 imagens)" -#: f.tools.cc:1966 +#: f.tools.cc:1941 msgid "Delete a collection" msgstr "Excluir uma Coleção" -#: f.tools.cc:1987 +#: f.tools.cc:1962 msgid "New Collection" msgstr "Nova Coleção" -#: f.tools.cc:1988 +#: f.tools.cc:1963 msgid "Choose Collection" msgstr "Escolher Coleção" -#: f.tools.cc:1989 +#: f.tools.cc:1964 msgid "Delete Collection" msgstr "Excluir Coleção" -#: f.tools.cc:1990 +#: f.tools.cc:1965 #, c-format msgid "(%d images)" msgstr "(%d imagens)" -#: f.tools.cc:1991 +#: f.tools.cc:1966 #, c-format msgid "%d images remaining in cache" msgstr "%d imagens permanecem em cache" -#: f.tools.cc:2025 f.tools.cc:2064 +#: f.tools.cc:2000 f.tools.cc:2039 msgid "New collection created" msgstr "Nova coleção criada" -#: f.tools.cc:2031 +#: f.tools.cc:2006 msgid "gallery is empty" msgstr "galeria vazia" -#: f.tools.cc:2105 +#: f.tools.cc:2080 #, c-format msgid "delete %s ?" msgstr "excluir %s ?" -#: f.tools.cc:2461 +#: f.tools.cc:2436 msgid "all collections" msgstr "todas coleções" -#: f.tools.cc:2495 +#: f.tools.cc:2470 msgid "Move Collection" msgstr "Mover Coleção" -#: f.tools.cc:2497 +#: f.tools.cc:2472 msgid "collection name" msgstr "Nome de Coleção" -#: f.tools.cc:2500 +#: f.tools.cc:2475 msgid "old path segment" msgstr "segmento do caminho anterior" -#: f.tools.cc:2503 +#: f.tools.cc:2478 msgid "new path segment" msgstr "segmento do novo caminho" -#: f.tools.cc:2592 +#: f.tools.cc:2567 msgid "Replace Collection?" msgstr "Substituir Coleção?" -#: f.tools.cc:2708 +#: f.tools.cc:2694 msgid "Press ESC to exit slide show" msgstr "Pressione ESC para sair da apresentação" -#: f.tools.cc:2709 -msgid "last versions" -msgstr "últimas versões" - -#: f.tools.cc:2713 +#: f.tools.cc:2696 msgid "instant" msgstr "imediato" -#: f.tools.cc:2714 +#: f.tools.cc:2697 msgid "fade-in" msgstr "esmaecer" -#: f.tools.cc:2715 +#: f.tools.cc:2698 msgid "roll-right" msgstr "rolar para direita" -#: f.tools.cc:2716 +#: f.tools.cc:2699 msgid "roll-down" msgstr "rolar para baixo" -#: f.tools.cc:2717 +#: f.tools.cc:2700 msgid "venetian" msgstr "veneziano" -#: f.tools.cc:2718 +#: f.tools.cc:2701 msgid "grate" msgstr "grade" -#: f.tools.cc:2719 +#: f.tools.cc:2702 msgid "rectangle" msgstr "retângulo" -#: f.tools.cc:2720 +#: f.tools.cc:2703 msgid "radar" msgstr "radar" -#: f.tools.cc:2721 +#: f.tools.cc:2704 msgid "jaws" msgstr "maxilas" -#: f.tools.cc:2722 +#: f.tools.cc:2705 msgid "ellipse" msgstr "elipse" -#: f.tools.cc:2723 +#: f.tools.cc:2706 msgid "raindrops" msgstr "gotas de chuva" -#: f.tools.cc:2724 +#: f.tools.cc:2707 msgid "doubledoor" msgstr "doubledoor" -#: f.tools.cc:2725 +#: f.tools.cc:2708 msgid "rotate" -msgstr "" +msgstr "rotacionar" -#: f.tools.cc:2787 -msgid "Pause List" -msgstr "Lista de Pausas" +#: f.tools.cc:2739 +msgid "Clip Limit" +msgstr "Limite de Corte" -#: f.tools.cc:2794 -msgid "transitions" -msgstr "transições" +#: f.tools.cc:2741 +msgid "Show Captions" +msgstr "Mostrar Legendas" -#: f.tools.cc:2796 -msgid "seconds" -msgstr "segundos" +#: f.tools.cc:2744 +msgid "Music File" +msgstr "Arquivo de Música" -#: f.tools.cc:2800 -msgid "Clip Limit (%)" -msgstr "Limite de Corte (%)" +#: f.tools.cc:2749 +msgid "Customize:" +msgstr "Customizar:" -#: f.tools.cc:2802 -msgid "show captions" -msgstr "" +#: f.tools.cc:2750 +msgid "transitions" +msgstr "transições" -#: f.tools.cc:2805 -msgid "music file" -msgstr "arquivo de música" +#: f.tools.cc:2751 +msgid "image files" +msgstr "" -#: f.tools.cc:2820 f.tools.cc:2828 f.tools.cc:2956 f.tools.cc:2979 -#: f.tools.cc:2992 +#: f.tools.cc:2759 f.tools.cc:2880 #, c-format msgid "%d images" msgstr "%d imagens" -#: f.tools.cc:2854 -msgid "no image files selected" -msgstr "nenhum arquivo de imagem selecionado" +#: f.tools.cc:2781 f.tools.cc:2847 f.tools.cc:2875 f.tools.cc:2937 +#: f.tools.cc:3033 f.tools.cc:3189 f.tools.cc:3236 f.tools.cc:3253 +#: f.tools.cc:3396 +msgid "invalid collection" +msgstr "coleção inválida" -#: f.tools.cc:2945 f.tools.cc:2968 +#: f.tools.cc:2860 msgid "open collection" msgstr "abrir coleção" -#: f.tools.cc:3013 +#: f.tools.cc:2900 msgid "Select music file or playlist" msgstr "Selecione arquivo de música ou lista de reprodução" -#: f.tools.cc:3046 -msgid "invalid collection" -msgstr "coleção inválida" - -#: f.tools.cc:3061 f.tools.cc:3131 -msgid "empty collection" -msgstr "coleção vazia" - -#: f.tools.cc:3167 +#: f.tools.cc:2917 msgid "select random (if 5+ enabled)" -msgstr "" +msgstr "selecionar aleatoriamente (se 5+ habilitadas)" -#: f.tools.cc:3186 +#: f.tools.cc:2941 msgid "Transition Preferences" msgstr "Preferências de Transição" -#: f.tools.cc:3196 +#: f.tools.cc:2950 msgid "transition" msgstr "transição" -#: f.tools.cc:3197 +#: f.tools.cc:2951 msgid "enabled" msgstr "habilitado" -#: f.tools.cc:3198 +#: f.tools.cc:2952 msgid "slowdown" msgstr "desacelerar" -#: f.tools.cc:3199 +#: f.tools.cc:2953 msgid "preference" msgstr "preferência" -#: f.tools.cc:4506 +#: f.tools.cc:3037 +msgid "Image Preferences" +msgstr "" + +#: f.tools.cc:3041 f.tools.cc:3090 f.tools.cc:3202 +msgid "Image File:" +msgstr "Arquivo de Imagem:" + +#: f.tools.cc:3044 +msgid "Play tone" +msgstr "" + +#: f.tools.cc:3046 +msgid "Transition" +msgstr "" + +#: f.tools.cc:3051 f.tools.cc:3071 +msgid "+Seconds" +msgstr "" + +#: f.tools.cc:3053 +msgid "before zoom" +msgstr "" + +#: f.tools.cc:3056 +msgid "Zoom size %" +msgstr "" + +#: f.tools.cc:3059 +msgid "Steps" +msgstr "" + +#: f.tools.cc:3063 +msgid "Zoom center" +msgstr "" + +#: f.tools.cc:3073 +msgid "after zoom" +msgstr "" + +#: f.tools.cc:3075 +msgid "next" +msgstr "próximo" + +#: f.tools.cc:4805 msgid "base" msgstr "base" -#: f.tools.cc:4508 +#: f.tools.cc:4807 msgid "adder" msgstr "somador" -#: f.tools.cc:4512 +#: f.tools.cc:4811 msgid "New Location" msgstr "Nova Localidade" -#: f.tools.cc:4517 +#: f.tools.cc:4816 msgid "New File Type" msgstr "Novo Tipo de Arquivo" -#: f.tools.cc:4521 f.tools.cc:4529 +#: f.tools.cc:4820 f.tools.cc:4828 msgid "no change" msgstr "sem mudanças" -#: f.tools.cc:4524 +#: f.tools.cc:4823 msgid "max. Width" msgstr "Largura max." -#: f.tools.cc:4527 fotoxx.h:1020 +#: f.tools.cc:4826 fotoxx.h:1025 msgid "Height" msgstr "Altura" -#: f.tools.cc:4532 f.tools.cc:4905 +#: f.tools.cc:4831 f.tools.cc:5204 msgid "Delete Originals" msgstr "Excluir Originais" -#: f.tools.cc:4533 f.tools.cc:4902 +#: f.tools.cc:4832 f.tools.cc:5201 msgid "Copy Metadata" msgstr "Copiar Metadados" -#: f.tools.cc:4534 f.tools.cc:4903 +#: f.tools.cc:4833 f.tools.cc:5202 msgid "Upright" msgstr "De Pé" -#: f.tools.cc:4626 +#: f.tools.cc:4925 msgid "file already exists" msgstr "arquivo já existe" -#: f.tools.cc:4634 +#: f.tools.cc:4933 msgid "file type not supported" msgstr "tipo de arquivo não suportado" -#: f.tools.cc:4703 +#: f.tools.cc:5002 msgid "cannot create new file" msgstr "impossível criar novo arquivo" -#: f.tools.cc:4854 +#: f.tools.cc:5153 msgid "" "new name/base/adder unreasonable\n" " e.g. newname ### 100 10" @@ -3587,117 +3643,117 @@ "novo nome/base/somedor anormal \n" " ex. novo-nome ### 100 10" -#: f.tools.cc:4877 +#: f.tools.cc:5176 #, c-format msgid "max. size %d x %d is not reasonable" msgstr "tamanho max. %d x %d não é razoável" -#: f.tools.cc:4896 +#: f.tools.cc:5195 #, c-format msgid "Convert %d image files" msgstr "Converter %d arquivos de imagem" -#: f.tools.cc:4897 +#: f.tools.cc:5196 msgid "Rename to" msgstr "Renomear para" -#: f.tools.cc:4898 +#: f.tools.cc:5197 msgid "Convert to" msgstr "Converter para" -#: f.tools.cc:4899 +#: f.tools.cc:5198 msgid "Resize within" -msgstr "Redimensionar por dentro" +msgstr "Redimensionar dentro de" -#: f.tools.cc:4900 +#: f.tools.cc:5199 msgid "Output to" msgstr "Saída para" -#: f.tools.cc:4906 +#: f.tools.cc:5205 msgid "PROCEED?" -msgstr "" +msgstr "PROCEDER?" -#: f.tools.cc:4938 +#: f.tools.cc:5237 msgid "Batch Convert RAW Files" msgstr "Converter Arquivos RAW em Lote" -#: f.tools.cc:4969 +#: f.tools.cc:5268 msgid "output file type" msgstr "tipo de arquivo de saída" -#: f.tools.cc:4981 +#: f.tools.cc:5280 msgid "white balance" msgstr "balanço de branco" -#: f.tools.cc:4982 +#: f.tools.cc:5281 msgid "interpolation" msgstr "interpolação" -#: f.tools.cc:4983 +#: f.tools.cc:5282 msgid "color space" msgstr "espaço de cor" -#: f.tools.cc:4984 +#: f.tools.cc:5283 msgid "gamma curve" msgstr "curva de gama" -#: f.tools.cc:4987 +#: f.tools.cc:5286 msgid "camera" msgstr "camera" -#: f.tools.cc:4988 +#: f.tools.cc:5287 msgid "fixed" msgstr "fixado" -#: f.tools.cc:4989 +#: f.tools.cc:5288 msgid "calculated" msgstr "calculado" -#: f.tools.cc:5006 +#: f.tools.cc:5305 msgid "default" msgstr "padrão" -#: f.tools.cc:5012 +#: f.tools.cc:5311 msgid "defaults" msgstr "padrões" -#: f.tools.cc:5526 +#: f.tools.cc:5834 msgid "x-spacing" msgstr "espaçamento-x" -#: f.tools.cc:5527 +#: f.tools.cc:5835 msgid "x-count" msgstr "contagem-x" -#: f.tools.cc:5528 +#: f.tools.cc:5836 msgid "x-enable" msgstr "x-habilitado" -#: f.tools.cc:5534 +#: f.tools.cc:5842 msgid "y-spacing" msgstr "espaçamento-y" -#: f.tools.cc:5535 +#: f.tools.cc:5843 msgid "y-count" msgstr "contagem-y" -#: f.tools.cc:5536 +#: f.tools.cc:5844 msgid "y-enable" msgstr "y-habilitado" -#: f.tools.cc:5984 +#: f.tools.cc:6292 msgid "Darkest and Brightest Pixels" msgstr "Pixels mais Escuros e Brilhantes" -#: f.tools.cc:6007 +#: f.tools.cc:6315 msgid "Dark Limit" msgstr "Limite Escuro" -#: f.tools.cc:6008 +#: f.tools.cc:6316 msgid "Bright Limit" msgstr "Limite Claro" -#: f.tools.cc:6115 +#: f.tools.cc:6423 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3705,31 +3761,31 @@ "Brilho deveria mostrar uma inclinação gradual \n" "estendendo-se até as bordas." -#: f.tools.cc:6272 +#: f.tools.cc:6580 msgid "Available Translations" msgstr "Traduções disponíveis" -#: f.tools.cc:6276 +#: f.tools.cc:6584 msgid "Set Language" msgstr "Configurar língua" -#: f.tools.cc:6364 +#: f.tools.cc:6672 msgid "Make Launcher" msgstr "Criar Atalho" -#: fotoxx-14.03.cc:312 +#: fotoxx-14.04.cc:309 msgid "Tab F: image file view/edit" msgstr "Aba F: visualizar arquivo-imagem/editar" -#: fotoxx-14.03.cc:321 +#: fotoxx-14.04.cc:318 msgid "Tab G: image gallery" msgstr "Aba G: galeria de imagens" -#: fotoxx-14.03.cc:330 +#: fotoxx-14.04.cc:327 msgid "Tab W: world map" msgstr "Aba W: mapa Mundi" -#: fotoxx-14.03.cc:447 +#: fotoxx-14.04.cc:441 msgid "" "First time Fotoxx startup. \n" "Latest version: http://www.kornelix.com/fotoxx \n" @@ -3737,61 +3793,65 @@ msgstr "" "Primeira inicialização do Fotoxx. \n" "Última versão: http://www.kornelix.com/fotoxx \n" -"Processo de sincronização de arquivos irá começar (pode levar tempo) \n" +"Processo de sincronização de arquivos vai começar (pode levar tempo) \n" -#: fotoxx-14.03.cc:492 +#: fotoxx-14.04.cc:488 msgid "Please install missing programs:" msgstr "Por favor, instale os programas que faltam:" -#: fotoxx-14.03.cc:901 +#: fotoxx-14.04.cc:904 msgid "(reduced)" msgstr "(reduzido)" -#: fotoxx-14.03.cc:902 +#: fotoxx-14.04.cc:905 msgid "area active" msgstr "área ativada" -#: fotoxx-14.03.cc:903 +#: fotoxx-14.04.cc:906 msgid "dialog open" msgstr "caixa de diálogo aberta" -#: fotoxx-14.03.cc:904 +#: fotoxx-14.04.cc:907 msgid "function busy" msgstr "função em andamento" -#: fotoxx-14.03.cc:905 +#: fotoxx-14.04.cc:908 msgid "file index busy" msgstr "índice de arquivo ocupado" -#: fotoxx-14.03.cc:906 +#: fotoxx-14.04.cc:909 msgid "menu locked" msgstr "menu bloqueado" -#: fotoxx-14.03.cc:953 +#: fotoxx-14.04.cc:956 msgid "edits" msgstr "edições" -#: fotoxx-14.03.cc:999 +#: fotoxx-14.04.cc:1002 msgid "Kill active dialog?" msgstr "Fechar caixa de diálogo ativa?" -#: fotoxx-14.03.cc:2768 +#: fotoxx-14.04.cc:1082 +msgid "Location from World Map" +msgstr "Localidade no Mapa Mundial" + +#: fotoxx-14.04.cc:2792 msgid "Exceed 50 anchor points" msgstr "Excedeu 50 pontos de ancoragem" -#: fotoxx-14.03.cc:2951 +#: fotoxx-14.04.cc:2975 msgid "load curve from a file" msgstr "carregar curva de arquivo" -#: fotoxx-14.03.cc:3026 +#: fotoxx-14.04.cc:3050 msgid "save curve to a file" msgstr "salvar curva para arquivo" -#: fotoxx-14.03.cc:3101 +#: fotoxx-14.04.cc:3125 msgid "Too many edits, please save image" msgstr "Muitas edições, favor salvar imagem" -#: fotoxx-14.03.cc:3116 +#: fotoxx-14.04.cc:3140 msgid "" "Select area not active.\n" "Continue?" @@ -3799,288 +3859,292 @@ "Área selecionada não ativa.\n" "Continuar?" -#: fotoxx-14.03.cc:3503 +#: fotoxx-14.04.cc:3527 msgid "This action will discard changes\n" msgstr "Esta ação irá descartar mudanças \n" -#: fotoxx-14.03.cc:3504 fotoxx.h:1026 +#: fotoxx-14.04.cc:3528 fotoxx.h:1031 msgid "Keep" msgstr "Manter" -#: fotoxx-14.03.cc:3505 +#: fotoxx-14.04.cc:3529 msgid "Discard" msgstr "Descartar" -#: fotoxx-14.03.cc:3519 fotoxx-14.03.cc:3539 +#: fotoxx-14.04.cc:3543 fotoxx-14.04.cc:3563 msgid "prior function active" msgstr "função anterior ainda ativada" -#: fotoxx.h:983 +#: fotoxx.h:988 msgid "Add" msgstr "Adicionar" -#: fotoxx.h:984 +#: fotoxx.h:989 msgid "Add All" msgstr "Adicionar todos" -#: fotoxx.h:986 +#: fotoxx.h:991 msgid "Amount" msgstr "Quantidade" -#: fotoxx.h:987 +#: fotoxx.h:992 msgid "Angle" msgstr "Ângulo" -#: fotoxx.h:988 +#: fotoxx.h:993 msgid "Apply" msgstr "Aplicar" -#: fotoxx.h:989 +#: fotoxx.h:994 msgid "Autocomplete" msgstr "Autocompletar" -#: fotoxx.h:990 +#: fotoxx.h:995 msgid "Black" msgstr "Preto" -#: fotoxx.h:991 +#: fotoxx.h:996 msgid "Blend Width" msgstr "Quantidade de mistura" -#: fotoxx.h:994 +#: fotoxx.h:999 msgid "Browse" msgstr "Procurar" -#: fotoxx.h:995 +#: fotoxx.h:1000 msgid "Cancel" msgstr "Cancelar" -#: fotoxx.h:996 +#: fotoxx.h:1001 msgid "center" msgstr "centralizar" -#: fotoxx.h:997 +#: fotoxx.h:1002 msgid "Choose" msgstr "Escolher" -#: fotoxx.h:998 +#: fotoxx.h:1003 msgid "Clear" msgstr "Limpar" -#: fotoxx.h:1002 +#: fotoxx.h:1007 msgid "Create" -msgstr "" +msgstr "Criar" -#: fotoxx.h:1003 +#: fotoxx.h:1008 msgid "Curve File:" msgstr "Arquivo de curva:" -#: fotoxx.h:1004 +#: fotoxx.h:1009 msgid "Cut" msgstr "Recortar" -#: fotoxx.h:1005 +#: fotoxx.h:1010 msgid "Delete" msgstr "Exlcuir" -#: fotoxx.h:1007 -msgid "Bdist" -msgstr "Dist.B." +#: fotoxx.h:1012 +msgid "Dist" +msgstr "" -#: fotoxx.h:1008 +#: fotoxx.h:1013 msgid "Done" msgstr "Pronto" -#: fotoxx.h:1009 +#: fotoxx.h:1014 msgid "edge" msgstr "borda" -#: fotoxx.h:1010 +#: fotoxx.h:1015 msgid "Edit" msgstr "Editar" -#: fotoxx.h:1012 +#: fotoxx.h:1017 msgid "Erase" msgstr "Apagar" -#: fotoxx.h:1013 +#: fotoxx.h:1018 msgid "Fetch" msgstr "Buscar" -#: fotoxx.h:1014 +#: fotoxx.h:1019 msgid "Find" msgstr "Encontrar" -#: fotoxx.h:1015 +#: fotoxx.h:1020 msgid "Finish" msgstr "Finalizar" -#: fotoxx.h:1016 +#: fotoxx.h:1021 msgid "Font" msgstr "Fonte" -#: fotoxx.h:1017 +#: fotoxx.h:1022 msgid "Geotags" msgstr "Georeferências" -#: fotoxx.h:1019 +#: fotoxx.h:1024 msgid "Grid" msgstr "Grade" -#: fotoxx.h:1023 +#: fotoxx.h:1028 msgid "Images" msgstr "Imagens" -#: fotoxx.h:1024 +#: fotoxx.h:1029 msgid "Insert" msgstr "Inserir" -#: fotoxx.h:1027 +#: fotoxx.h:1032 msgid "limit" msgstr "limite" -#: fotoxx.h:1028 +#: fotoxx.h:1033 msgid "Make" msgstr "Gerar" -#: fotoxx.h:1030 +#: fotoxx.h:1035 msgid "Map" msgstr "Mapa" -#: fotoxx.h:1031 +#: fotoxx.h:1036 msgid "Max" msgstr "Máximo" -#: fotoxx.h:1032 +#: fotoxx.h:1037 msgid "Negative" msgstr "Negativo" -#: fotoxx.h:1033 +#: fotoxx.h:1038 msgid "New" msgstr "Novo" -#: fotoxx.h:1035 zfuncs.cc:8589 +#: fotoxx.h:1040 zfuncs.cc:8589 msgid "No" msgstr "Não" -#: fotoxx.h:1036 +#: fotoxx.h:1041 msgid "no images" msgstr "não há imagens" -#: fotoxx.h:1037 +#: fotoxx.h:1042 msgid "no selection" msgstr "não há seleção" -#: fotoxx.h:1038 +#: fotoxx.h:1043 msgid "OK" msgstr "OK" -#: fotoxx.h:1040 +#: fotoxx.h:1045 msgid "Open RAW File" msgstr "Abrir arquivo RAW" -#: fotoxx.h:1042 +#: fotoxx.h:1047 msgid "Pause" msgstr "Pausar" -#: fotoxx.h:1043 +#: fotoxx.h:1048 msgid "Percent" msgstr "Percentagem" -#: fotoxx.h:1045 +#: fotoxx.h:1050 msgid "Presets" msgstr "Predefinições" -#: fotoxx.h:1047 +#: fotoxx.h:1052 msgid "Proceed" msgstr "Continuar" -#: fotoxx.h:1049 +#: fotoxx.h:1054 msgid "range" msgstr "variação" -#: fotoxx.h:1052 +#: fotoxx.h:1057 msgid "Reduce" msgstr "Reduzir" -#: fotoxx.h:1053 +#: fotoxx.h:1058 msgid "Remove" msgstr "Remover" -#: fotoxx.h:1055 +#: fotoxx.h:1060 msgid "Reset" msgstr "Redefinir" -#: fotoxx.h:1056 +#: fotoxx.h:1061 msgid "Rotate" msgstr "Rotacionar" -#: fotoxx.h:1058 +#: fotoxx.h:1063 msgid "Unknown file type, save as tiff/jpeg/png to edit" msgstr "Tipo de arquivo desconhecido, Salvar como tiff/jpeg/png para editar" -#: fotoxx.h:1059 +#: fotoxx.h:1064 msgid "Search" msgstr "Buscar" -#: fotoxx.h:1063 +#: fotoxx.h:1065 +msgid "Seconds" +msgstr "Segundos" + +#: fotoxx.h:1069 msgid "Size" msgstr "Tamanho" -#: fotoxx.h:1064 +#: fotoxx.h:1070 msgid "Start" msgstr "Iniciar" -#: fotoxx.h:1065 +#: fotoxx.h:1071 msgid "Strength" msgstr "Força" -#: fotoxx.h:1066 +#: fotoxx.h:1072 msgid "Threshold" msgstr "Limiar" -#: fotoxx.h:1067 +#: fotoxx.h:1073 #, c-format msgid "exceed %d files" msgstr "excedido %d arquivos" -#: fotoxx.h:1069 +#: fotoxx.h:1075 msgid "Trim" msgstr "Recortar" -#: fotoxx.h:1070 +#: fotoxx.h:1076 msgid "Undo All" msgstr "Desfazer tudo" -#: fotoxx.h:1071 +#: fotoxx.h:1077 msgid "Undo Last" msgstr "Desfazer último" -#: fotoxx.h:1073 +#: fotoxx.h:1079 msgid "Unfinish" msgstr "Inacabado" -#: fotoxx.h:1075 +#: fotoxx.h:1081 msgid "View" msgstr "Ver" -#: fotoxx.h:1076 +#: fotoxx.h:1082 msgid "Web" msgstr "Web" -#: fotoxx.h:1077 +#: fotoxx.h:1083 msgid "White" msgstr "Branco" -#: fotoxx.h:1079 +#: fotoxx.h:1085 msgid "x-offset" msgstr "deslocamento-x" -#: fotoxx.h:1080 +#: fotoxx.h:1086 msgid "y-offset" msgstr "deslocamento-y" -#: fotoxx.h:1081 zfuncs.cc:8589 +#: fotoxx.h:1087 zfuncs.cc:8589 msgid "Yes" msgstr "Sim" @@ -4235,728 +4299,11 @@ msgid "add parameter" msgstr "adicionar parâmetro" -#~ msgid "location is not a valid directory" -#~ msgstr "localização não é uma pasta válida" - -#~ msgid "Adjust White Balance" -#~ msgstr "Ajustar balanço de branco" - -#~ msgid "Click white or gray image location" -#~ msgstr "Clique em uma área branca ou cinza da imagem" - -#~ msgid "reduce" -#~ msgstr "reduzir" - -#~ msgid "outline threshold" -#~ msgstr "limite de contorno" - -#~ msgid "outline width" -#~ msgstr "largura de contorno" - -#~ msgid "image brightness" -#~ msgstr "brilho de imagem" - -#~ msgid "portrait" -#~ msgstr "retrato" - -#~ msgid "landscape" -#~ msgstr "paisagem" - -#~ msgid "customize" -#~ msgstr "customizar" - -#~ msgid "Brightness/Contrast/Color" -#~ msgstr "Brilho/Contraste/Cor" - -#~ msgid "Adjust contrast using a gamma curve" -#~ msgstr "Ajustar contraste usando curva de gama" - -#~ msgid "Gamma Curves" -#~ msgstr "Curvas de Gama" - -#~ msgid "Click on a white/gray area to fix color tint" -#~ msgstr "Clique em uma área branco/cinza para corrigir tonalidade de cor" - -#~ msgid "White Balance" -#~ msgstr "Balanço de branco" - -#~ msgid "Brightness/Color" -#~ msgstr "Brilho/Cor" - -#~ msgid "edge detection" -#~ msgstr "detecção de borda" - -#~ msgid "cycles" -#~ msgstr "ciclos" - -#~ msgid "small-steps" -#~ msgstr "pouco-a-pouco" - -#~ msgid "Saturation" -#~ msgstr "Saturação" - -#~ msgid " reset 1 " -#~ msgstr " reconfigurar 1" - -#~ msgid "reset all" -#~ msgstr "reconfigurar tudo" - -#~ msgid "previous" -#~ msgstr "anterior" - -#~ msgid "adjust image gamma" -#~ msgstr "ajustar gama de imagem" - -#~ msgid "arrow keys" -#~ msgstr "botões de setas" - -#~ msgid "curve file is invalid" -#~ msgstr "arquivo de curva inválido" - -#~ msgid "curve file has different no. of curves" -#~ msgstr "arquivo de curva tem número de curvas diferente" - -#~ msgid "histogram" -#~ msgstr "histograma" - -#~ msgid "Blend Width for edits in area" -#~ msgstr "Agregar Largura para edições na área" - -#~ msgid "" -#~ "layout image file error: \n" -#~ " %s" -#~ msgstr "" -#~ "erro de arquivo-imagem de leiaute: \n" -#~ " %s" - -#~ msgid "" -#~ "overlay image file error: \n" -#~ " %s" -#~ msgstr "" -#~ "erro de arquivo-imagem sobreposta: \n" -#~ " %s" - -#~ msgid "Edge Blend Width" -#~ msgstr "Largura da Borda de Mistura" - -#~ msgid "Batch Convert/Resize/Move" -#~ msgstr "Converter/Redimensionar/Mover em Lote" - -#~ msgid "latest versions only" -#~ msgstr "última versão apenas" - -#~ msgid "continuous loop" -#~ msgstr "ciclo contínuo" - -#~ msgid "start with current image" -#~ msgstr "começar com a imagem atual" - -#~ msgid "collection:" -#~ msgstr "coleção:" - -#~ msgid "save as collection" -#~ msgstr "salvar como coleção" - -#~ msgid "same" -#~ msgstr "mesmo" - -#~ msgid "replace originals" -#~ msgstr "substituir originais" - -#~ msgid "remove EXIF" -#~ msgstr "remover EXIF" - -#~ msgid "delete originals" -#~ msgstr "excluir originais" - -#~ msgid "replace original files?" -#~ msgstr "substituir arquivos originais" - -#~ msgid "replace original files? (max. %d x %d)" -#~ msgstr "substituir arquivos originais? (max. %d x %d)" - -#~ msgid "working" -#~ msgstr "processando" - -#~ msgid "Add standard bias" -#~ msgstr "Adicionar inclinação padrão" - -#~ msgid "Load CMYK parameters" -#~ msgstr "Carregar parâmetros CMYK" - -#~ msgid "CMYK parameters file" -#~ msgstr "Arquivo de parâmetros CMYK" - -#~ msgid "Save CMYK parameters" -#~ msgstr "Salvar parâmetros CMYK" - -#~ msgid "Drag right edge with mouse" -#~ msgstr "Arraste a margem direita com o mouse" - -#~ msgid "Rotate Image" -#~ msgstr "Rotacioanar" - -#~ msgid "degrees" -#~ msgstr "graus" - -#~ msgid "Drag middle to move, drag corners to resize." -#~ msgstr "" -#~ "Arraste pelo centro para mover, arraste as estremidades para " -#~ "redimensionar." - -#~ msgid "Trim/Crop" -#~ msgstr "Recortar/Aparar bordas" - -#~ msgid "Rotate, Trim/Crop, Resize, Add Text" -#~ msgstr "Rotacionar, Recortar/Aparar, Redimensionar, Adicionar texto" - -#~ msgid "Rotate by any angle" -#~ msgstr "Girar em qualquer ângulo" - -#~ msgid "Cut off unwanted margins" -#~ msgstr "Retirar margens indesejadas" - -#~ msgid "Flatten Brightness" -#~ msgstr "Reduzir Brilho" - -#~ msgid "Flatten brightness distribution" -#~ msgstr "Achatar distruição de brilho" - -#~ msgid "Expand Brightness" -#~ msgstr "Expandir Brilho" - -#~ msgid "Expand brightness range" -#~ msgstr "Expandir intervalo de brilho" - -#~ msgid "Flatten Brightness Distribution" -#~ msgstr "Reduzir distribuição de Brilho" - -#~ msgid "Expand Brightness Range" -#~ msgstr "Aumentar variação de Brilho" - -#~ msgid "bright pixels" -#~ msgstr "pixels brilhantes" - -#~ msgid "Warn Overwrite Original" -#~ msgstr "Avisar Sobrescrever Original" - -#~ msgid "" -#~ "Right-click collection thumbnails to \n" -#~ "cut/copy to cache, paste cache, remove." -#~ msgstr "" -#~ "Clique direito do mouse nas miniaturas da coleção para \n" -#~ "recortar/colar para o cache, colar cache, remover." - -#~ msgid "Start a new collection" -#~ msgstr "Criar nova coleção" - -#~ msgid "angle" -#~ msgstr "ângulo" - -#~ msgid "cmsCreateTransform() failed" -#~ msgstr "cmsCreateTransform() falhou" - -#~ msgid "no plugin command" -#~ msgstr "nenhum comando de extensões" - -#~ msgid "User Guide etc." -#~ msgstr "Guia de Usuário etc." - -#~ msgid "Edit Caption/Comments" -#~ msgstr "Editar Legendas/Comentários" - -#~ msgid "Edit image caption or comment" -#~ msgstr "Editar legenda ou comentário de imagem" - -#~ msgid "Edit image date/rating/tags" -#~ msgstr "Editar data/avaliação/etiquetas de imagem" - -#~ msgid "Batch Tags" -#~ msgstr "Etiquetas em Lote" - -#~ msgid "Edit image geotags" -#~ msgstr "Editar georeferência de imagem" - -#~ msgid "Gallery from Tab F" -#~ msgstr "Galeria da Aba F" - -#~ msgid "jump to first page" -#~ msgstr "pular para última página" - -#~ msgid "jump to last page" -#~ msgstr "pular para última página" - -#~ msgid "change sequence" -#~ msgstr "mudar sequência" - -#~ msgid "Edit Caption and Comments" -#~ msgstr "Editar Legenda e Comentários" - -#~ msgid "image date (yyyymmdd)" -#~ msgstr "data de imagem (AAAAmmDD)" - -#~ msgid "use last" -#~ msgstr "usar último" - -#~ msgid "image stars" -#~ msgstr "estrelas da imagem" - -#~ msgid "current tags" -#~ msgstr "etiquetas atuais" - -#~ msgid "there are zero stuck pixels" -#~ msgstr "não há pixels presos" - -#~ msgid "Save Stuck Pixels" -#~ msgstr "Salvar Pixels Presos" - -#~ msgid "Overwrite original file?" -#~ msgstr "Sobrescrever arquivo original?" - -#~ msgid "Do not warn again" -#~ msgstr "Não avisar novamente" - -#~ msgid "Warning" -#~ msgstr "Aviso" - -#~ msgid "Save File" -#~ msgstr "Salvar arquivo" - -#~ msgid "Save to Same File" -#~ msgstr "Salvar no mesmo arquivo" - -#~ msgid "Save to the same file (replace)" -#~ msgstr "Salvar no mesmo arquivo (substituir)" - -#~ msgid "Save to New Version" -#~ msgstr "Salvar nova versão" - -#~ msgid "Save to a new (next) version" -#~ msgstr "Salvar uma nova (próxima) versão" - -#~ msgid "Save to New File" -#~ msgstr "Salvar novo arquivo" - -#~ msgid "Save to a new file name" -#~ msgstr "Salvar arquivo com novo nome" - -#~ msgid "Save to the same file" -#~ msgstr "Salvar no mesmo arquivo" - -#~ msgid "Save to a new version" -#~ msgstr "Salvar em nova versão" - -#~ msgid "Save+V" -#~ msgstr "Salvar+V" - -#~ msgid "Save to a new file" -#~ msgstr "Salvar para novo arquivo" - -#~ msgid "Save+F" -#~ msgstr "Salvar+F" - -#~ msgid "negative" -#~ msgstr "negativo" - -#~ msgid "Cartoon Parameters" -#~ msgstr "Parâmetros do Desenho" - -#~ msgid "Contrast Span" -#~ msgstr "Alcance de Contraste" - -#~ msgid "Contrast Spread" -#~ msgstr "Dilatação de Contraste" - -#~ msgid "Contrast Saturation" -#~ msgstr "Saturação de Contraste" - -#~ msgid "Use buttons or drag right edge with mouse" -#~ msgstr "Use os botões ou arrante a borda direita com o mouse" - -#~ msgid "invert" -#~ msgstr "inverter" - -#~ msgid "Rotate Right" -#~ msgstr "Rotacionar à Direita" - -#~ msgid "Rotate Right 90 degrees" -#~ msgstr "Girar à Direita 90 graus" - -#~ msgid "Rotate Left" -#~ msgstr "Rotacionar à Esquerda" - -#~ msgid "Rotate Left 90 degrees" -#~ msgstr "Rotacionar à Esquerda 90 graus" - -#~ msgid "Cartoon" -#~ msgstr "Desenho" - -#~ msgid "Convert into a cartoon drawing" -#~ msgstr "Converter em um desenho tipo cartoon" - -#~ msgid "new gallery from tab F" -#~ msgstr "nova galeria da aba F" - -#~ msgid "nothing in cache" -#~ msgstr "nada em cache" - -#~ msgid "Adjust Brightness and Color" -#~ msgstr "Ajustar Brilho e Cor" - -#~ msgid "Turn" -#~ msgstr "Rotacionar" - -#~ msgid "Turn Image" -#~ msgstr "Rotacioanar" - -#~ msgid "Lighter Areas" -#~ msgstr "Áreas mais claras" - -#~ msgid "Darker Areas" -#~ msgstr "Áreas mais escuras" - -#~ msgid "Blue: Red" -#~ msgstr "Azul: Vermelho" - -#~ msgid "Green: Blue" -#~ msgstr "Verde: Azul" - -#~ msgid "Red: Green" -#~ msgstr "Vermelho: Verde" - -#~ msgid "search index file missing" -#~ msgstr "arquivo de índice de procura faltando" - -#~ msgid "Discard edits?" -#~ msgstr "Descartar mudanças?" - -#~ msgid "prior function still active" -#~ msgstr "função prévia ainda ativada" - -#~ msgid "completed" -#~ msgstr "completo" - -#~ msgid "new top directory" -#~ msgstr "novo diretório superior" - -#~ msgid "old top directory" -#~ msgstr "diretório superior antigo" - -#~ msgid "geotags file must be downloaded" -#~ msgstr "arquivo de georeferências tem de ser baixado" - -#~ msgid "CMYK Density" -#~ msgstr "Densidade CMYK" - -#~ msgid "Newly Added Images" -#~ msgstr "Imagens adicionadas recentemente" - -#~ msgid "Plugins menu is empty" -#~ msgstr "Menu de extensões está vazio" - -#~ msgid "menu name" -#~ msgstr "nome do menu" - -#~ msgid "False Colors" -#~ msgstr "Deslocar Cores" - -#~ msgid "+Brightness -Density" -#~ msgstr "+Brilho -Densidade" - -#~ msgid "open folder" -#~ msgstr "abrir pasta" - -#~ msgid "choose" -#~ msgstr "escolher" - -#~ msgid "open" -#~ msgstr "abrir" - -#~ msgid "search index missing" -#~ msgstr "índice de pesquisa em falta" - -#~ msgid "file sync active" -#~ msgstr "sincronização de arquivos ativada" - -#~ msgid "file sync busy" -#~ msgstr "sincronização de arquivos em andamento" - -#~ msgid "edits: %d" -#~ msgstr "edições: %d" - -#~ msgid "" -#~ "\n" -#~ " and delete originals" -#~ msgstr "" -#~ "\n" -#~ " e excluir originais" - -#~ msgid "" -#~ "copy files? (max. %d x %d) \n" -#~ " to location %s" -#~ msgstr "" -#~ "copiar arquivos? (max. %d x %d) \n" -#~ " para localização %s" - -#~ msgid "" -#~ "copy files? \n" -#~ " to location %s" -#~ msgstr "" -#~ "copiar arquivos? \n" -#~ " para localidade %s" - -#~ msgid "overwrite files? (max. %d x %d)" -#~ msgstr "sobrescrever arquivos? (max. %d x %d)" - -#~ msgid "overwrite files?" -#~ msgstr "sobrescrever arquivos?" - -#~ msgid "upright rotation" -#~ msgstr "rotação vertical" - -#~ msgid "delete metadata" -#~ msgstr "excluir metadados" - -#~ msgid "move to location" -#~ msgstr "mover para localidade" - -#~ msgid "copy to location" -#~ msgstr "copiar para localidade" - -#~ msgid "overwrite" -#~ msgstr "sobrescrever" - -#~ msgid "max. width" -#~ msgstr "máx. largura" - -#~ msgid "new file type" -#~ msgstr "novo tipo de arquivo" - -#~ msgid "base name / sequence / increment not reasonable" -#~ msgstr "nome base / sequencia / incremento irracional" - -#~ msgid "Rename failed:" -#~ msgstr "Renomearação falhou:" - -#~ msgid "new file already exists:" -#~ msgstr "novo arquivo já existe:" - -#~ msgid "increment" -#~ msgstr "incremento" - -#~ msgid "starting sequence" -#~ msgstr "sequência inicial" - -#~ msgid "new base name" -#~ msgstr "novo nome de base" - -#~ msgid "Show hidden files" -#~ msgstr "Mostrar arquivos ocultos" - -#~ msgid "KILLED" -#~ msgstr "MORTOS" - -#~ msgid "files found in current index recs: %d \n" -#~ msgstr "arquivos encontrados no registro atual: %d \n" - -#~ msgid "merging old and new index records" -#~ msgstr "mesclar registros de índices antigos e novos" - -#~ msgid "found %d image files \n" -#~ msgstr "encontrado %d arquivos de imagem \n" - -#~ msgid "too many image files" -#~ msgstr "arquivos de imagem em excesso" - -#~ msgid "find all image files and build index records" -#~ msgstr "" -#~ "encontrar todos os arquivos de imagem e construir registros de índice" - -#~ msgid "%d current index records found \n" -#~ msgstr "%d registros de índices correntes encontrados \n" - -#~ msgid "rebuild search index" -#~ msgstr "reconstruir índice de pesquisa" - -#~ msgid "no search index file is in use" -#~ msgstr "nenhum arquivo índice de pesquisa em uso" - -#~ msgid "%d thumbnails created, %d errors \n" -#~ msgstr "%d miniaturas criadas, %d erros \n" - -#~ msgid "create missing and update stale thumbnails" -#~ msgstr "criar e atualizar miniaturas ausentes ou obsoletos" - -#~ msgid "%d orphan thumbnails deleted \n" -#~ msgstr "%d miniaturas órfãs apagadas \n" - -#~ msgid "delete orphan thumbnails" -#~ msgstr "excluir miniaturas órfãs" - -#~ msgid "delete all thumbnails" -#~ msgstr "apagar todas as miniaturas" - -#~ msgid "Synchronize Files (may need some time)" -#~ msgstr "Sincronizar Arquivos (pode levar tempo)" - -#~ msgid "thumbnail directory cannot be under top directory" -#~ msgstr "diretório de miniaturas não pode estar sob diretório superior" - -#~ msgid "select a thumbnail option" -#~ msgstr "selecionar uma opção de miniatura" - -#~ msgid "directory is invalid" -#~ msgstr "diretório é inválido" - -#~ msgid "File sync is necessary. Cancel anyway?" -#~ msgstr "Sincronização de arquivos necessária. Cancelar mesmo assim?" - -#~ msgid "Initialize Everything" -#~ msgstr "Inicializar Tudo" - -#~ msgid "Use Directory" -#~ msgstr "Usar diretório" - -#~ msgid "Use hidden directories with images" -#~ msgstr "Use diretórios ocultos com imagens" - -#~ msgid "None (galleries are slow)" -#~ msgstr "Nenhuma (galerias serão lentas)" - -#~ msgid "Thumbnail Options:" -#~ msgstr "Opções de Miniaturas:" - -#~ msgid "(if NO, metadata functions are disabled)" -#~ msgstr "(se NÃO, funções de metadados serão desabilitadas)" - -#~ msgid "Use file sync function (recommended)" -#~ msgstr "Usar função de sincronia (recomendado)" - -#~ msgid "file sync not needed" -#~ msgstr "sincronização de arquivos não necessária" - -#~ msgid "file sync disabled" -#~ msgstr "sincronização de arquivos desativada" - -#~ msgid "new/modified files are present" -#~ msgstr "arquivos novos/modificados presentes" - -#~ msgid "last file sync time is unknown" -#~ msgstr "último período de sincronização desconhecido" - -#~ msgid "no search index file is present" -#~ msgstr "nenhum arquivo de índice de busca presente" - -#~ msgid "thumbnail directory is invalid" -#~ msgstr "diretório de miniaturas é inválido" - -#~ msgid "top image directory is invalid" -#~ msgstr "diretório superior é inválido" - -#~ msgid "" -#~ "Synchronize Files makes gallery windows fast \n" -#~ "and enables metadata functions to work correctly.\n" -#~ msgstr "" -#~ "Sincronizar arquivos faz a janela de galeria ser rápida \n" -#~ "e permite que as funções de metadados funcionem corretamente. \n" - -#~ msgid "click for white balance or black level" -#~ msgstr "clique para balancear branco, ou preto" - -#~ msgid "bright" -#~ msgstr "claro" - -#~ msgid "cooler" -#~ msgstr "mais frio" - -#~ msgid "dark areas" -#~ msgstr "areas escuras" - -#~ msgid "warmer" -#~ msgstr "mais quente" - -#~ msgid "low color" -#~ msgstr "cor reduzida" - -#~ msgid "" -#~ "Metadata index is missing.\n" -#~ "Use Tools > Synchronize Files." -#~ msgstr "" -#~ "Índice de metadados está faltando.\n" -#~ "Use: Ferramentas > Sincronizar arquivos." - -#~ msgid "Convert resize, move multiple files" -#~ msgstr "Converter, redimensionar, mover vários arquivos" - -#~ msgid "Rename multiple image files" -#~ msgstr "Renomear múltiplos arquivos de imagem" - -#~ msgid "Batch Rename" -#~ msgstr "Renomear em Lote" - -#~ msgid "Synchronize Files" -#~ msgstr "Sincronizar Arquivos" - -#~ msgid "Synch Files, Settings, Collections, Batch Funcs ..." -#~ msgstr "Sincronizar arquivos, Configurações, Coleções, Funções em Lote ..." - -#~ msgid "no top image directory defined" -#~ msgstr "nenhum diretório superior foi definido" - -#~ msgid "" -#~ "warning: real memory %d MB < required %d MB \n" -#~ "response time may become very long \n" -#~ msgstr "" -#~ "aviso: memória física %d MB < requerido %d MB \n" -#~ "tempo de resposta pode se tornará muito longo \n" - -#~ msgid "select random" -#~ msgstr "escolha aleatória" - -#~ msgid "page-flip" -#~ msgstr "vira-página" - -#~ msgid "shift-left" -#~ msgstr "deslocar à esquerda" - -#~ msgid "(enter keys)" -#~ msgstr "(insira teclas)" - -#~ msgid "Previous Image Viewed" -#~ msgstr "Imagem vista Anteriormente" - -#~ msgid "invalid thumbnails directory: %s" -#~ msgstr "diretório de miniaturas inválido: %s" - -#~ msgid "Thumbnail Directory" -#~ msgstr "Diretório de Miniaturas" - -#~ msgid "maximum" -#~ msgstr "máximo" - -#~ msgid "minimum" -#~ msgstr "mínimo" - -#~ msgid "Edit Function Amplifier" -#~ msgstr "Editar função Amplificador" - -#~ msgid "delete" -#~ msgstr "excluir" - -#~ msgid "create" -#~ msgstr "criar" - -#~ msgid "Leverage edits by brightness or color" -#~ msgstr "Influenciar edições por brilho ou cor" - -#~ msgid "Leverage Edits" -#~ msgstr "Influenciar Edições" - -#~ msgid "Edit translations while using Fotoxx" -#~ msgstr "Editar traduções enquanto usa o Fotoxx" +#~ msgid "Pattern size" +#~ msgstr "Tamanho do Padrão" -#~ msgid "Edit Translations" -#~ msgstr "Editar Traduções" +#~ msgid "Add pattern" +#~ msgstr "Adicionar Padrão" -#~ msgid "Favorites Menu" -#~ msgstr "Menu Favoritos" +#~ msgid "Transition:" +#~ msgstr "Transição:" diff -Nru fotoxx-14.03/locales/translate-ru.po fotoxx-14.04/locales/translate-ru.po --- fotoxx-14.03/locales/translate-ru.po 2014-03-01 07:56:24.000000000 +0000 +++ fotoxx-14.04/locales/translate-ru.po 2014-04-01 06:09:31.000000000 +0000 @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: fotoxx-13.08.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-01 08:51+0100\n" +"POT-Creation-Date: 2014-04-01 08:04+0200\n" "PO-Revision-Date: 2014-02-18 16:10+0300\n" "Last-Translator: Nikolay Kachulin \n" "Language-Team: Russian \n" @@ -18,7 +18,7 @@ msgid "Select Area for Edits" msgstr "Выберите область редактирования" -#: f.area.cc:57 f.retouch.cc:2051 +#: f.area.cc:57 f.retouch.cc:2160 msgid "Press F1 for help" msgstr "F1 для вызова справки" @@ -62,7 +62,7 @@ msgid "select all matching colors within mouse" msgstr "выделить все совпадающие цвета вокруг мыши" -#: f.area.cc:115 f.retouch.cc:2086 +#: f.area.cc:115 f.retouch.cc:2195 msgid "mouse radius" msgstr "Радиус пятна" @@ -154,7 +154,7 @@ msgid "save select area to a file" msgstr "Сохранить выбранную область в файл" -#: f.bend.cc:72 f.menus.cc:246 +#: f.bend.cc:72 f.menus.cc:208 msgid "Unbend" msgstr "Выпрямить изображение" @@ -182,7 +182,7 @@ "Кликните на четырех углах площади четырехугольника. Нажмите [Применить] \n" "Четырехугольник станет прямоугольником." -#: f.bend.cc:353 f.menus.cc:247 +#: f.bend.cc:353 f.menus.cc:209 msgid "Keystone Correction" msgstr "Коррекция трапецеидальных искажений" @@ -232,7 +232,7 @@ "При необходимости сделайте несколько движений . \n" "Для завершения выберите другую область или нажмите [Изменить]" -#: f.bend.cc:1105 f.menus.cc:249 +#: f.bend.cc:1105 f.menus.cc:211 msgid "Warp area" msgstr "Деформация области" @@ -254,7 +254,7 @@ "При необходимости сделайте несколько движений . \n" "По окончании нажмите [Изменить]." -#: f.bend.cc:1520 f.menus.cc:250 +#: f.bend.cc:1520 f.menus.cc:212 msgid "Warp curved" msgstr "Деформация в кривых" @@ -262,7 +262,7 @@ msgid "warp span" msgstr "область искривления" -#: f.bend.cc:1830 f.menus.cc:251 +#: f.bend.cc:1830 f.menus.cc:213 msgid "Warp linear" msgstr "Деформация линейная" @@ -276,15 +276,15 @@ "При необходимости сделайте несколько движений . \n" "По окончании нажмите [Изменить]" -#: f.bend.cc:2161 f.menus.cc:252 +#: f.bend.cc:2161 f.menus.cc:214 msgid "Warp affine" msgstr "Деформация аффинная" -#: f.color.cc:64 f.menus.cc:239 +#: f.color.cc:64 f.menus.cc:201 msgid "Shift Colors" msgstr "Исправить цвет" -#: f.color.cc:285 f.menus.cc:240 +#: f.color.cc:285 f.menus.cc:202 msgid "Color Mode" msgstr "Цветовые режимы" @@ -337,8 +337,8 @@ msgid "mouse radius for color sample" msgstr "Радиус мыши для образца цвета" -#: f.color.cc:609 f.color.cc:614 f.file.cc:4220 f.menus.cc:208 f.menus.cc:297 -#: f.menus.cc:433 fotoxx.h:1039 +#: f.color.cc:609 f.color.cc:614 f.file.cc:4222 f.menus.cc:172 f.menus.cc:255 +#: f.menus.cc:349 fotoxx.h:1044 msgid "Open" msgstr "Открыть" @@ -362,11 +362,11 @@ msgid "select source image color first" msgstr "Сначала выберите исходный цвет" -#: f.color.cc:872 f.tools.cc:5665 +#: f.color.cc:872 f.tools.cc:5973 msgid "Click image to select pixels." msgstr "Кликните изображение для выбора пикселей." -#: f.color.cc:911 f.menus.cc:243 +#: f.color.cc:911 f.menus.cc:205 msgid "Revise RGB" msgstr "Просмотреть RGB" @@ -394,15 +394,15 @@ msgid "+Blue -Yellow" msgstr "+Синий -Желтый" -#: f.color.cc:1382 fotoxx.h:1050 +#: f.color.cc:1382 fotoxx.h:1055 msgid "Red" msgstr "Красный" -#: f.color.cc:1383 fotoxx.h:1018 +#: f.color.cc:1383 fotoxx.h:1023 msgid "Green" msgstr "Зеленый" -#: f.color.cc:1384 fotoxx.h:992 +#: f.color.cc:1384 fotoxx.h:997 msgid "Blue" msgstr "Синий" @@ -435,7 +435,7 @@ msgstr "Окраска и деформация изображения" #: f.combine.cc:2831 f.combine.cc:3485 f.combine.cc:4902 f.combine.cc:5801 -#: f.effects.cc:3478 f.menus.cc:60 f.menus.cc:121 +#: f.effects.cc:3546 f.menus.cc:87 msgid "Image" msgstr "Изображение" @@ -503,7 +503,7 @@ msgid "no curve (scanned image)" msgstr "кривая отсутствует (сканированное изображение)" -#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:214 f.menus.cc:473 +#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:178 f.menus.cc:386 msgid "Resize" msgstr "Изменить размер" @@ -665,7 +665,7 @@ msgid "Gradual" msgstr "" -#: f.combine.cc:6842 fotoxx.h:1044 +#: f.combine.cc:6842 fotoxx.h:1049 msgid "Power" msgstr "Скорость" @@ -678,7 +678,7 @@ msgid "Enter text, click/drag on image." msgstr "Введите текст, размещение мышкой." -#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:850 +#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:844 msgid "Text" msgstr "Текст" @@ -698,8 +698,8 @@ msgid "shadow" msgstr "тень" -#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:63 f.menus.cc:124 -#: f.menus.cc:292 fotoxx.h:999 +#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:90 f.menus.cc:251 +#: fotoxx.h:1004 msgid "Color" msgstr "Цвет" @@ -707,7 +707,7 @@ msgid "Transparency" msgstr "Прозрачность" -#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1078 +#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1084 msgid "Width" msgstr "Ширина" @@ -752,7 +752,7 @@ msgid "black/white" msgstr "ч.б" -#: f.effects.cc:989 f.menus.cc:257 +#: f.effects.cc:989 f.menus.cc:219 msgid "Graduated Blur" msgstr "Размытие полутонов" @@ -820,7 +820,7 @@ msgid "borders" msgstr "Кромки" -#: f.effects.cc:2474 f.menus.cc:262 +#: f.effects.cc:2474 f.menus.cc:224 msgid "Vignette" msgstr "Инструмент виньетка" @@ -828,48 +828,64 @@ msgid "Add Texture" msgstr "" -#: f.effects.cc:3040 -msgid "Add pattern" +#: f.effects.cc:3043 +msgid "Background Pattern" msgstr "" -#: f.effects.cc:3044 f.menus.cc:264 -msgid "Pattern" +#: f.effects.cc:3047 +msgid "Pattern File:" +msgstr "" + +#: f.effects.cc:3052 +msgid "Geometry" +msgstr "" + +#: f.effects.cc:3053 +msgid "Calculate" +msgstr "" + +#: f.effects.cc:3055 +msgid "Zoom" msgstr "" -#: f.effects.cc:3051 -msgid "Pattern size" +#: f.effects.cc:3066 f.menus.cc:226 +msgid "Pattern" msgstr "" -#: f.effects.cc:3062 f.effects.cc:3066 +#: f.effects.cc:3073 msgid "Overlap" msgstr "" -#: f.effects.cc:3107 +#: f.effects.cc:3080 +msgid "Opacity" +msgstr "" + +#: f.effects.cc:3116 msgid "choose pattern tile" msgstr "" -#: f.effects.cc:3382 +#: f.effects.cc:3450 msgid "Create Mosaic" msgstr "" -#: f.effects.cc:3468 +#: f.effects.cc:3536 msgid "Tile" msgstr "" -#: f.effects.cc:3476 f.menus.cc:259 +#: f.effects.cc:3544 f.menus.cc:221 msgid "Tiles" msgstr "Мозаика" -#: f.effects.cc:3482 +#: f.effects.cc:3550 msgid "Tile blending" msgstr "" -#: f.effects.cc:3560 +#: f.effects.cc:3628 #, c-format msgid "exceeded max. tiles: %d" msgstr "" -#: f.effects.cc:3575 +#: f.effects.cc:3643 #, c-format msgid "only %d tile images found" msgstr "" @@ -882,7 +898,7 @@ msgid "no more images" msgstr "последнее изображение" -#: f.file.cc:330 f.menus.cc:153 f.menus.cc:482 +#: f.file.cc:330 f.menus.cc:118 f.menus.cc:395 msgid "Open RAW file (ufraw)" msgstr "Открыть RAW файл (ufraw)" @@ -939,7 +955,7 @@ "Перезаписать файл? \n" " %s" -#: f.file.cc:836 f.menus.cc:155 +#: f.file.cc:836 f.menus.cc:120 msgid "Rename Image File" msgstr "Переименовать файл изображения" @@ -947,7 +963,7 @@ msgid "Old Name" msgstr "" -#: f.file.cc:844 f.tools.cc:4504 +#: f.file.cc:844 f.tools.cc:4803 msgid "New Name" msgstr "" @@ -995,7 +1011,7 @@ msgid "new location" msgstr "Новое расположение" -#: f.file.cc:1233 f.tools.cc:4809 +#: f.file.cc:1233 f.tools.cc:5108 msgid "Select directory" msgstr "Выбрать каталог" @@ -1020,7 +1036,7 @@ msgid "(automatic step to next image)" msgstr "(автоматический переход к следующему изображению)" -#: f.file.cc:1457 f.menus.cc:157 +#: f.file.cc:1457 f.menus.cc:122 msgid "Trash Image File" msgstr "Поместить изображение в корзину" @@ -1066,7 +1082,7 @@ " %s" msgstr "" -#: f.file.cc:2191 f.menus.cc:149 +#: f.file.cc:2191 f.menus.cc:114 msgid "Open Image File" msgstr "Открыть файл изображения" @@ -1088,104 +1104,108 @@ msgid "file type not supported: %s" msgstr "тип файла не поддерживается: %s" -#: f.file.cc:4209 f.menus.cc:296 f.menus.cc:432 +#: f.file.cc:4209 f.file.cc:4291 f.menus.cc:360 f.tools.cc:851 +msgid "Scroll" +msgstr "Скролл" + +#: f.file.cc:4211 f.menus.cc:254 f.menus.cc:348 #, fuzzy msgid "Sync.G" msgstr "Галерея" -#: f.file.cc:4221 +#: f.file.cc:4223 msgid "change directory" msgstr "Смена каталога" -#: f.file.cc:4229 f.menus.cc:434 +#: f.file.cc:4231 f.menus.cc:350 msgid "GoTo" msgstr "Переход" -#: f.file.cc:4234 f.menus.cc:437 +#: f.file.cc:4236 f.menus.cc:353 msgid "Sort" msgstr "Сортировка" -#: f.file.cc:4241 f.file.cc:4665 f.file.cc:4666 f.file.cc:4668 f.menus.cc:435 +#: f.file.cc:4243 f.file.cc:4657 f.file.cc:4658 f.file.cc:4660 f.menus.cc:351 msgid "Zoom+" msgstr "Увеличить" -#: f.file.cc:4252 f.file.cc:4667 f.file.cc:4669 f.menus.cc:436 +#: f.file.cc:4254 f.file.cc:4659 f.file.cc:4661 f.menus.cc:352 msgid "Zoom-" msgstr "Уменьшить" -#: f.file.cc:4265 f.file.cc:4673 f.menus.cc:442 +#: f.file.cc:4267 f.file.cc:4665 f.menus.cc:358 msgid "Row↑" msgstr "Строка↑" -#: f.file.cc:4277 f.file.cc:4674 f.menus.cc:443 +#: f.file.cc:4279 f.file.cc:4666 f.menus.cc:359 msgid "Row↓" msgstr "Строка↓" -#: f.file.cc:4289 f.file.cc:4676 f.menus.cc:438 +#: f.file.cc:4309 f.file.cc:4668 f.menus.cc:354 msgid "First" msgstr "В начало" -#: f.file.cc:4290 f.file.cc:4677 f.menus.cc:439 +#: f.file.cc:4310 f.file.cc:4669 f.menus.cc:355 msgid "Last" msgstr "В конец" -#: f.file.cc:4291 f.file.cc:4671 f.file.cc:4678 f.menus.cc:440 +#: f.file.cc:4311 f.file.cc:4663 f.file.cc:4670 f.menus.cc:356 msgid "Page↑" msgstr "Страница↑" -#: f.file.cc:4292 f.file.cc:4672 f.file.cc:4679 f.menus.cc:441 +#: f.file.cc:4312 f.file.cc:4664 f.file.cc:4671 f.menus.cc:357 msgid "Page↓" msgstr "Страница↓" -#: f.file.cc:4342 +#: f.file.cc:4366 msgid "Choose image directory" msgstr "" -#: f.file.cc:4348 f.file.cc:4363 +#: f.file.cc:4372 f.file.cc:4387 msgid "recent" msgstr "недавние" -#: f.file.cc:4349 f.file.cc:4368 +#: f.file.cc:4373 f.file.cc:4392 msgid "newest" msgstr "новые" -#: f.file.cc:4350 f.file.cc:4377 +#: f.file.cc:4374 f.file.cc:4401 msgid "collections" msgstr "коллекции" -#: f.file.cc:4423 f.tools.cc:2476 +#: f.file.cc:4449 f.tools.cc:2451 msgid "no collections found" msgstr "коллекций не найдено" -#: f.file.cc:4430 +#: f.file.cc:4456 msgid "Choose collection" msgstr "Выберите коллекцию" -#: f.file.cc:4475 +#: f.file.cc:4503 msgid "Gallery Sort" msgstr "Сортировка галереи" -#: f.file.cc:4479 +#: f.file.cc:4507 msgid "File Name" msgstr "Имя файла" -#: f.file.cc:4480 +#: f.file.cc:4508 msgid "File Mod Date/Time" msgstr "Время/Дата модификации" -#: f.file.cc:4481 +#: f.file.cc:4509 msgid "Photo Date/Time (EXIF)" msgstr "Дата/время изображения (EXIF)" -#: f.file.cc:4483 +#: f.file.cc:4511 msgid "ascending" msgstr "по нарастанию" -#: f.file.cc:4484 +#: f.file.cc:4512 msgid "descending" msgstr "по убыванию" -#: f.file.cc:5542 fotoxx.h:1061 +#: f.file.cc:5534 fotoxx.h:1067 msgid "Select Files" msgstr "Выбрать файлы" @@ -1209,7 +1229,7 @@ msgid "Minor rotate: drag right edge with mouse" msgstr "Плавное вращение перетаскивание за правый край" -#: f.image.cc:302 f.menus.cc:212 f.menus.cc:472 +#: f.image.cc:302 f.menus.cc:176 f.menus.cc:385 msgid "Trim/Rotate" msgstr "Обрезать/Повернуть" @@ -1225,7 +1245,7 @@ msgid "Lock Ratio" msgstr "Фиксированное соотношение" -#: f.image.cc:326 f.tools.cc:2793 +#: f.image.cc:326 msgid "Customize" msgstr "" @@ -1261,7 +1281,7 @@ msgid "Resize Image" msgstr "Изменить размер изображения" -#: f.image.cc:1650 f.menus.cc:215 +#: f.image.cc:1650 f.menus.cc:179 msgid "Flip" msgstr "Отразить зеркально" @@ -1303,1124 +1323,1129 @@ msgid "plugin failed" msgstr "сбой плагина" -#: f.menus.cc:56 f.menus.cc:117 -msgid "File" -msgstr "Файл" - -#: f.menus.cc:57 f.menus.cc:118 -msgid "Tools" -msgstr "Инструменты" - -#: f.menus.cc:58 f.menus.cc:119 f.menus.cc:462 -msgid "Metadata" -msgstr "Метаданные" - -#: f.menus.cc:59 f.menus.cc:120 -msgid "Areas" -msgstr "Области" - -#: f.menus.cc:61 f.menus.cc:122 -msgid "Retouch" -msgstr "Ретушь" - -#: f.menus.cc:62 f.menus.cc:123 -msgid "Repair" -msgstr "Исправить" - -#: f.menus.cc:64 f.menus.cc:125 -msgid "Bend" -msgstr "Деформация" - -#: f.menus.cc:65 f.menus.cc:126 -msgid "Effects" -msgstr "Эффекты" - -#: f.menus.cc:66 f.menus.cc:127 -msgid "Combine" -msgstr "Объединение" - -#: f.menus.cc:67 f.menus.cc:128 -msgid "Plugins" -msgstr "Плагины" - -#: f.menus.cc:68 f.menus.cc:129 fotoxx-14.03.cc:3811 fotoxx.h:1021 -msgid "Help" -msgstr "Справка" - -#: f.menus.cc:101 f.menus.cc:290 fotoxx-14.03.cc:3751 +#: f.menus.cc:67 fotoxx-14.04.cc:3775 msgid "Favorite Functions" msgstr "" -#: f.menus.cc:102 +#: f.menus.cc:68 msgid "Open, Save, Trash, Rename, Print" msgstr "Открыть, Сохранить, Корзина, Переименование, Печать" -#: f.menus.cc:103 +#: f.menus.cc:69 msgid "Index Files, Settings, Collections, Batch Funcs ..." msgstr "Индексы, Настройки, Коллекции, Групповая обработка..." -#: f.menus.cc:104 +#: f.menus.cc:70 msgid "Captions, Tags, Ratings, Geotags, Search ... " msgstr "Подписи, Теги, Рейтинги, Геотеги, Поиск..." -#: f.menus.cc:105 +#: f.menus.cc:71 msgid "Select image areas to edit, copy and paste" msgstr "Выбор областей для редактирования, копирование, вставки" -#: f.menus.cc:106 +#: f.menus.cc:72 msgid "Trim/Crop, Rotate, Resize, Add Text" msgstr "Обрезка, Поворот, Изменение размера, Текст" -#: f.menus.cc:107 +#: f.menus.cc:73 msgid "Improve brightness, contrast, color ..." msgstr "Улучшить яркость, контраст, цвет..." -#: f.menus.cc:108 +#: f.menus.cc:74 msgid "Sharpen, Clean, Red-eyes, Paint, Clone ..." msgstr "Увеличить резкость, Чистка, Красные глаза, Клонирование..." -#: f.menus.cc:109 +#: f.menus.cc:75 msgid "White Balance, Color Profile, Color Matching" msgstr "Баланс белого, Цветовой профиль, Совмещение цветов" -#: f.menus.cc:110 +#: f.menus.cc:76 msgid "Fix Perspective, Bend/Warp image ..." msgstr "Исправление перспективы, формы..." -#: f.menus.cc:111 +#: f.menus.cc:77 msgid "Special Effects, Arty Transforms" msgstr "Спецэффекты" -#: f.menus.cc:112 +#: f.menus.cc:78 msgid "HDR, HDF, Panorama, Stack, Mashup" msgstr "HDR, HDF, Панорама, Стопка, Коллаж" -#: f.menus.cc:113 +#: f.menus.cc:79 msgid "Use other image editors within Fotoxx" msgstr "Использовать другой редактор из Fotoxx" -#: f.menus.cc:114 +#: f.menus.cc:80 msgid "Quick Start, User Guide, Recent Changes ..." msgstr "Быстрый старт, Руководство, Последние изменения" -#: f.menus.cc:148 +#: f.menus.cc:83 +msgid "File" +msgstr "Файл" + +#: f.menus.cc:84 +msgid "Tools" +msgstr "Инструменты" + +#: f.menus.cc:85 f.menus.cc:375 +msgid "Metadata" +msgstr "Метаданные" + +#: f.menus.cc:86 +msgid "Areas" +msgstr "Области" + +#: f.menus.cc:88 +msgid "Retouch" +msgstr "Ретушь" + +#: f.menus.cc:89 +msgid "Repair" +msgstr "Исправить" + +#: f.menus.cc:91 +msgid "Bend" +msgstr "Деформация" + +#: f.menus.cc:92 +msgid "Effects" +msgstr "Эффекты" + +#: f.menus.cc:93 +msgid "Combine" +msgstr "Объединение" + +#: f.menus.cc:94 +msgid "Plugins" +msgstr "Плагины" + +#: f.menus.cc:95 fotoxx-14.04.cc:3835 fotoxx.h:1026 +msgid "Help" +msgstr "Справка" + +#: f.menus.cc:113 msgid "New Window" msgstr "Новое окно" -#: f.menus.cc:148 +#: f.menus.cc:113 msgid "Open another window" msgstr "Открыть другое окно" -#: f.menus.cc:149 f.menus.cc:297 +#: f.menus.cc:114 f.menus.cc:255 msgid "Open a new image file" msgstr "Открыть новый файл изображения" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open Previous File" msgstr "Открыть предыдущий файл" -#: f.menus.cc:150 +#: f.menus.cc:115 msgid "Open the previously seen file" msgstr "Открыть ранее просмотренный файл" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Open a recently seen file" msgstr "Открыть недавно просмотренный файл" -#: f.menus.cc:151 +#: f.menus.cc:116 msgid "Recently Seen Images" msgstr "Недавно просмотренные изображения" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Newest Images" msgstr "Последние сообщения" -#: f.menus.cc:152 +#: f.menus.cc:117 msgid "Open a newly added file" msgstr "Открыть добавленный файл" -#: f.menus.cc:153 +#: f.menus.cc:118 msgid "Open and edit a camera RAW file" msgstr "Открыть и редактировать RAW файл" -#: f.menus.cc:154 f.menus.cc:300 +#: f.menus.cc:119 f.menus.cc:258 msgid "Save modified image file to disk" msgstr "Сохранить изменённое изображение на диск" -#: f.menus.cc:154 +#: f.menus.cc:119 msgid "Save to Disk" msgstr "Сохранить" -#: f.menus.cc:155 +#: f.menus.cc:120 msgid "Change the image file name" msgstr "Переименовать файл изображения" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "Create a blank image" msgstr "Создать пустое изображение" -#: f.menus.cc:156 +#: f.menus.cc:121 msgid "New Blank Image" msgstr "Новое пустое изображение" -#: f.menus.cc:157 f.menus.cc:301 +#: f.menus.cc:122 f.menus.cc:259 msgid "Move image file to Trash" msgstr "Переместить файл изображения в корзину?" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print Image" msgstr "Печать изображения" -#: f.menus.cc:158 +#: f.menus.cc:123 msgid "Print the current image" msgstr "Печатать текущее изображения" -#: f.menus.cc:159 +#: f.menus.cc:124 msgid "Quit Fotoxx" msgstr "Выход из fotoxx" -#: f.menus.cc:161 f.tools.cc:92 f.tools.cc:339 +#: f.menus.cc:126 f.tools.cc:92 f.tools.cc:339 msgid "Index Image Files" msgstr "Индекс файлов изображений" -#: f.menus.cc:161 +#: f.menus.cc:126 msgid "Index new files and make thumbnails" msgstr "Индексировать новые файлы и сделать миниатюры" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "Change user preferences" msgstr "Изменение пользовательских настроек" -#: f.menus.cc:162 +#: f.menus.cc:127 msgid "User Settings" msgstr "Настройки пользователя" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Change Keyboard Shortcut Keys" msgstr "Изменить горячие клавиши" -#: f.menus.cc:163 +#: f.menus.cc:128 msgid "Keyboard Shortcuts" msgstr "Сочетания клавиш" -#: f.menus.cc:164 f.tools.cc:1943 +#: f.menus.cc:129 f.tools.cc:1918 msgid "Manage Collections" msgstr "Управление коллекциями" -#: f.menus.cc:164 +#: f.menus.cc:129 msgid "Organize images into collections" msgstr "Организовать изображений в коллекцию" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Convert for a new top directory" msgstr "Перенести в новый каталог верхнего уровня" -#: f.menus.cc:165 +#: f.menus.cc:130 msgid "Move Collections" msgstr "Переместить коллекции" -#: f.menus.cc:166 f.tools.cc:2777 f.tools.cc:2780 +#: f.menus.cc:131 f.tools.cc:2728 msgid "Slide Show" msgstr "Слайд-шоу" -#: f.menus.cc:166 +#: f.menus.cc:131 msgid "Start a slide show" msgstr "Запустить слайд-шоу" -#: f.menus.cc:167 f.tools.cc:4497 +#: f.menus.cc:132 f.tools.cc:4796 msgid "Batch Convert" msgstr "Групповое преобразование" -#: f.menus.cc:167 +#: f.menus.cc:132 msgid "Rename/convert/resize/move multiple files" msgstr "Переименовать/преобразовать/переместить группу файлов" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Batch Convert RAW" msgstr "Групповое преобразование RAW" -#: f.menus.cc:168 +#: f.menus.cc:133 msgid "Convert multiple camera RAW files" msgstr "Пакетное преобразование RAW файлов" -#: f.menus.cc:169 -msgid "Brightness Histogram" -msgstr "Гистограмма яркости" +#: f.menus.cc:134 f.menus.cc:185 f.menus.cc:390 f.retouch.cc:314 +#: f.tools.cc:5620 +msgid "Brightness Distribution" +msgstr "Распределение яркости" -#: f.menus.cc:169 +#: f.menus.cc:134 msgid "Show a brightness distribution graph" msgstr "Показать график распределения яркости" -#: f.menus.cc:170 f.menus.cc:480 f.tools.cc:5517 +#: f.menus.cc:135 f.menus.cc:393 f.tools.cc:5825 msgid "Grid Lines" msgstr "Линии сетки" -#: f.menus.cc:170 +#: f.menus.cc:135 msgid "Show or revise grid lines" msgstr "Показать или изменить линии сетки" -#: f.menus.cc:171 f.tools.cc:5701 +#: f.menus.cc:136 f.tools.cc:6009 msgid "Show RGB" msgstr "Показать RGB" -#: f.menus.cc:171 +#: f.menus.cc:136 msgid "Show RGB colors at mouse click" msgstr "Показать цвета RGB при щелчке мышью" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Dark/Bright Pixels" msgstr "Тёмные/Яркие Пиксели" -#: f.menus.cc:172 +#: f.menus.cc:137 msgid "Highlight darkest and brightest pixels" msgstr "Подсветка слишком тёмных или ярких пикселей" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Chart to adjust monitor color" msgstr "График для настройки цвета монитора" -#: f.menus.cc:173 +#: f.menus.cc:138 msgid "Monitor Color" msgstr "Цветность монитора" -#: f.menus.cc:174 +#: f.menus.cc:139 msgid "Chart to adjust monitor gamma" msgstr "График для настройки гаммы монитора" -#: f.menus.cc:174 f.tools.cc:6213 +#: f.menus.cc:139 f.tools.cc:6521 msgid "Monitor Gamma" msgstr "Гамма монитора" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change Language" msgstr "Изменить язык" -#: f.menus.cc:175 +#: f.menus.cc:140 msgid "Change the GUI language" msgstr "Изменение языка GUI" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Missing Translations" msgstr "Пропущен перевод" -#: f.menus.cc:176 +#: f.menus.cc:141 msgid "Report missing translations" msgstr "Сообщить о пропущенном переводе" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Create a Gnome menu and launcher" msgstr "Создать элемент меню Gnome и лаунчер" -#: f.menus.cc:178 +#: f.menus.cc:142 msgid "Menu and Launcher" msgstr "Меню и лаунчер" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn Images to CD/DVD" msgstr "Записать изображения на CD/DVD" -#: f.menus.cc:179 +#: f.menus.cc:143 msgid "Burn selected image files to CD or DVD" msgstr "Записать изображения на CD/DVD" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Memory and CPU (to terminal/logfile)" msgstr "Память и ЦПУ (в терминал/лог файл)" -#: f.menus.cc:180 +#: f.menus.cc:144 msgid "Resources" msgstr "Ресурсы" -#: f.menus.cc:183 f.meta.cc:121 f.meta.cc:1945 +#: f.menus.cc:147 f.meta.cc:121 f.meta.cc:1946 msgid "Edit Metadata" msgstr "Редактировать метаданные" -#: f.menus.cc:183 +#: f.menus.cc:147 msgid "Edit image tags/caption/rating ..." msgstr "Редактировать теги/рейтинг/описание" -#: f.menus.cc:184 +#: f.menus.cc:148 msgid "Add/remove tags for multiple images" msgstr "Групповое изменение тэгов" -#: f.menus.cc:184 f.meta.cc:1547 +#: f.menus.cc:148 f.meta.cc:1547 msgid "Batch Add/Remove Tags" msgstr "Групповое добавление/удаление тэгов" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "List a few key metadata items" msgstr "Список ключевых элементов метаданных" -#: f.menus.cc:185 +#: f.menus.cc:149 msgid "View Metadata (short)" msgstr "Просмотр метаданных (коротко)" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "List all metadata items" msgstr "Список всех элементов метаданных" -#: f.menus.cc:186 +#: f.menus.cc:150 msgid "View Metadata (long)" msgstr "Просмотр метаданных (полностью)" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "List captions and comments only" msgstr "Только подписи и комментарии" -#: f.menus.cc:187 +#: f.menus.cc:151 msgid "View Captions and Comments" msgstr "Смотреть подписи и комментарии" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit Any Metadata" msgstr "Редактировать любые метаданные" -#: f.menus.cc:188 +#: f.menus.cc:152 msgid "Edit any image metadata" msgstr "Редактировать метаданные изображения" -#: f.menus.cc:189 f.meta.cc:2039 +#: f.menus.cc:153 f.meta.cc:2040 msgid "Delete Metadata" msgstr "Удалить метаданные" -#: f.menus.cc:189 +#: f.menus.cc:153 msgid "Remove all metadata from an image" msgstr "Удалить все метаданные из изображения" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "(Toggle) show captions and comments" msgstr "(Переключение) показать подписи/комментарии" -#: f.menus.cc:190 +#: f.menus.cc:154 msgid "Show Captions on Image" msgstr "Показать подписи на изображении" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download Geolocations" msgstr "Загрузить геопозиционирование" -#: f.menus.cc:191 +#: f.menus.cc:155 msgid "Download initial geolocation database" msgstr "Скачать исходную базу данных геолокации" -#: f.menus.cc:193 f.meta.cc:3023 +#: f.menus.cc:157 f.meta.cc:3027 msgid "Edit Geotags" msgstr "Редактировать геотеги" -#: f.menus.cc:193 +#: f.menus.cc:157 msgid "Edit image location and geotags" msgstr "Редактировать геотеги " -#: f.menus.cc:194 +#: f.menus.cc:158 msgid "Add geotags to multiple images" msgstr "Добавить геотеги к нескольким изображениям" -#: f.menus.cc:194 f.meta.cc:3225 +#: f.menus.cc:158 f.meta.cc:3229 msgid "Batch Add Geotags" msgstr "Групповое добавление геотегов" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Find all images for a location [date]" msgstr "Найти все изображения по расположению [дате]" -#: f.menus.cc:195 +#: f.menus.cc:159 msgid "Images by Location/Date" msgstr "Изображения по местоположению/дате" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Find images by clicking a world map" msgstr "Найти изображения кликом по карте мира" -#: f.menus.cc:196 +#: f.menus.cc:160 msgid "Images by Map Location" msgstr "Изображение по местоположению на карте" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Find images meeting select criteria" msgstr "Найти изображения, соответствующие выбранным критериям" -#: f.menus.cc:197 +#: f.menus.cc:161 msgid "Search Images" msgstr "Поиск изображений" -#: f.menus.cc:199 fotoxx.h:1060 +#: f.menus.cc:163 fotoxx.h:1066 msgid "Select" msgstr "Выбрать" -#: f.menus.cc:199 +#: f.menus.cc:163 msgid "Select object or area for editing" msgstr "Выберите объект или область для редактирования" -#: f.menus.cc:200 fotoxx.h:1062 +#: f.menus.cc:164 fotoxx.h:1068 msgid "Show" msgstr "Показать" -#: f.menus.cc:200 +#: f.menus.cc:164 msgid "Show (outline) existing area" msgstr "Показать (контур) существующую область" -#: f.menus.cc:201 fotoxx.h:1022 +#: f.menus.cc:165 fotoxx.h:1027 msgid "Hide" msgstr "Скрыть" -#: f.menus.cc:201 +#: f.menus.cc:165 msgid "Hide existing area" msgstr "Скрыть существующую область" -#: f.menus.cc:202 fotoxx.h:1011 +#: f.menus.cc:166 fotoxx.h:1016 msgid "Enable" msgstr "Включить" -#: f.menus.cc:202 +#: f.menus.cc:166 msgid "Enable area for editing" msgstr "Включить область для последующих изменений" -#: f.menus.cc:203 fotoxx.h:1006 +#: f.menus.cc:167 fotoxx.h:1011 msgid "Disable" msgstr "Отключить" -#: f.menus.cc:203 +#: f.menus.cc:167 msgid "Disable area for editing" msgstr "Временно исключить область из списка измененяемых" -#: f.menus.cc:204 fotoxx.h:1025 +#: f.menus.cc:168 fotoxx.h:1030 msgid "Invert" msgstr "Инвертировать" -#: f.menus.cc:204 +#: f.menus.cc:168 msgid "Reverse existing area" msgstr "Инвертировать существующую область" -#: f.menus.cc:205 +#: f.menus.cc:169 msgid "Erase existing area" msgstr "Стереть существующую область" -#: f.menus.cc:205 fotoxx.h:1074 +#: f.menus.cc:169 fotoxx.h:1080 msgid "Unselect" msgstr "Отменить выбор" -#: f.menus.cc:206 fotoxx.h:1001 +#: f.menus.cc:170 fotoxx.h:1006 msgid "Copy" msgstr "Копировать" -#: f.menus.cc:206 +#: f.menus.cc:170 msgid "Copy an area for later pasting" msgstr "Копировать область для последующей вставки" -#: f.menus.cc:207 fotoxx.h:1041 +#: f.menus.cc:171 fotoxx.h:1046 msgid "Paste" msgstr "Вставить" -#: f.menus.cc:207 +#: f.menus.cc:171 msgid "Paste an area into the current image" msgstr "Вставить область в текущие изображение" -#: f.menus.cc:208 +#: f.menus.cc:172 msgid "Open a file with a saved area" msgstr "Открыть файл с сохраненной областью" -#: f.menus.cc:209 f.menus.cc:300 fotoxx.h:1057 +#: f.menus.cc:173 f.menus.cc:258 fotoxx.h:1062 msgid "Save" msgstr "Сохранить" -#: f.menus.cc:209 +#: f.menus.cc:173 msgid "Save an area to a file" msgstr "Сохранить область в файл" -#: f.menus.cc:211 +#: f.menus.cc:175 msgid "Rotate 90 degrees" msgstr "Повернуть 90º" -#: f.menus.cc:211 f.menus.cc:474 +#: f.menus.cc:175 f.menus.cc:387 msgid "Rotate 90º" msgstr "Повернуть 90º" -#: f.menus.cc:212 +#: f.menus.cc:176 msgid "Trim/Crop margins and/or Rotate" msgstr "Границы при обрезке и/или повороте" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Auto-Trim" msgstr "Авто-обрезка" -#: f.menus.cc:213 +#: f.menus.cc:177 msgid "Remove margins from warp, panorama, etc." msgstr "Обрезка краев после деформаций, панорам и т.д." -#: f.menus.cc:214 +#: f.menus.cc:178 msgid "Change pixel dimensions" msgstr "Изменение размеров в пикселах" -#: f.menus.cc:215 +#: f.menus.cc:179 msgid "Mirror image horizontally or vertically" msgstr "Зеркальное отражение по горизонтали или вертикали" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Add Text" msgstr "Вписать текст" -#: f.menus.cc:216 +#: f.menus.cc:180 msgid "Write text on image" msgstr "Запись текста на изображение" -#: f.menus.cc:218 +#: f.menus.cc:182 msgid "Fast auto enhance that may work OK" msgstr "Быстрое авто улучшение (может сработать хорошо)" -#: f.menus.cc:218 f.menus.cc:475 +#: f.menus.cc:182 f.menus.cc:388 msgid "Voodoo Enhance" msgstr "Улучшение Voodoo" -#: f.menus.cc:219 +#: f.menus.cc:183 msgid "Adjust brightness, contrast, color" msgstr "Настроить яркость, контрастность, цветность" -#: f.menus.cc:219 f.menus.cc:476 f.retouch.cc:265 +#: f.menus.cc:183 f.menus.cc:389 f.retouch.cc:271 msgid "Retouch Combo" msgstr "" -#: f.menus.cc:222 +#: f.menus.cc:184 msgid "Add local contrast, enhance details" msgstr "Добавить локальный контраст, усилить детали" -#: f.menus.cc:222 f.menus.cc:478 f.retouch.cc:929 +#: f.menus.cc:184 f.menus.cc:391 f.retouch.cc:1039 msgid "Tone Mapping" msgstr "Преобразование тона" -#: f.menus.cc:223 +#: f.menus.cc:185 msgid "Adjust brightness distribution" msgstr "Выровнять распределение яркости" -#: f.menus.cc:223 f.menus.cc:477 f.tools.cc:5314 -msgid "Brightness Distribution" -msgstr "Распределение яркости" - -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Brightness Ramp" msgstr "Спад яркости" -#: f.menus.cc:224 +#: f.menus.cc:186 msgid "Fix brightness uniformity across image" msgstr "Исправить неоднородность яркости по изображению" -#: f.menus.cc:225 f.retouch.cc:2050 +#: f.menus.cc:187 f.retouch.cc:2159 msgid "Paint Edits" msgstr "Редактор окраски" -#: f.menus.cc:225 +#: f.menus.cc:187 msgid "Paint edit function gradually with mouse" msgstr "Закрашивайте движениями мышки" -#: f.menus.cc:227 +#: f.menus.cc:188 f.retouch.cc:2390 +msgid "Leverage Edits" +msgstr "Нелинейное редактирование" + +#: f.menus.cc:188 +msgid "Leverage edits by brightness or color" +msgstr "Усиление/ослабление функции в зависимости от яркости или цвета" + +#: f.menus.cc:190 msgid "Make the image look sharper" msgstr "Повысить чёткость изображения" -#: f.menus.cc:227 f.repair.cc:79 f.tools.cc:4535 f.tools.cc:4904 +#: f.menus.cc:190 f.repair.cc:79 f.tools.cc:4834 f.tools.cc:5203 msgid "Sharpen" msgstr "Увеличить резкость" -#: f.menus.cc:228 f.repair.cc:1565 +#: f.menus.cc:191 f.repair.cc:1565 msgid "Blur" msgstr "Размыть" -#: f.menus.cc:228 +#: f.menus.cc:191 msgid "Make the image look fuzzy" msgstr "Размыть изображение " -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Filter noise from low-light photos" msgstr "Фильтрация шума в темных изображениях" -#: f.menus.cc:229 +#: f.menus.cc:192 msgid "Reduce Noise" msgstr "Уменьшить шум" -#: f.menus.cc:230 +#: f.menus.cc:193 msgid "Remove unwanted objects" msgstr "Удаление нежелательных объектов" -#: f.menus.cc:230 f.repair.cc:1558 +#: f.menus.cc:193 f.repair.cc:1558 msgid "Smart Erase" msgstr "Умное стирание" -#: f.menus.cc:231 +#: f.menus.cc:194 msgid "Fix red-eyes from electronic flash" msgstr "Исправить эффект красных глаз при вспышке" -#: f.menus.cc:231 f.menus.cc:479 +#: f.menus.cc:194 f.menus.cc:392 msgid "Red Eyes" msgstr "Красные глаза" -#: f.menus.cc:232 +#: f.menus.cc:195 msgid "Paint image pixels using the mouse" msgstr "Окраска пикселей мышью" -#: f.menus.cc:232 f.repair.cc:2403 +#: f.menus.cc:195 f.repair.cc:2403 msgid "Paint/Clone" msgstr "Перекрасить пиксели" -#: f.menus.cc:233 f.repair.cc:2995 +#: f.menus.cc:196 f.repair.cc:2995 msgid "Remove Dust" msgstr "Удалить пыль" -#: f.menus.cc:233 +#: f.menus.cc:196 msgid "Remove dust spots from scanned slides" msgstr "Удаление пятен пыли из отсканированных слайдов" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Anti-alias" msgstr "Антиалиасинг" -#: f.menus.cc:234 +#: f.menus.cc:197 msgid "Smoothen edges with jaggies" msgstr "Спрямить зазубренные края" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Fix Color Fringes" msgstr "Удалить ореол" -#: f.menus.cc:235 +#: f.menus.cc:198 msgid "Reduce Chromatic Abberation" msgstr "Коррекция хроматической аберрации" -#: f.menus.cc:236 +#: f.menus.cc:199 msgid "Erase known hot and dark pixels" msgstr "Стереть известные горячие и темные пиксели" -#: f.menus.cc:236 f.repair.cc:4008 +#: f.menus.cc:199 f.repair.cc:4008 msgid "Fix Stuck Pixels" msgstr "Устранить горячие пиксели" -#: f.menus.cc:239 +#: f.menus.cc:201 msgid "Shift/convert colors into other colors" msgstr "Сдвиг/преобразования цветов" -#: f.menus.cc:240 +#: f.menus.cc:202 msgid "Make BW/color, negative/positive, sepia" msgstr "Преобразовать Ч/Б/цвет, негатив/позитив, сепия" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Color Profile" msgstr "Профиль цветов" -#: f.menus.cc:241 +#: f.menus.cc:203 msgid "Convert to another color profile" msgstr "Преобразование в другой профиль цветов" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match Colors" msgstr "Подбор цветов" -#: f.menus.cc:242 +#: f.menus.cc:204 msgid "Match colors on one image with another" msgstr "Совмещение цветов одного изображения с другим" -#: f.menus.cc:243 +#: f.menus.cc:205 msgid "Adjust color in selected image areas" msgstr "Настройка цвета в выбранной области изображения" -#: f.menus.cc:244 +#: f.menus.cc:206 msgid "Adjust color using CMYK or RGB values" msgstr "Настройка цвета используя CMYK или RGB значения" -#: f.menus.cc:246 +#: f.menus.cc:208 msgid "Remove curvature, esp. panoramas" msgstr "Удаление искривления, особенно панорам" -#: f.menus.cc:247 +#: f.menus.cc:209 msgid "Straighten objects seen from an angle" msgstr "Выравнивание геометрии объектов, снятых под углом" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten Book Page" msgstr "Выровнять страницу книги" -#: f.menus.cc:248 +#: f.menus.cc:210 msgid "Flatten a photographed book page" msgstr "Выровнять сфотографированную книжную страницу" -#: f.menus.cc:249 +#: f.menus.cc:211 msgid "Distort image areas using the mouse" msgstr "Исказить области изображения мышкой" -#: f.menus.cc:250 f.menus.cc:251 f.menus.cc:252 +#: f.menus.cc:212 f.menus.cc:213 f.menus.cc:214 msgid "Distort the whole image using the mouse" msgstr "Исказить всё изображение мышкой" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Color Depth" msgstr "Глубина цвета" -#: f.menus.cc:254 +#: f.menus.cc:216 msgid "Reduce color depth (posterize)" msgstr "Уменьшение глубины цвета (эффект плаката)" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Convert to pencil sketch" msgstr "Преобразовать в карандашный набросок" -#: f.menus.cc:255 +#: f.menus.cc:217 msgid "Sketch" msgstr "Набросок" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Convert to colored line drawing" msgstr "Преобразование в рисунок цветных линий" -#: f.menus.cc:256 +#: f.menus.cc:218 msgid "Drawing" msgstr "Рисунок" -#: f.menus.cc:257 +#: f.menus.cc:219 msgid "Graduated Blur depending on contrast" msgstr "Размытие в зависимости от контраста" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Create an embossed or 3D appearance" msgstr "Создать рельеф или видимость 3D" -#: f.menus.cc:258 +#: f.menus.cc:220 msgid "Embossing" msgstr "Рельефное тиснение" -#: f.menus.cc:259 +#: f.menus.cc:221 msgid "Convert to square tiles" msgstr "Преобразование в квадратные плитки" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Convert to dots (Roy Lichtenstein effect)" msgstr "Преобразование в точки (эффект Roy Lichtenstein)" -#: f.menus.cc:260 +#: f.menus.cc:222 msgid "Dots" msgstr "Точки" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Convert into a simulated painting" msgstr "Преобразование в моделируемую картину" -#: f.menus.cc:261 +#: f.menus.cc:223 msgid "Painting" msgstr "Живопись" -#: f.menus.cc:262 +#: f.menus.cc:224 msgid "Change brightness or color radially" msgstr "Изменение яркости и цвета радиально" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Add texture to an image" msgstr "" -#: f.menus.cc:263 +#: f.menus.cc:225 msgid "Texture" msgstr "" -#: f.menus.cc:264 +#: f.menus.cc:226 msgid "Tile image with a repeating pattern" msgstr "" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Create a mosaic with tiles made from all images" msgstr "" -#: f.menus.cc:265 +#: f.menus.cc:227 msgid "Mosaic" msgstr "" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "Combine bright/dark images for better detail" msgstr "Объединение ярких/темных изображений для улучшения деталей" -#: f.menus.cc:267 +#: f.menus.cc:229 msgid "High Dynamic Range" msgstr "Высокий динамический диапазон" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "Combine near/far focus images for deeper focus" msgstr "" "Объединение близко/далеко фокусных изображений для более глубокого фокуса" -#: f.menus.cc:268 +#: f.menus.cc:230 msgid "High Depth of Field" msgstr "Высокая глубина резкости" -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Combine images to erase passing people, etc." msgstr "Объединение изображений чтобы стереть проходящих людей и т.д." -#: f.menus.cc:269 +#: f.menus.cc:231 msgid "Stack / Paint" msgstr "Стопка / Грим" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Combine noisy images into a low-noise image" msgstr "Объединение изображений с шумом и изображений с малым шумом" -#: f.menus.cc:270 +#: f.menus.cc:232 msgid "Stack / Noise" msgstr "Стопка / Шум" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Combine images into a panorama" msgstr "Объединение изображений в панораму" -#: f.menus.cc:271 +#: f.menus.cc:233 msgid "Panorama" msgstr "Панорама" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Combine images into a vertical panorama" msgstr "Объединение изображений в вертикальную панораму" -#: f.menus.cc:272 +#: f.menus.cc:234 msgid "Vertical Panorama" msgstr "Вертикальная панорама" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Arrange multiple images on a background image" msgstr "Расположение нескольких изображений на фоновом" -#: f.menus.cc:273 +#: f.menus.cc:235 msgid "Mashup" msgstr "Коллаж" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Add another image editor to the menu" msgstr "Добавить в меню другой редактор изображений" -#: f.menus.cc:275 +#: f.menus.cc:237 msgid "Edit Plugins" msgstr "Редактировать плагины" -#: f.menus.cc:277 fotoxx-14.03.cc:3777 +#: f.menus.cc:239 fotoxx-14.04.cc:3801 msgid "Quick Start" msgstr "Быстрый Старт" -#: f.menus.cc:277 +#: f.menus.cc:239 msgid "Quick Start mini-guide" msgstr "Руководство по быстрому старту" -#: f.menus.cc:278 +#: f.menus.cc:240 msgid "Read the user guide" msgstr "Причитать руководство пользователя" -#: f.menus.cc:278 fotoxx-14.03.cc:3780 +#: f.menus.cc:240 fotoxx-14.04.cc:3804 msgid "User Guide" msgstr "Руководство пользователя" -#: f.menus.cc:279 +#: f.menus.cc:241 msgid "Recent user guide changes" msgstr "Последние изменения руководства пользователя" -#: f.menus.cc:279 fotoxx-14.03.cc:3783 +#: f.menus.cc:241 fotoxx-14.04.cc:3807 msgid "User Guide Changes" msgstr "Изменения в руководстве пользователя" -#: f.menus.cc:280 +#: f.menus.cc:242 msgid "Fotoxx updates notification" msgstr "Сообщать о наличии обновлений" -#: f.menus.cc:280 fotoxx-14.03.cc:3786 +#: f.menus.cc:242 fotoxx-14.04.cc:3810 msgid "Program Updates" msgstr "Обновления" -#: f.menus.cc:281 fotoxx-14.03.cc:3792 +#: f.menus.cc:243 fotoxx-14.04.cc:3816 msgid "Edit Functions Summary" msgstr "Краткое изложение функций" -#: f.menus.cc:281 +#: f.menus.cc:243 msgid "Summary of image edit functions" msgstr "Обзор функций для редактирования изображений" -#: f.menus.cc:282 fotoxx-14.03.cc:3789 +#: f.menus.cc:244 fotoxx-14.04.cc:3813 msgid "README" msgstr "README" -#: f.menus.cc:282 +#: f.menus.cc:244 msgid "Technical installation notes" msgstr "Технические замечания по установке" -#: f.menus.cc:283 fotoxx-14.03.cc:3795 +#: f.menus.cc:245 fotoxx-14.04.cc:3819 msgid "Change Log" msgstr "Журнал изменений" -#: f.menus.cc:283 +#: f.menus.cc:245 msgid "List updates by Fotoxx version" msgstr "Список обновлений версии Fotoxx" -#: f.menus.cc:284 fotoxx-14.03.cc:3798 +#: f.menus.cc:246 fotoxx-14.04.cc:3822 msgid "Log File" msgstr "Файл журнала" -#: f.menus.cc:284 +#: f.menus.cc:246 msgid "View the log file and error messages" msgstr "Просмотр файла журнала и сообщений об ошибках" -#: f.menus.cc:285 +#: f.menus.cc:247 msgid "How to do Fotoxx translations" msgstr "Как сделать перевод Fotoxx" -#: f.menus.cc:285 fotoxx-14.03.cc:3801 +#: f.menus.cc:247 fotoxx-14.04.cc:3825 msgid "Translations" msgstr "Переводы" -#: f.menus.cc:286 fotoxx-14.03.cc:3804 +#: f.menus.cc:248 fotoxx-14.04.cc:3828 msgid "Home Page" msgstr "Домашняя страница" -#: f.menus.cc:286 +#: f.menus.cc:248 msgid "Show the Fotoxx web page" msgstr "Показать веб страницу Fotoxx" -#: f.menus.cc:287 fotoxx-14.03.cc:3807 +#: f.menus.cc:249 fotoxx-14.04.cc:3831 msgid "About" msgstr "О программе" -#: f.menus.cc:287 +#: f.menus.cc:249 msgid "Version, license, contact, credits" msgstr "Версия, лицензия, контакты, кредиты" -#: f.menus.cc:290 -msgid "Favs" -msgstr "Избранное" - -#: f.menus.cc:292 +#: f.menus.cc:251 msgid "Color of area borders etc." msgstr "Цвет границ и т.п." -#: f.menus.cc:293 fotoxx.h:1072 +#: f.menus.cc:252 fotoxx.h:1078 msgid "Undo" msgstr "Отменить" -#: f.menus.cc:293 +#: f.menus.cc:252 msgid "Undo one edit" msgstr "Отменить одно изменение" -#: f.menus.cc:294 fotoxx.h:1051 +#: f.menus.cc:253 fotoxx.h:1056 msgid "Redo" msgstr "Вернуть" -#: f.menus.cc:294 +#: f.menus.cc:253 msgid "Redo one edit" msgstr "Вернуть одно изменение" -#: f.menus.cc:296 f.menus.cc:432 +#: f.menus.cc:254 f.menus.cc:348 msgid "Set gallery from current image file" msgstr "Задать галерею с текущего изображения" -#: f.menus.cc:298 +#: f.menus.cc:256 msgid "Open the previous file" msgstr "Открыть предыдущий файл" -#: f.menus.cc:298 fotoxx.h:1046 +#: f.menus.cc:256 fotoxx.h:1051 msgid "Prev" msgstr "Предыдущий" -#: f.menus.cc:299 fotoxx.h:1034 +#: f.menus.cc:257 fotoxx.h:1039 msgid "Next" msgstr "Следующий" -#: f.menus.cc:299 +#: f.menus.cc:257 msgid "Open the next file" msgstr "Открыть следующий файл" -#: f.menus.cc:301 f.menus.cc:483 fotoxx.h:1068 +#: f.menus.cc:259 f.menus.cc:396 fotoxx.h:1074 msgid "Trash" msgstr "Корзина" -#: f.menus.cc:344 f.menus.cc:373 +#: f.menus.cc:306 msgid "Run as Fotoxx edit function" msgstr "Запустить как функцию редактирования Fotoxx" -#: f.menus.cc:412 +#: f.menus.cc:328 msgid "Top" msgstr "Верх" -#: f.menus.cc:433 +#: f.menus.cc:349 msgid "open another directory" msgstr "открыть другую папку" -#: f.menus.cc:434 +#: f.menus.cc:350 msgid "go to bookmarked image" msgstr "перейти по закладке" -#: f.menus.cc:435 +#: f.menus.cc:351 msgid "increase thumbnail size" msgstr "Увеличение размера миниатюры" -#: f.menus.cc:436 +#: f.menus.cc:352 msgid "reduce thumbnail size" msgstr "Уменьшить размер миниатюр" -#: f.menus.cc:437 +#: f.menus.cc:353 msgid "change sort order" msgstr "изменить порядок сортировки" -#: f.menus.cc:438 +#: f.menus.cc:354 msgid "jump to beginning (top)" msgstr "на начало" -#: f.menus.cc:439 +#: f.menus.cc:355 msgid "jump to end (bottom)" msgstr "в конец" -#: f.menus.cc:440 +#: f.menus.cc:356 msgid "previous page" msgstr "Предыдущая страница" -#: f.menus.cc:441 +#: f.menus.cc:357 msgid "next page" msgstr "Следующая страница" -#: f.menus.cc:442 +#: f.menus.cc:358 msgid "previous row" msgstr "Предыдущий ряд" -#: f.menus.cc:443 +#: f.menus.cc:359 msgid "next row" msgstr "Следующий ряд" -#: f.menus.cc:461 +#: f.menus.cc:360 +msgid "slow scroll" +msgstr "" + +#: f.menus.cc:374 msgid "Popup Image" msgstr "" -#: f.menus.cc:463 fotoxx.h:1054 +#: f.menus.cc:376 fotoxx.h:1059 msgid "Rename" msgstr "Переименовать" -#: f.menus.cc:464 +#: f.menus.cc:377 msgid "Copy to Location" msgstr "Копировать в папку" -#: f.menus.cc:465 +#: f.menus.cc:378 msgid "Move to Location" msgstr "Переместить в папку" -#: f.menus.cc:466 +#: f.menus.cc:379 msgid "Copy to Clipboard" msgstr "Копировать в буфер" -#: f.menus.cc:467 +#: f.menus.cc:380 msgid "Remove from Collection" msgstr "Удалить из коллекции" -#: f.menus.cc:468 +#: f.menus.cc:381 msgid "Cut to Image Cache" msgstr "Вырезать в кэш изображений" -#: f.menus.cc:469 +#: f.menus.cc:382 msgid "Copy to Image Cache" msgstr "Скопировать в кэш изображений" -#: f.menus.cc:470 +#: f.menus.cc:383 msgid "Paste Image Cache Here (clear)" msgstr "Поместить сюда кэш изображений с очисткой" -#: f.menus.cc:471 +#: f.menus.cc:384 msgid "Paste Image Cache Here (keep)" msgstr "Поместить сюда кэш изображений с сохранением" -#: f.menus.cc:481 +#: f.menus.cc:394 msgid "Select Area" msgstr "Выберите область" @@ -2429,7 +2454,7 @@ msgid "Rating: %c (stars)" msgstr "Рейтинг %c звёзд" -#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1939 f.meta.cc:3036 f.meta.cc:3311 +#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1940 f.meta.cc:3040 f.meta.cc:3315 msgid "file type cannot have metadata" msgstr "" @@ -2481,7 +2506,7 @@ msgid "Recent Tags" msgstr "Последние теги" -#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4267 +#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4271 msgid "Defined Tags" msgstr "Известные теги" @@ -2501,7 +2526,7 @@ msgid "time is invalid" msgstr "неверное время" -#: f.meta.cc:532 fotoxx.h:1029 +#: f.meta.cc:532 fotoxx.h:1034 msgid "Manage Tags" msgstr "Управление тегами" @@ -2517,11 +2542,11 @@ msgid "tag" msgstr "тег" -#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1474 +#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1449 msgid "file not found" msgstr "Файл не найден" -#: f.meta.cc:1552 f.meta.cc:3257 f.tools.cc:4501 f.tools.cc:4966 +#: f.meta.cc:1552 f.meta.cc:3261 f.tools.cc:4800 f.tools.cc:5265 msgid "0 files selected" msgstr "0 файлов выбрано" @@ -2546,7 +2571,7 @@ msgid "specify files and tags" msgstr "задайте файлы и тэги" -#: f.meta.cc:1788 f.meta.cc:3369 f.tools.cc:4800 f.tools.cc:5185 +#: f.meta.cc:1788 f.meta.cc:3373 f.tools.cc:5099 f.tools.cc:5484 #, c-format msgid "%d files selected" msgstr "%d файлов выбрано" @@ -2555,11 +2580,11 @@ msgid "View Metadata" msgstr "Просмотр метаданных" -#: f.meta.cc:1903 +#: f.meta.cc:1904 msgid "Caption: \n" msgstr "Подпись: \n" -#: f.meta.cc:1905 +#: f.meta.cc:1906 msgid "" "\n" "Comment: \n" @@ -2567,23 +2592,23 @@ "\n" "Комментарий: \n" -#: f.meta.cc:1949 +#: f.meta.cc:1950 msgid "key name" msgstr "имя ключа" -#: f.meta.cc:1951 +#: f.meta.cc:1952 msgid "key value" msgstr "значение ключа" -#: f.meta.cc:2041 fotoxx.h:985 +#: f.meta.cc:2042 fotoxx.h:990 msgid "All" msgstr "Все" -#: f.meta.cc:2042 +#: f.meta.cc:2043 msgid "One Key:" msgstr "Один ключ:" -#: f.meta.cc:2222 +#: f.meta.cc:2223 #, c-format msgid "" "Download geotags data (8 megabytes). \n" @@ -2594,188 +2619,180 @@ "Сохранить в %s \n" "Продолжить?" -#: f.meta.cc:2261 +#: f.meta.cc:2262 msgid "download failed" msgstr "Загрузка не удалась" -#: f.meta.cc:2292 fotoxx-14.03.cc:1079 -msgid "Location from World Map" -msgstr "Точка на карте мира" - -#: f.meta.cc:2294 -msgid "Loading world map" -msgstr "Загружается карта мира" - -#: f.meta.cc:2304 f.meta.cc:2449 +#: f.meta.cc:2298 f.meta.cc:2445 msgid "please download geolocations data" msgstr "Загрузите данные геолокации" -#: f.meta.cc:2309 +#: f.meta.cc:2304 msgid "Loading geolocations" msgstr "Загружаются геолокации" -#: f.meta.cc:2737 f.meta.cc:3209 f.meta.cc:3477 +#: f.meta.cc:2741 f.meta.cc:3213 f.meta.cc:3481 #, c-format msgid "bad latitude/longitude: %s %s" msgstr "Неправильная широта/долгота: %s %s" -#: f.meta.cc:3024 +#: f.meta.cc:3028 msgid "Geocoding web service courtesy of" msgstr "Благодаря веб-сервису геокодирования" -#: f.meta.cc:3045 f.meta.cc:3259 f.meta.cc:4772 +#: f.meta.cc:3049 f.meta.cc:3263 f.meta.cc:4778 msgid "city" msgstr "Город" -#: f.meta.cc:3048 f.meta.cc:3262 f.meta.cc:4775 +#: f.meta.cc:3052 f.meta.cc:3266 f.meta.cc:4781 msgid "country" msgstr "Страна" -#: f.meta.cc:3120 f.meta.cc:3390 +#: f.meta.cc:3124 f.meta.cc:3394 msgid "city not found" msgstr "Город не найден" -#: f.meta.cc:3455 +#: f.meta.cc:3459 msgid "" "data is incomplete \n" " proceed?" msgstr "" "Данные не полные \n" -"Продолжить?" +" Продолжить?" -#: f.meta.cc:3481 f.tools.cc:4844 +#: f.meta.cc:3485 f.tools.cc:5143 msgid "no files selected" msgstr "нет выбранных файлов" -#: f.meta.cc:3513 +#: f.meta.cc:3517 msgid "choose city" msgstr "Выбрать город" -#: f.meta.cc:3599 +#: f.meta.cc:3603 msgid "not found" msgstr "Не найден" -#: f.meta.cc:3600 +#: f.meta.cc:3604 msgid "city and country required" msgstr "укажите город и страну" -#: f.meta.cc:3692 +#: f.meta.cc:3696 msgid "Report Geotag Groups" msgstr "Сообщение группы геотегов" -#: f.meta.cc:3693 +#: f.meta.cc:3697 msgid "Group by country" msgstr "Группировать по стране" -#: f.meta.cc:3694 +#: f.meta.cc:3698 msgid "Group by country/city" msgstr "Группировать по стране/городу" -#: f.meta.cc:3695 +#: f.meta.cc:3699 msgid "Group by country/city/date" msgstr "Группировать по стране/городу/дате" -#: f.meta.cc:3698 +#: f.meta.cc:3702 msgid "Combine within" msgstr "Объединить в" -#: f.meta.cc:3700 +#: f.meta.cc:3704 msgid "days" msgstr "Дней" -#: f.meta.cc:3815 +#: f.meta.cc:3819 msgid "geotag groups" msgstr "группы геотегов" -#: f.meta.cc:4043 +#: f.meta.cc:4047 msgid "search range (km)" msgstr "Диапазон поиска (км)" -#: f.meta.cc:4116 +#: f.meta.cc:4120 msgid "No matching images found" msgstr "Соответствующие изображения не найдены" -#: f.meta.cc:4202 +#: f.meta.cc:4206 msgid "Search Image Metadata" msgstr "Поиск  метаданных изображения" -#: f.meta.cc:4206 +#: f.meta.cc:4210 msgid "images to search:" msgstr "изображения для поиска:" -#: f.meta.cc:4207 +#: f.meta.cc:4211 msgid "all" msgstr "все" -#: f.meta.cc:4208 +#: f.meta.cc:4212 msgid "current set only" msgstr "только активный набор" -#: f.meta.cc:4211 +#: f.meta.cc:4215 msgid "matching images:" msgstr "подходящие изображения:" -#: f.meta.cc:4212 +#: f.meta.cc:4216 msgid "new set" msgstr "новый набор" -#: f.meta.cc:4213 +#: f.meta.cc:4217 msgid "add to set" msgstr "добавить в набор" -#: f.meta.cc:4214 +#: f.meta.cc:4218 msgid "remove" msgstr "удалить" -#: f.meta.cc:4217 +#: f.meta.cc:4221 msgid "report type:" msgstr "" -#: f.meta.cc:4218 +#: f.meta.cc:4222 msgid "gallery" msgstr "" -#: f.meta.cc:4219 +#: f.meta.cc:4223 msgid "metadata" msgstr "" -#: f.meta.cc:4225 +#: f.meta.cc:4229 msgid "date range" msgstr "Диапазон дат" -#: f.meta.cc:4226 +#: f.meta.cc:4230 msgid "stars range" msgstr "Диапазон рейтинга" -#: f.meta.cc:4227 +#: f.meta.cc:4231 msgid "search tags" msgstr "Поиск тегов" -#: f.meta.cc:4228 +#: f.meta.cc:4232 msgid "search text" msgstr "Поиск текста" -#: f.meta.cc:4229 +#: f.meta.cc:4233 msgid "search files" msgstr "Поиск файлов" -#: f.meta.cc:4234 +#: f.meta.cc:4238 msgid "(yyyymmdd)" msgstr "(ггггммдд)" -#: f.meta.cc:4240 +#: f.meta.cc:4244 msgid "all/any" msgstr "Все/любой" -#: f.meta.cc:4259 +#: f.meta.cc:4263 msgid "other criteria" msgstr "Другие критерии" -#: f.meta.cc:4263 +#: f.meta.cc:4267 msgid "other" msgstr "Другое" -#: f.meta.cc:4398 +#: f.meta.cc:4402 msgid "" "to remove images from current set, \n" "search current set" @@ -2783,7 +2800,7 @@ "для удаления изображений из активного набора, \n" "поиск активного набора" -#: f.meta.cc:4405 +#: f.meta.cc:4409 msgid "" "to add images to current set, \n" "search all images" @@ -2791,28 +2808,28 @@ "для добавления изображений в активный набор \n" "поиск всех изображений" -#: f.meta.cc:4632 +#: f.meta.cc:4636 #, c-format msgid "images added: %d removed: %d new count: %d" msgstr "добавлено изображений: %d удалено: %d осталось: %d" -#: f.meta.cc:4635 +#: f.meta.cc:4639 msgid "no changes made" msgstr "без изменений" -#: f.meta.cc:4769 +#: f.meta.cc:4775 msgid "Add Geotags Search Criteria" msgstr "Добавить критерии поиска геотегов" -#: f.meta.cc:4788 +#: f.meta.cc:4794 msgid "range (km)" msgstr "Расстояние (км)" -#: f.meta.cc:4881 +#: f.meta.cc:4885 msgid "error in latitude/longitude/range" msgstr "Ошибка в широте/долготе/расстоянии" -#: f.meta.cc:4946 +#: f.meta.cc:4950 msgid "" "These items are always reported: \n" "date, stars, tags, caption, comment" @@ -2820,19 +2837,19 @@ "Всегда предоставляются: \n" "дата, рейтинг, теги, подпись, комментарии" -#: f.meta.cc:4970 +#: f.meta.cc:4974 msgid "Additional Items for Report" msgstr "Дополнительные пункты для отчета" -#: f.meta.cc:4976 +#: f.meta.cc:4980 msgid "Keyword" msgstr "Ключевое слово" -#: f.meta.cc:4983 +#: f.meta.cc:4987 msgid "Match Criteria" msgstr "Критерии подбора" -#: f.meta.cc:5554 f.tools.cc:300 +#: f.meta.cc:5558 f.tools.cc:300 msgid "image index is missing" msgstr "нет индекса изображений" @@ -2876,7 +2893,7 @@ "1. Передвинуть мышь для выбора. \n" "2. Стереть. 3. Повторить. " -#: f.repair.cc:1563 fotoxx.h:1048 +#: f.repair.cc:1563 fotoxx.h:1053 msgid "Radius" msgstr "Радиус" @@ -2997,89 +3014,97 @@ msgid "Stuck Pixels file" msgstr "Файл горячих пикселей" -#: f.repair.cc:4203 +#: f.repair.cc:4203 f.tools.cc:3380 msgid "file format error" msgstr "Ошибка формата файла" -#: f.retouch.cc:292 fotoxx.h:993 +#: f.retouch.cc:292 +msgid "Amplifier" +msgstr "" + +#: f.retouch.cc:293 fotoxx.h:998 msgid "Brightness" msgstr "Яркость" -#: f.retouch.cc:293 fotoxx.h:1000 +#: f.retouch.cc:294 fotoxx.h:1005 msgid "Contrast" msgstr "Контраст" -#: f.retouch.cc:294 +#: f.retouch.cc:295 msgid "Low Color" msgstr "Цвет мин" -#: f.retouch.cc:295 +#: f.retouch.cc:296 msgid "Warmer" msgstr "Теплее" -#: f.retouch.cc:296 +#: f.retouch.cc:297 msgid "Dark Areas" msgstr "Тёмные зоны" -#: f.retouch.cc:304 f.retouch.cc:305 f.retouch.cc:306 +#: f.retouch.cc:306 +msgid "Max." +msgstr "" + +#: f.retouch.cc:307 f.retouch.cc:308 f.retouch.cc:309 msgid "High" msgstr "Макс" -#: f.retouch.cc:307 +#: f.retouch.cc:310 msgid "Cooler" msgstr "Холоднее" -#: f.retouch.cc:308 +#: f.retouch.cc:311 msgid "Bright" msgstr "Светлые" -#: f.retouch.cc:311 +#: f.retouch.cc:317 msgid "Click for white balance or black level" msgstr "Устанавливать ББ и точку чёрного" -#: f.retouch.cc:957 +#: f.retouch.cc:1067 msgid "low" msgstr "Низкий" -#: f.retouch.cc:959 +#: f.retouch.cc:1069 msgid "high" msgstr "Высокий" -#: f.retouch.cc:962 +#: f.retouch.cc:1072 msgid "Amplify" msgstr "Усилить" -#: f.retouch.cc:1301 +#: f.retouch.cc:1411 msgid "Adjust Brightness Distribution" msgstr "Выровнять распределение яркости" -#: f.retouch.cc:1339 +#: f.retouch.cc:1449 msgid "Flatten" msgstr "Выровнять" -#: f.retouch.cc:1340 +#: f.retouch.cc:1450 msgid "Deband" msgstr "Уменьшить постеризацию" -#: f.retouch.cc:1341 +#: f.retouch.cc:1451 #, fuzzy msgid "Darken" msgstr "Темнее" -#: f.retouch.cc:1342 +#: f.retouch.cc:1452 #, fuzzy msgid "Brighten" msgstr "Светлее" -#: f.retouch.cc:1675 +#: f.retouch.cc:1784 msgid "Ramp brightness across image" msgstr "Смещение яркости по изображению" -#: f.retouch.cc:2052 f.tools.cc:5777 +#: f.retouch.cc:2161 f.retouch.cc:2398 f.tools.cc:6085 msgid "Edit function must be active" msgstr "Функция редактирования должна быть активна" -#: f.retouch.cc:2060 fotoxx-14.03.cc:3108 +#: f.retouch.cc:2169 fotoxx-14.04.cc:3132 msgid "" "Select area cannot be kept.\n" "Continue?" @@ -3087,14 +3112,26 @@ "Избранная область не может быть сохранена.\n" "Продолжить?" -#: f.retouch.cc:2089 +#: f.retouch.cc:2198 msgid "power: center" msgstr "Усиление: центр" -#: f.retouch.cc:2094 +#: f.retouch.cc:2203 msgid "reset area" msgstr "Сбросить область" +#: f.retouch.cc:2391 +msgid "Edit Function Amplifier" +msgstr "Усилитель функций редактирования" + +#: f.retouch.cc:2427 +msgid "minimum" +msgstr "минимум" + +#: f.retouch.cc:2429 +msgid "maximum" +msgstr "максимум" + #: f.tools.cc:95 msgid "Top Image Directories" msgstr "" @@ -3150,152 +3187,136 @@ msgid "COMPLETED" msgstr "ЗАВЕРШЕНО" -#: f.tools.cc:818 +#: f.tools.cc:817 msgid "Settings" msgstr "Настройки" -#: f.tools.cc:821 +#: f.tools.cc:820 msgid "Startup Display" msgstr "Начальный экран" -#: f.tools.cc:823 +#: f.tools.cc:822 msgid "Recent Files Gallery" msgstr "Галерея недавно открытых файлов" -#: f.tools.cc:825 +#: f.tools.cc:824 msgid "Newest Files Gallery" msgstr "Галерея Свежих Файлов" -#: f.tools.cc:827 +#: f.tools.cc:826 msgid "Previous Gallery" msgstr "" -#: f.tools.cc:829 +#: f.tools.cc:828 msgid "Previous Image" msgstr "" -#: f.tools.cc:831 +#: f.tools.cc:830 msgid "Blank Window" msgstr "Пустое окно" -#: f.tools.cc:833 +#: f.tools.cc:832 msgid "Directory Gallery" msgstr " Галерея каталогов" -#: f.tools.cc:837 +#: f.tools.cc:836 msgid "Image File" msgstr "Файл изображения" -#: f.tools.cc:844 -msgid "Menu Style" -msgstr "Стиль меню" - -#: f.tools.cc:845 -msgid "Classic" -msgstr "Классическое" - -#: f.tools.cc:846 -msgid "Vertical" -msgstr "Вертикальное" - -#: f.tools.cc:849 +#: f.tools.cc:843 msgid "Toolbar Style" msgstr "Стиль панели инструментов" -#: f.tools.cc:851 +#: f.tools.cc:845 msgid "Icons" msgstr "Значки" -#: f.tools.cc:852 +#: f.tools.cc:846 msgid "Both" msgstr "Оба" -#: f.tools.cc:855 +#: f.tools.cc:849 msgid "Image Pan" msgstr "Панорамирование" -#: f.tools.cc:856 +#: f.tools.cc:850 msgid "Drag" msgstr "Перетащить" -#: f.tools.cc:857 -msgid "Scroll" -msgstr "Скролл" - -#: f.tools.cc:858 +#: f.tools.cc:852 msgid "Magnified" msgstr "Увеличенный" -#: f.tools.cc:867 +#: f.tools.cc:861 msgid "Default JPEG quality" msgstr "Качество JPEG по умолчанию" -#: f.tools.cc:871 +#: f.tools.cc:865 msgid "Zooms for 200%" msgstr "Увеличение 200%" -#: f.tools.cc:875 +#: f.tools.cc:869 msgid "RAW command" msgstr "Команда RAW" -#: f.tools.cc:879 +#: f.tools.cc:873 msgid "RAW file types" msgstr "Типы файлов RAW" -#: f.tools.cc:1027 +#: f.tools.cc:1016 msgid "startup directory is invalid" msgstr "Некорректный начальный каталог" -#: f.tools.cc:1035 +#: f.tools.cc:1024 msgid "startup file is invalid" msgstr "Некорректный начальный файл" -#: f.tools.cc:1130 +#: f.tools.cc:1105 msgid "Select startup directory" msgstr "Выбрать начальный каталог" -#: f.tools.cc:1138 +#: f.tools.cc:1113 msgid "Select startup image file" msgstr "Выбрать начальный файл изображения" -#: f.tools.cc:1176 +#: f.tools.cc:1151 msgid "Click list position. Click thumbnail to add." msgstr "Щёлкните по элементу списка. Щелкните по миниатюре для добавления" -#: f.tools.cc:1201 f.tools.cc:1418 +#: f.tools.cc:1176 f.tools.cc:1393 msgid "Edit Bookmarks" msgstr "Редактировать закладки" -#: f.tools.cc:1349 +#: f.tools.cc:1324 msgid "unable to save bookmarks file" msgstr "невозможно сокранить файл закладок" -#: f.tools.cc:1418 +#: f.tools.cc:1393 msgid "Go To Bookmark" msgstr "Перейти по закладке" -#: f.tools.cc:1563 +#: f.tools.cc:1538 msgid "Edit KB Shortcuts" msgstr "Редактировать горячие клавиши" -#: f.tools.cc:1568 +#: f.tools.cc:1543 msgid "shortcut key:" msgstr "горячая клавиша:" -#: f.tools.cc:1569 +#: f.tools.cc:1544 msgid "(enter key)" msgstr "" -#: f.tools.cc:1695 +#: f.tools.cc:1670 #, c-format msgid "\"%s\" Reserved, cannot be used" msgstr "\"%s\" Зарезервировано: переопределить невозможно" -#: f.tools.cc:1826 +#: f.tools.cc:1801 msgid "unable to save KB-shortcuts file" msgstr "невозможно сохранить файл горячих клавиш" -#: f.tools.cc:1914 +#: f.tools.cc:1889 msgid "" "Right-click collection thumbnail to cut/copy \n" "to cache, insert from cache, or remove." @@ -3303,280 +3324,313 @@ "Правый клик на ярлыке коллекции для копирования \n" "в кэш, вставки из кэша или удаления." -#: f.tools.cc:1955 +#: f.tools.cc:1930 msgid "Start a new collection, add images" msgstr "Новая коллекция, добавьте фото" -#: f.tools.cc:1957 +#: f.tools.cc:1932 msgid "New collection from current gallery" msgstr "Новая коллекция из текущей галереи" -#: f.tools.cc:1959 +#: f.tools.cc:1934 msgid "Collection to view or edit" msgstr "Коллекция для просмотра/редактирования" -#: f.tools.cc:1961 +#: f.tools.cc:1936 msgid "Select images, add to cache" msgstr "Выбрать изображения, добавить в кэш" -#: f.tools.cc:1963 +#: f.tools.cc:1938 msgid "Clear image cache" msgstr "Очистить кэш изображений" -#: f.tools.cc:1964 +#: f.tools.cc:1939 msgid "(0 images)" msgstr "(0 изображений)" -#: f.tools.cc:1966 +#: f.tools.cc:1941 msgid "Delete a collection" msgstr "Удалить коллекцию" -#: f.tools.cc:1987 +#: f.tools.cc:1962 msgid "New Collection" msgstr "Новая коллекция" -#: f.tools.cc:1988 +#: f.tools.cc:1963 msgid "Choose Collection" msgstr "Выберите коллекцию" -#: f.tools.cc:1989 +#: f.tools.cc:1964 msgid "Delete Collection" msgstr "Удалить коллекцию" -#: f.tools.cc:1990 +#: f.tools.cc:1965 #, c-format msgid "(%d images)" msgstr "(%d изображений)" -#: f.tools.cc:1991 +#: f.tools.cc:1966 #, c-format msgid "%d images remaining in cache" msgstr "" -#: f.tools.cc:2025 f.tools.cc:2064 +#: f.tools.cc:2000 f.tools.cc:2039 msgid "New collection created" msgstr "Создана новая коллекция" -#: f.tools.cc:2031 +#: f.tools.cc:2006 msgid "gallery is empty" msgstr "галерея пуста" -#: f.tools.cc:2105 +#: f.tools.cc:2080 #, c-format msgid "delete %s ?" msgstr "Удалить %s ?" -#: f.tools.cc:2461 +#: f.tools.cc:2436 msgid "all collections" msgstr "все коллекции" -#: f.tools.cc:2495 +#: f.tools.cc:2470 msgid "Move Collection" msgstr "Переместить коллекцию" -#: f.tools.cc:2497 +#: f.tools.cc:2472 msgid "collection name" msgstr "Имя коллекции" -#: f.tools.cc:2500 +#: f.tools.cc:2475 msgid "old path segment" msgstr "прежний сегмент пути" -#: f.tools.cc:2503 +#: f.tools.cc:2478 msgid "new path segment" msgstr "новый сегмент пути" -#: f.tools.cc:2592 +#: f.tools.cc:2567 msgid "Replace Collection?" msgstr "Заместить коллекцию?" -#: f.tools.cc:2708 +#: f.tools.cc:2694 msgid "Press ESC to exit slide show" msgstr "Нажмите ESC для выхода из слайд-шоу" -#: f.tools.cc:2709 -msgid "last versions" -msgstr "последние версии" - -#: f.tools.cc:2713 +#: f.tools.cc:2696 msgid "instant" msgstr "Немедленно" -#: f.tools.cc:2714 +#: f.tools.cc:2697 msgid "fade-in" msgstr "Проявка" -#: f.tools.cc:2715 +#: f.tools.cc:2698 msgid "roll-right" msgstr "Скатить вправо" -#: f.tools.cc:2716 +#: f.tools.cc:2699 msgid "roll-down" msgstr "Скатить вниз" -#: f.tools.cc:2717 +#: f.tools.cc:2700 msgid "venetian" msgstr "Жалюзи" -#: f.tools.cc:2718 +#: f.tools.cc:2701 msgid "grate" msgstr "Решетка" -#: f.tools.cc:2719 +#: f.tools.cc:2702 msgid "rectangle" msgstr "Прямоугольник" -#: f.tools.cc:2720 +#: f.tools.cc:2703 msgid "radar" msgstr "Радар" -#: f.tools.cc:2721 +#: f.tools.cc:2704 msgid "jaws" msgstr "Челюсти" -#: f.tools.cc:2722 +#: f.tools.cc:2705 msgid "ellipse" msgstr "Эллипс" -#: f.tools.cc:2723 +#: f.tools.cc:2706 msgid "raindrops" msgstr "дождевые капли" -#: f.tools.cc:2724 +#: f.tools.cc:2707 msgid "doubledoor" msgstr "" -#: f.tools.cc:2725 +#: f.tools.cc:2708 msgid "rotate" msgstr "" -#: f.tools.cc:2787 -msgid "Pause List" -msgstr "Список для паузы" +#: f.tools.cc:2739 +msgid "Clip Limit" +msgstr "возможной обрезки" -#: f.tools.cc:2794 -msgid "transitions" -msgstr "Переходы" +#: f.tools.cc:2741 +msgid "Show Captions" +msgstr "" -#: f.tools.cc:2796 -msgid "seconds" -msgstr "секунд" +#: f.tools.cc:2744 +msgid "Music File" +msgstr "Музыкальный файл" -#: f.tools.cc:2800 -msgid "Clip Limit (%)" -msgstr "% возможной обрезки" +#: f.tools.cc:2749 +msgid "Customize:" +msgstr "Настроить:" -#: f.tools.cc:2802 -msgid "show captions" -msgstr "" +#: f.tools.cc:2750 +msgid "transitions" +msgstr "Переходы" -#: f.tools.cc:2805 -msgid "music file" -msgstr "Музыкальный файл" +#: f.tools.cc:2751 +msgid "image files" +msgstr "" -#: f.tools.cc:2820 f.tools.cc:2828 f.tools.cc:2956 f.tools.cc:2979 -#: f.tools.cc:2992 +#: f.tools.cc:2759 f.tools.cc:2880 #, c-format msgid "%d images" msgstr "%d изображений" -#: f.tools.cc:2854 -msgid "no image files selected" -msgstr "нет выбранных файлов" +#: f.tools.cc:2781 f.tools.cc:2847 f.tools.cc:2875 f.tools.cc:2937 +#: f.tools.cc:3033 f.tools.cc:3189 f.tools.cc:3236 f.tools.cc:3253 +#: f.tools.cc:3396 +msgid "invalid collection" +msgstr "ошибка в коллекции" -#: f.tools.cc:2945 f.tools.cc:2968 +#: f.tools.cc:2860 msgid "open collection" msgstr "Открыть коллекцию" -#: f.tools.cc:3013 +#: f.tools.cc:2900 msgid "Select music file or playlist" msgstr "Выбрать музыкальный файл или плей-лист" -#: f.tools.cc:3046 -msgid "invalid collection" -msgstr "ошибка в коллекции" - -#: f.tools.cc:3061 f.tools.cc:3131 -msgid "empty collection" -msgstr "пустая коллекция" - -#: f.tools.cc:3167 +#: f.tools.cc:2917 msgid "select random (if 5+ enabled)" msgstr "" -#: f.tools.cc:3186 +#: f.tools.cc:2941 msgid "Transition Preferences" msgstr "" -#: f.tools.cc:3196 +#: f.tools.cc:2950 msgid "transition" msgstr "" -#: f.tools.cc:3197 +#: f.tools.cc:2951 msgid "enabled" msgstr "" -#: f.tools.cc:3198 +#: f.tools.cc:2952 msgid "slowdown" msgstr "" -#: f.tools.cc:3199 +#: f.tools.cc:2953 msgid "preference" msgstr "" -#: f.tools.cc:4506 +#: f.tools.cc:3037 +msgid "Image Preferences" +msgstr "" + +#: f.tools.cc:3041 f.tools.cc:3090 f.tools.cc:3202 +msgid "Image File:" +msgstr "Файл изображения:" + +#: f.tools.cc:3044 +msgid "Play tone" +msgstr "" + +#: f.tools.cc:3046 +msgid "Transition" +msgstr "" + +#: f.tools.cc:3051 f.tools.cc:3071 +msgid "+Seconds" +msgstr "" + +#: f.tools.cc:3053 +msgid "before zoom" +msgstr "" + +#: f.tools.cc:3056 +msgid "Zoom size %" +msgstr "" + +#: f.tools.cc:3059 +msgid "Steps" +msgstr "" + +#: f.tools.cc:3063 +msgid "Zoom center" +msgstr "" + +#: f.tools.cc:3073 +msgid "after zoom" +msgstr "" + +#: f.tools.cc:3075 +msgid "next" +msgstr "cледующий" + +#: f.tools.cc:4805 msgid "base" msgstr "базовое имя" -#: f.tools.cc:4508 +#: f.tools.cc:4807 msgid "adder" msgstr "модификатор" -#: f.tools.cc:4512 +#: f.tools.cc:4811 msgid "New Location" msgstr "Новое Расположение" -#: f.tools.cc:4517 +#: f.tools.cc:4816 msgid "New File Type" msgstr "Новый тип файла" -#: f.tools.cc:4521 f.tools.cc:4529 +#: f.tools.cc:4820 f.tools.cc:4828 msgid "no change" msgstr "без изменения" -#: f.tools.cc:4524 +#: f.tools.cc:4823 msgid "max. Width" msgstr "макс. ширина" -#: f.tools.cc:4527 fotoxx.h:1020 +#: f.tools.cc:4826 fotoxx.h:1025 msgid "Height" msgstr "Высота" -#: f.tools.cc:4532 f.tools.cc:4905 +#: f.tools.cc:4831 f.tools.cc:5204 msgid "Delete Originals" msgstr "Удалять оригиналы" -#: f.tools.cc:4533 f.tools.cc:4902 +#: f.tools.cc:4832 f.tools.cc:5201 msgid "Copy Metadata" msgstr "Копировать метаданные" -#: f.tools.cc:4534 f.tools.cc:4903 +#: f.tools.cc:4833 f.tools.cc:5202 msgid "Upright" msgstr "Автоповорот" -#: f.tools.cc:4626 +#: f.tools.cc:4925 msgid "file already exists" msgstr "файл существует" -#: f.tools.cc:4634 +#: f.tools.cc:4933 msgid "file type not supported" msgstr "формат файла не поддерживается" -#: f.tools.cc:4703 +#: f.tools.cc:5002 msgid "cannot create new file" msgstr "невозможно создать новый файл" -#: f.tools.cc:4854 +#: f.tools.cc:5153 msgid "" "new name/base/adder unreasonable\n" " e.g. newname ### 100 10" @@ -3584,118 +3638,118 @@ "плохое новое имя/модификатор\n" "например имя ### 100 10" -#: f.tools.cc:4877 +#: f.tools.cc:5176 #, c-format msgid "max. size %d x %d is not reasonable" msgstr "Макс.размер %d x %d не приемлем" -#: f.tools.cc:4896 +#: f.tools.cc:5195 #, c-format msgid "Convert %d image files" msgstr "Конвертируется %d изображений" -#: f.tools.cc:4897 +#: f.tools.cc:5196 msgid "Rename to" msgstr "Переименовать в" -#: f.tools.cc:4898 +#: f.tools.cc:5197 msgid "Convert to" msgstr "Преобразовать в" -#: f.tools.cc:4899 +#: f.tools.cc:5198 msgid "Resize within" msgstr "Новый размер" -#: f.tools.cc:4900 +#: f.tools.cc:5199 msgid "Output to" msgstr "Записать в" -#: f.tools.cc:4906 +#: f.tools.cc:5205 msgid "PROCEED?" msgstr "" -#: f.tools.cc:4938 +#: f.tools.cc:5237 msgid "Batch Convert RAW Files" msgstr "Пакетное преобразования файлов RAW" -#: f.tools.cc:4969 +#: f.tools.cc:5268 msgid "output file type" msgstr "тип выходного файла" -#: f.tools.cc:4981 +#: f.tools.cc:5280 msgid "white balance" msgstr "баланс белого" -#: f.tools.cc:4982 +#: f.tools.cc:5281 msgid "interpolation" msgstr "интерполяция" -#: f.tools.cc:4983 +#: f.tools.cc:5282 msgid "color space" msgstr "цветовое пространство" -#: f.tools.cc:4984 +#: f.tools.cc:5283 msgid "gamma curve" msgstr "гамма-кривая" -#: f.tools.cc:4987 +#: f.tools.cc:5286 msgid "camera" msgstr "камера" -#: f.tools.cc:4988 +#: f.tools.cc:5287 msgid "fixed" msgstr "фиксированный" -#: f.tools.cc:4989 +#: f.tools.cc:5288 msgid "calculated" msgstr "вычисленный" -#: f.tools.cc:5006 +#: f.tools.cc:5305 #, fuzzy msgid "default" msgstr "по умолчанию" -#: f.tools.cc:5012 +#: f.tools.cc:5311 msgid "defaults" msgstr "по умолчанию" -#: f.tools.cc:5526 +#: f.tools.cc:5834 msgid "x-spacing" msgstr "x-интервал" -#: f.tools.cc:5527 +#: f.tools.cc:5835 msgid "x-count" msgstr "x-значение" -#: f.tools.cc:5528 +#: f.tools.cc:5836 msgid "x-enable" msgstr "x-включить" -#: f.tools.cc:5534 +#: f.tools.cc:5842 msgid "y-spacing" msgstr "y-интервал" -#: f.tools.cc:5535 +#: f.tools.cc:5843 msgid "y-count" msgstr "y-значение" -#: f.tools.cc:5536 +#: f.tools.cc:5844 msgid "y-enable" msgstr "y-включить" -#: f.tools.cc:5984 +#: f.tools.cc:6292 msgid "Darkest and Brightest Pixels" msgstr "Тёмные и яркие пиксели" -#: f.tools.cc:6007 +#: f.tools.cc:6315 msgid "Dark Limit" msgstr "Граница тёмных" -#: f.tools.cc:6008 +#: f.tools.cc:6316 msgid "Bright Limit" msgstr "Граница светлых" -#: f.tools.cc:6115 +#: f.tools.cc:6423 msgid "" "Brightness should show a gradual ramp \n" "extending all the way to the edges." @@ -3703,90 +3757,94 @@ "Яркость должна постепенно изменяться \n" "в направлении краев." -#: f.tools.cc:6272 +#: f.tools.cc:6580 msgid "Available Translations" msgstr "Доступные переводы" -#: f.tools.cc:6276 +#: f.tools.cc:6584 msgid "Set Language" msgstr "Установка языка" -#: f.tools.cc:6364 +#: f.tools.cc:6672 msgid "Make Launcher" msgstr "Создать элемент меню запуска" -#: fotoxx-14.03.cc:312 +#: fotoxx-14.04.cc:309 msgid "Tab F: image file view/edit" msgstr "Закладка F: просмотр/редактирование изображения" -#: fotoxx-14.03.cc:321 +#: fotoxx-14.04.cc:318 msgid "Tab G: image gallery" msgstr "Закладка G: галерея" -#: fotoxx-14.03.cc:330 +#: fotoxx-14.04.cc:327 msgid "Tab W: world map" msgstr "Закладка M: карта мира" -#: fotoxx-14.03.cc:447 +#: fotoxx-14.04.cc:441 msgid "" "First time Fotoxx startup. \n" "Latest version: http://www.kornelix.com/fotoxx \n" "File Index process will begin (may need some time) \n" msgstr "" -#: fotoxx-14.03.cc:492 +#: fotoxx-14.04.cc:488 msgid "Please install missing programs:" msgstr "Установите отсутствующие программы:" -#: fotoxx-14.03.cc:901 +#: fotoxx-14.04.cc:904 msgid "(reduced)" msgstr "" -#: fotoxx-14.03.cc:902 +#: fotoxx-14.04.cc:905 msgid "area active" msgstr "" -#: fotoxx-14.03.cc:903 +#: fotoxx-14.04.cc:906 msgid "dialog open" msgstr "" -#: fotoxx-14.03.cc:904 +#: fotoxx-14.04.cc:907 msgid "function busy" msgstr "" -#: fotoxx-14.03.cc:905 +#: fotoxx-14.04.cc:908 msgid "file index busy" msgstr "файловый индекс занят" -#: fotoxx-14.03.cc:906 +#: fotoxx-14.04.cc:909 msgid "menu locked" msgstr "" -#: fotoxx-14.03.cc:953 +#: fotoxx-14.04.cc:956 msgid "edits" msgstr "" -#: fotoxx-14.03.cc:999 +#: fotoxx-14.04.cc:1002 msgid "Kill active dialog?" msgstr "" -#: fotoxx-14.03.cc:2768 +#: fotoxx-14.04.cc:1082 +msgid "Location from World Map" +msgstr "Точка на карте мира" + +#: fotoxx-14.04.cc:2792 msgid "Exceed 50 anchor points" msgstr "Превышать 50 точек привязки" -#: fotoxx-14.03.cc:2951 +#: fotoxx-14.04.cc:2975 msgid "load curve from a file" msgstr "Загрузить кривую из файла" -#: fotoxx-14.03.cc:3026 +#: fotoxx-14.04.cc:3050 msgid "save curve to a file" msgstr "Сохранить кривую в файл" -#: fotoxx-14.03.cc:3101 +#: fotoxx-14.04.cc:3125 msgid "Too many edits, please save image" msgstr "Слишком много изменений, пожалуйста сохраните изображение" -#: fotoxx-14.03.cc:3116 +#: fotoxx-14.04.cc:3140 msgid "" "Select area not active.\n" "Continue?" @@ -3794,288 +3852,292 @@ "Выбранная область не активна.\n" "Продолжить?" -#: fotoxx-14.03.cc:3503 +#: fotoxx-14.04.cc:3527 msgid "This action will discard changes\n" msgstr "Это действие отменит изменения\n" -#: fotoxx-14.03.cc:3504 fotoxx.h:1026 +#: fotoxx-14.04.cc:3528 fotoxx.h:1031 msgid "Keep" msgstr "Оставить" -#: fotoxx-14.03.cc:3505 +#: fotoxx-14.04.cc:3529 msgid "Discard" msgstr "Сбросить" -#: fotoxx-14.03.cc:3519 fotoxx-14.03.cc:3539 +#: fotoxx-14.04.cc:3543 fotoxx-14.04.cc:3563 msgid "prior function active" msgstr "активна предыдущая функция" -#: fotoxx.h:983 +#: fotoxx.h:988 msgid "Add" msgstr "Добавить" -#: fotoxx.h:984 +#: fotoxx.h:989 msgid "Add All" msgstr "Добавить все" -#: fotoxx.h:986 +#: fotoxx.h:991 msgid "Amount" msgstr "Размер" -#: fotoxx.h:987 +#: fotoxx.h:992 msgid "Angle" msgstr "Угол" -#: fotoxx.h:988 +#: fotoxx.h:993 msgid "Apply" msgstr "Применить" -#: fotoxx.h:989 +#: fotoxx.h:994 msgid "Autocomplete" msgstr "Автозаполнение" -#: fotoxx.h:990 +#: fotoxx.h:995 msgid "Black" msgstr "Черный" -#: fotoxx.h:991 +#: fotoxx.h:996 msgid "Blend Width" msgstr "Ширина области смешивания" -#: fotoxx.h:994 +#: fotoxx.h:999 msgid "Browse" msgstr "Обзор" -#: fotoxx.h:995 +#: fotoxx.h:1000 msgid "Cancel" msgstr "Отмена" -#: fotoxx.h:996 +#: fotoxx.h:1001 msgid "center" msgstr "Центр" -#: fotoxx.h:997 +#: fotoxx.h:1002 msgid "Choose" msgstr "Выбор" -#: fotoxx.h:998 +#: fotoxx.h:1003 msgid "Clear" msgstr "Очистить" -#: fotoxx.h:1002 +#: fotoxx.h:1007 msgid "Create" msgstr "" -#: fotoxx.h:1003 +#: fotoxx.h:1008 msgid "Curve File:" msgstr "Файл кривой:" -#: fotoxx.h:1004 +#: fotoxx.h:1009 msgid "Cut" msgstr "Вырезать" -#: fotoxx.h:1005 +#: fotoxx.h:1010 msgid "Delete" msgstr "Удалить" -#: fotoxx.h:1007 -msgid "Bdist" +#: fotoxx.h:1012 +msgid "Dist" msgstr "" -#: fotoxx.h:1008 +#: fotoxx.h:1013 msgid "Done" msgstr "Готово" -#: fotoxx.h:1009 +#: fotoxx.h:1014 msgid "edge" msgstr "Кромка" -#: fotoxx.h:1010 +#: fotoxx.h:1015 msgid "Edit" msgstr "Редактировать" -#: fotoxx.h:1012 +#: fotoxx.h:1017 msgid "Erase" msgstr "Стереть" -#: fotoxx.h:1013 +#: fotoxx.h:1018 msgid "Fetch" msgstr "Получить" -#: fotoxx.h:1014 +#: fotoxx.h:1019 msgid "Find" msgstr "Поиск" -#: fotoxx.h:1015 +#: fotoxx.h:1020 msgid "Finish" msgstr "Финиш" -#: fotoxx.h:1016 +#: fotoxx.h:1021 msgid "Font" msgstr "Шрифт" -#: fotoxx.h:1017 +#: fotoxx.h:1022 msgid "Geotags" msgstr "Геотеги" -#: fotoxx.h:1019 +#: fotoxx.h:1024 msgid "Grid" msgstr "Сетка" -#: fotoxx.h:1023 +#: fotoxx.h:1028 msgid "Images" msgstr "Изображения" -#: fotoxx.h:1024 +#: fotoxx.h:1029 msgid "Insert" msgstr "Вставить" -#: fotoxx.h:1027 +#: fotoxx.h:1032 msgid "limit" msgstr "Лимит" -#: fotoxx.h:1028 +#: fotoxx.h:1033 msgid "Make" msgstr "Создать" -#: fotoxx.h:1030 +#: fotoxx.h:1035 msgid "Map" msgstr "Карта" -#: fotoxx.h:1031 +#: fotoxx.h:1036 msgid "Max" msgstr "" -#: fotoxx.h:1032 +#: fotoxx.h:1037 msgid "Negative" msgstr "Негатив" -#: fotoxx.h:1033 +#: fotoxx.h:1038 msgid "New" msgstr "Новый" -#: fotoxx.h:1035 zfuncs.cc:8589 +#: fotoxx.h:1040 zfuncs.cc:8589 msgid "No" msgstr "Нет" -#: fotoxx.h:1036 +#: fotoxx.h:1041 msgid "no images" msgstr "нет изображений" -#: fotoxx.h:1037 +#: fotoxx.h:1042 msgid "no selection" msgstr "ничего не выбрано" -#: fotoxx.h:1038 +#: fotoxx.h:1043 msgid "OK" msgstr "ОК" -#: fotoxx.h:1040 +#: fotoxx.h:1045 msgid "Open RAW File" msgstr "Открыть raw файл" -#: fotoxx.h:1042 +#: fotoxx.h:1047 msgid "Pause" msgstr "Пауза" -#: fotoxx.h:1043 +#: fotoxx.h:1048 msgid "Percent" msgstr "Процент" -#: fotoxx.h:1045 +#: fotoxx.h:1050 msgid "Presets" msgstr "Предустановленные" -#: fotoxx.h:1047 +#: fotoxx.h:1052 msgid "Proceed" msgstr "Продолжить" -#: fotoxx.h:1049 +#: fotoxx.h:1054 msgid "range" msgstr "Диапазон" -#: fotoxx.h:1052 +#: fotoxx.h:1057 msgid "Reduce" msgstr "Уменьшить" -#: fotoxx.h:1053 +#: fotoxx.h:1058 msgid "Remove" msgstr "Удалить" -#: fotoxx.h:1055 +#: fotoxx.h:1060 msgid "Reset" msgstr "Сбросить" -#: fotoxx.h:1056 +#: fotoxx.h:1061 msgid "Rotate" msgstr "Повернуть" -#: fotoxx.h:1058 +#: fotoxx.h:1063 msgid "Unknown file type, save as tiff/jpeg/png to edit" msgstr "Неизвестный тип файла, сохраните как tiff/jpeg/png для редактирования" -#: fotoxx.h:1059 +#: fotoxx.h:1064 msgid "Search" msgstr "Поиск" -#: fotoxx.h:1063 +#: fotoxx.h:1065 +msgid "Seconds" +msgstr "Cекунд" + +#: fotoxx.h:1069 msgid "Size" msgstr "Размер" -#: fotoxx.h:1064 +#: fotoxx.h:1070 msgid "Start" msgstr "Старт" -#: fotoxx.h:1065 +#: fotoxx.h:1071 msgid "Strength" msgstr "" -#: fotoxx.h:1066 +#: fotoxx.h:1072 msgid "Threshold" msgstr "Порог" -#: fotoxx.h:1067 +#: fotoxx.h:1073 #, c-format msgid "exceed %d files" msgstr "Превышено %d файлов" -#: fotoxx.h:1069 +#: fotoxx.h:1075 msgid "Trim" msgstr "Обрезка" -#: fotoxx.h:1070 +#: fotoxx.h:1076 msgid "Undo All" msgstr "Отменить все" -#: fotoxx.h:1071 +#: fotoxx.h:1077 msgid "Undo Last" msgstr "Отменить последнее" -#: fotoxx.h:1073 +#: fotoxx.h:1079 msgid "Unfinish" msgstr "Не финиш" -#: fotoxx.h:1075 +#: fotoxx.h:1081 msgid "View" msgstr "Вид" -#: fotoxx.h:1076 +#: fotoxx.h:1082 msgid "Web" msgstr "Веб" -#: fotoxx.h:1077 +#: fotoxx.h:1083 msgid "White" msgstr "Белый" -#: fotoxx.h:1079 +#: fotoxx.h:1085 msgid "x-offset" msgstr "x-смещение" -#: fotoxx.h:1080 +#: fotoxx.h:1086 msgid "y-offset" msgstr "y-смещение" -#: fotoxx.h:1081 zfuncs.cc:8589 +#: fotoxx.h:1087 zfuncs.cc:8589 msgid "Yes" msgstr "Да" @@ -4229,403 +4291,3 @@ #: zfuncs.cc:10232 msgid "add parameter" msgstr "Добавить параметр" - -#~ msgid "Adjust White Balance" -#~ msgstr "Настроить баланс белого" - -#~ msgid "Click white or gray image location" -#~ msgstr "Кликните по белому или серому фрагменту изображения" - -#~ msgid "warmer" -#~ msgstr "теплее" - -#~ msgid "cooler" -#~ msgstr "холоднее" - -#~ msgid "reduce" -#~ msgstr "Уменьшить" - -#~ msgid "outline threshold" -#~ msgstr "Порог контура" - -#~ msgid "outline width" -#~ msgstr "Ширина контура" - -#~ msgid "image brightness" -#~ msgstr "Яркость изображения" - -#~ msgid "old name" -#~ msgstr "Старое имя" - -#~ msgid "new name" -#~ msgstr "новое имя" - -#~ msgid "Choose top image directory" -#~ msgstr "Выберите каталог изображений верхнего уровня" - -#~ msgid "portrait" -#~ msgstr "портрет" - -#~ msgid "landscape" -#~ msgstr "ландшафт" - -#~ msgid "customize" -#~ msgstr "Настроить" - -#~ msgid "Favorites Menu" -#~ msgstr "Пользовательское меню" - -#~ msgid "Synch Files, Settings, Collections, Batch Funcs ..." -#~ msgstr "Синхронизация Файлов, Настроек, Коллекций, Пакетов..." - -#~ msgid "Synchronize Files" -#~ msgstr "Синхронизация файлов" - -#~ msgid "Batch Rename" -#~ msgstr "Групповое переименование" - -#~ msgid "Rename multiple image files" -#~ msgstr "Пакетное переименование файлов изображений" - -#~ msgid "Convert resize, move multiple files" -#~ msgstr "Изменение размера, перемещение нескольких файлов" - -#~ msgid "Brightness/Contrast/Color" -#~ msgstr "Яркость/контраст/цветность" - -#~ msgid "Adjust contrast using a gamma curve" -#~ msgstr "Настройка контрастности используя кривую гаммы" - -#~ msgid "Gamma Curves" -#~ msgstr "Кривая гаммы" - -#~ msgid "Leverage Edits" -#~ msgstr "Нелинейное редактирование" - -#~ msgid "Leverage edits by brightness or color" -#~ msgstr "Усиление/ослабление функции в зависимости от яркости или цвета" - -#~ msgid "Click on a white/gray area to fix color tint" -#~ msgstr "Клик на белом/сером для коррекции цвета" - -#~ msgid "White Balance" -#~ msgstr "Баланс белого" - -#~ msgid "Brightness/Color" -#~ msgstr "Яркость/цветность" - -#~ msgid "" -#~ "Metadata index is missing.\n" -#~ "Use Tools > Synchronize Files." -#~ msgstr "" -#~ "Нет индекса метаданных:\n" -#~ "Используйте Инструменты > Синхронизация файлов." - -#~ msgid "create" -#~ msgstr "Создать" - -#~ msgid "delete" -#~ msgstr "Удалить" - -#~ msgid "edge detection" -#~ msgstr "Обнаружение кромки" - -#~ msgid "cycles" -#~ msgstr "Циклы" - -#~ msgid "small-steps" -#~ msgstr "Мелкие шаги" - -#~ msgid "Saturation" -#~ msgstr "Насыщенность" - -#~ msgid " reset 1 " -#~ msgstr "Сбросить 1" - -#~ msgid "reset all" -#~ msgstr "Сбросить все" - -#~ msgid "previous" -#~ msgstr "предыдущий" - -#~ msgid "adjust image gamma" -#~ msgstr "Регулировать гамму изображения" - -#~ msgid "Edit Function Amplifier" -#~ msgstr "Усилитель функций редактирования" - -#~ msgid "minimum" -#~ msgstr "минимум" - -#~ msgid "maximum" -#~ msgstr "максимум" - -#~ msgid "" -#~ "Synchronize Files makes gallery windows fast \n" -#~ "and enables metadata functions to work correctly.\n" -#~ msgstr "" -#~ "Синхронизация файлов делает окна галереи быстрее \n" -#~ "и обеспечивает правильную работу функций метаданных. \n" - -#~ msgid "no top image directory is defined" -#~ msgstr "Не определен каталог верхнего уровня" - -#~ msgid "top image directory is invalid" -#~ msgstr "Некорректный каталог верхнего уровня" - -#~ msgid "thumbnail directory is invalid" -#~ msgstr "Некорректный каталог миниатюр" - -#~ msgid "no search index file is present" -#~ msgstr " Индексный файл отсутствует" - -#~ msgid "last file sync time is unknown" -#~ msgstr "Время последней синхронизации неизвестно" - -#~ msgid "new/modified files are present" -#~ msgstr "Присутствуют новые/измененные файлы" - -#~ msgid "file sync disabled" -#~ msgstr "синхронизации файлов отключена" - -#~ msgid "file sync not needed" -#~ msgstr "синхронизация не требуется" - -#~ msgid "Top Image Directories:" -#~ msgstr "Каталог изображений верхнего уровня:" - -#~ msgid "Use file sync function (recommended)" -#~ msgstr "Использовать функцию синхронизации файлов (рекомендуется)" - -#~ msgid "(if NO, metadata functions are disabled)" -#~ msgstr "(если Нет, функции метаданных отключены)" - -#~ msgid "Thumbnail Options:" -#~ msgstr "Опции миниатюр:" - -#~ msgid "None (galleries are slow)" -#~ msgstr "Нет (галереи медленные)" - -#~ msgid "Use hidden directories with images" -#~ msgstr "Использовать скрытые каталоги с изображениями" - -#~ msgid "Use Directory" -#~ msgstr "Использовать каталог" - -#~ msgid "Initialize Everything" -#~ msgstr "Инициализировать все" - -#~ msgid "File sync is necessary. Cancel anyway?" -#~ msgstr "Требуется синхронизация файлов. Все равно отменить?" - -#~ msgid "directory is invalid" -#~ msgstr "Неверный каталог" - -#~ msgid "select a thumbnail option" -#~ msgstr "Выбор варианта миниатюр" - -#~ msgid "thumbnail directory cannot be under top directory" -#~ msgstr "Каталог миниатюр не может размещаться в каталоге верхнего уровня" - -#~ msgid "Synchronize Files (may need some time)" -#~ msgstr "Синхронизация файлов... пожалуйста подождите..." - -#~ msgid "delete all thumbnails" -#~ msgstr "удаляются все миниатюры" - -#~ msgid "delete orphan thumbnails" -#~ msgstr "удаляются неиспользуемые миниатюры" - -#~ msgid "%d orphan thumbnails deleted \n" -#~ msgstr "%d неиспользуемых миниатюр удалено \n" - -#~ msgid "create missing and update stale thumbnails" -#~ msgstr "создание отсутствующих и обновление устаревших миниатюр" - -#~ msgid "%d thumbnails created, %d errors \n" -#~ msgstr "%d миниатюр создано, %d ошибок \n" - -#~ msgid "no search index file is in use" -#~ msgstr "индексный файл не используется" - -#~ msgid "rebuild search index" -#~ msgstr "перестроение индекса поиска" - -#~ msgid "%d current index records found \n" -#~ msgstr "найдено %d индексных записей \n" - -#~ msgid "find all image files and build index records" -#~ msgstr "найти все изображения и построить индекс" - -#~ msgid "too many image files" -#~ msgstr "слишком много изображений" - -#~ msgid "found %d image files \n" -#~ msgstr "найдено %d изображений \n" - -#~ msgid "merging old and new index records" -#~ msgstr "слияние старого и нового индексов" - -#~ msgid "files found in current index recs: %d \n" -#~ msgstr "найдено файлов в текущем индексе: %d \n" - -#~ msgid "KILLED" -#~ msgstr "ОСТАНОВ" - -#~ msgid "Show hidden files" -#~ msgstr "Показать скрытые файлы" - -#~ msgid "arrow keys" -#~ msgstr "Клавиши стрелок" - -#~ msgid "new base name" -#~ msgstr "Новое базовое имя" - -#~ msgid "starting sequence" -#~ msgstr "Начальное значение" - -#~ msgid "increment" -#~ msgstr "Приращение" - -#~ msgid "new file already exists:" -#~ msgstr "Новый файл уже существует:" - -#~ msgid "Rename failed:" -#~ msgstr "Переименование не удалось:" - -#~ msgid "base name / sequence / increment not reasonable" -#~ msgstr "Базовое имя / последовательность / увеличение не приемлемо" - -#~ msgid "new file type" -#~ msgstr "Новый тип файла" - -#~ msgid "max. width" -#~ msgstr "Макс. ширина" - -#~ msgid "overwrite" -#~ msgstr "переписать" - -#~ msgid "copy to location" -#~ msgstr "скопировать в каталог" - -#~ msgid "move to location" -#~ msgstr "Переместить" - -#~ msgid "delete metadata" -#~ msgstr "удалить метаданные" - -#~ msgid "upright rotation" -#~ msgstr "поворот портретных" - -#~ msgid "overwrite files?" -#~ msgstr "переписать файлы?" - -#~ msgid "overwrite files? (max. %d x %d)" -#~ msgstr "переписать файлы? (макс. %d x %d)" - -#~ msgid "location is not a valid directory" -#~ msgstr "Новое местоположение не является каталогом" - -#~ msgid "" -#~ "copy files? \n" -#~ " to location %s" -#~ msgstr "" -#~ "Копировать файлы? \n" -#~ " в местоположение %s" - -#~ msgid "" -#~ "copy files? (max. %d x %d) \n" -#~ " to location %s" -#~ msgstr "" -#~ "Копировать файлы? (макс. %d x %d) \n" -#~ " в местоположение %s" - -#~ msgid "" -#~ "\n" -#~ " and delete originals" -#~ msgstr "" -#~ "\n" -#~ " и удалить оригиналы" - -#~ msgid "" -#~ "First time Fotoxx startup. \n" -#~ "Latest version: http://www.kornelix.com/fotoxx \n" -#~ "File sync process will begin (may need some time) \n" -#~ msgstr "" -#~ "Первый запуск fotoxx. \n" -#~ "Последняя версия: http://www.kornelix.com/fotoxx \n" -#~ "Начинается синхронизация файлов (требуется время) \n" - -#, fuzzy -#~ msgid " (reduced)" -#~ msgstr "(уменьшено)" - -#~ msgid " edits: %d" -#~ msgstr "редакций: %d" - -#~ msgid " area active" -#~ msgstr "область активна" - -#~ msgid " dialog open" -#~ msgstr "открыт диалог" - -#~ msgid " function busy" -#~ msgstr "работает функция" - -#~ msgid " file sync busy" -#~ msgstr "синхронизируются файлы" - -#~ msgid " menu locked" -#~ msgstr "меню заблокировано" - -#~ msgid "curve file is invalid" -#~ msgstr "Файл кривой поврежден" - -#~ msgid "curve file has different no. of curves" -#~ msgstr "Файл кривой отличается от требуемой кривой" - -#~ msgid "file sync active" -#~ msgstr "синхронизация файлов активна" - -#~ msgid "histogram" -#~ msgstr "Гистограмма" - -#~ msgid "search index missing" -#~ msgstr "нет индекса поиска" - -#~ msgid "open" -#~ msgstr "Открыть" - -#~ msgid "choose" -#~ msgstr "Выбрать" - -#~ msgid "open folder" -#~ msgstr "Открыть каталог" - -#~ msgid "" -#~ "warning: real memory %d MB < required %d MB \n" -#~ "response time may become very long \n" -#~ msgstr "" -#~ "Внимание: памяти доступно %d МБ < требуемых %d МБ \n" -#~ "время отклика может значительно возрасти \n" - -#~ msgid "page-flip" -#~ msgstr "перелистывание" - -#~ msgid "shift-left" -#~ msgstr "левый шифт" - -#~ msgid "(enter keys)" -#~ msgstr "(нажмите комбинацию клавиш)" - -#~ msgid "Previous Image Viewed" -#~ msgstr "Последнее просмотренное изображение" - -#~ msgid "invalid thumbnails directory: %s" -#~ msgstr "неправильный каталог миниатюр: %s" - -#~ msgid "Edit translations while using Fotoxx" -#~ msgstr "Редактировать перевод в процессе использования Fotoxx" - -#~ msgid "Edit Translations" -#~ msgstr "Редактировать перевод" diff -Nru fotoxx-14.03/locales/translate-sv.po fotoxx-14.04/locales/translate-sv.po --- fotoxx-14.03/locales/translate-sv.po 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/locales/translate-sv.po 1970-01-01 00:00:00.000000000 +0000 @@ -1,5038 +0,0 @@ -# translation of fotoxx.po to svenska -# Swedish translations for fotoxx package -# Svenska översättningar för paket fotoxx. -# Copyright (C) 2010 THE fotoxx'S COPYRIGHT HOLDER -# This file is distributed under the same license as the fotoxx package. -# -# progdev , 2010. -# Peter Landgren , 2010, 2011, 2012, 2013. -msgid "" -msgstr "" -"Project-Id-Version: fotoxx\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-01 08:51+0100\n" -"PO-Revision-Date: 2013-02-04 15:51+0100\n" -"Last-Translator: Peter Landgren \n" -"Language-Team: Swedish \n" -"Language: sv\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 1.0\n" - -#: f.area.cc:56 -msgid "Select Area for Edits" -msgstr "Välj område till redigering" - -#: f.area.cc:57 f.retouch.cc:2051 -msgid "Press F1 for help" -msgstr "Tryck F1 efter hjälp" - -#: f.area.cc:66 -msgid "" -"Select Area not supported \n" -"by this edit function" -msgstr "" -"Val av yta stöds ej\n" -"av denna redigeringsfunktion" - -#: f.area.cc:95 -msgid "select rectangle" -msgstr "välj rektangel" - -#: f.area.cc:96 -msgid "select ellipse" -msgstr "välj ellips" - -#: f.area.cc:99 -msgid "freehand draw" -msgstr "frihandsritning" - -#: f.area.cc:100 -msgid "follow edge" -msgstr "följ kant" - -#: f.area.cc:101 -msgid "draw/replace" -msgstr "ritning/byt ut" - -#: f.area.cc:104 -msgid "select area within mouse" -msgstr "välj område med mus" - -#: f.area.cc:107 -msgid "select one matching color within mouse" -msgstr "välj en matchande färg med mus" - -#: f.area.cc:111 -msgid "select all matching colors within mouse" -msgstr "välj alla matchande färger med mus" - -#: f.area.cc:115 f.retouch.cc:2086 -msgid "mouse radius" -msgstr "musradie" - -#: f.area.cc:118 -msgid "match level %" -msgstr "matchningsnivå %" - -#: f.area.cc:123 -msgid "search range" -msgstr "välj område" - -#: f.area.cc:125 -msgid "firewall" -msgstr "brandvägg" - -#: f.area.cc:129 -msgid "Area Edge Blend Width" -msgstr "" - -#: f.area.cc:132 -msgid "Edge Creep" -msgstr "" - -#: f.area.cc:309 f.area.cc:492 -#, c-format -msgid "exceed %d edits" -msgstr "överskrid %d redigeringar" - -#: f.area.cc:1316 -msgid "" -"Click one time inside each enclosed area \n" -"(possible gaps in the outline will be found). \n" -"Press F1 for help." -msgstr "" -"Klicka en gång innanför varje slutet område\n" -"(möjliga gap i kommer att hittas). \n" -"Tryck F1 för hjälp." - -#: f.area.cc:1345 -msgid "finish area" -msgstr "avslutande område" - -#: f.area.cc:1383 -msgid "searching" -msgstr "sökning" - -#: f.area.cc:1415 -msgid "outline has a gap" -msgstr "skissen har ett gap" - -#: f.area.cc:1419 -msgid "success" -msgstr "lyckades" - -#: f.area.cc:1527 f.area.cc:1554 -#, c-format -msgid "found %d pixels" -msgstr "hittade %d pixlar" - -#: f.area.cc:1841 f.area.cc:1858 f.area.cc:1878 f.area.cc:2185 f.area.cc:2253 -msgid "the area is not finished" -msgstr "området är ej avslutat" - -#: f.area.cc:1972 -msgid "Edge calculation in progress" -msgstr "Kantberäkning pågår" - -#: f.area.cc:1983 -msgid "Area Edge Calc" -msgstr "Ytkantsberäkning" - -#: f.area.cc:2367 -msgid "position with mouse click/drag" -msgstr "positionera med musklick/drag" - -#: f.area.cc:2394 -msgid "Paste Image" -msgstr "Klistra in bild" - -#: f.area.cc:2399 -msgid "resize" -msgstr "ändra storlek" - -#: f.area.cc:2702 -msgid "load select area from a file" -msgstr "ladda valt område från en fil" - -#: f.area.cc:2756 -msgid "save select area to a file" -msgstr "spara valt område till en fil" - -#: f.bend.cc:72 f.menus.cc:246 -msgid "Unbend" -msgstr "Utsläta" - -#: f.bend.cc:80 f.image.cc:1655 -msgid "vertical" -msgstr "vertikal" - -#: f.bend.cc:81 f.image.cc:1654 -msgid "horizontal" -msgstr "horisontell" - -#: f.bend.cc:82 -msgid "linear" -msgstr "linjär" - -#: f.bend.cc:85 -msgid "curved" -msgstr "böjd" - -#: f.bend.cc:340 -msgid "" -" Click the four corners of a tetragon area. Press [apply]. \n" -" The image is warped to make the tetragon into a rectangle." -msgstr "" -"Klicka på de fyra hörnen i en tetragobyta. Tryck [tillämpa].\n" -"Bilden kommer att förvrängas genom att göra tetragonen till en rektangel." - -#: f.bend.cc:353 f.menus.cc:247 -msgid "Keystone Correction" -msgstr "" - -#: f.bend.cc:520 -msgid "must have 4 corners" -msgstr "måste ha fyra hörn" - -#: f.bend.cc:649 -msgid "Flatten Book Page Photo" -msgstr "Jämna ut boksidesbilder" - -#: f.bend.cc:650 -msgid "" -"Trim image to isolate one page. \n" -"Map top and bottom edges with \n" -"4+ mouse clicks, then flatten: " -msgstr "" -"Trimma bild för att isolera en sida. \n" -"Map topp och bottenkanter med \n" -"4+ musklick, sen jämna ut: " - -#: f.bend.cc:653 -msgid "Stretch curved-down surfaces:" -msgstr "Räta ut nerböjda ytor" - -#: f.bend.cc:701 -msgid "flatten" -msgstr "jämna ut" - -#: f.bend.cc:707 -msgid "top:" -msgstr "topp:" - -#: f.bend.cc:710 -msgid "bottom:" -msgstr "botten:" - -#: f.bend.cc:1092 -msgid "" -" Select an area to warp using select area function. \n" -" Press [start warp] and pull area with mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, select another area or press [done]." -msgstr "" -"Välj ett område genom att välja en områdesfunktion. \n" -"Tryck [börja förvräng] och drag ytan med mus. \n" -"Gör flera musdrag tills du när nöjd. \n" -"När du är klar, välj ett annat område eller tryck [klar]." - -#: f.bend.cc:1105 f.menus.cc:249 -msgid "Warp area" -msgstr "Vik ihop yta" - -#: f.bend.cc:1110 -msgid "start warp" -msgstr "börja förvrängning" - -#: f.bend.cc:1165 -msgid "no active Select Area" -msgstr "ingen aktiv utvald yta" - -#: f.bend.cc:1506 f.bend.cc:1816 -msgid "" -" Pull an image position using the mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, press [done]." -msgstr "" -" Drag i ett bildhörn med musen.\n" -" Gör flera musdragningar tills du är nöjd.\n" -" När du är klar, tryck [Avsluta]." - -#: f.bend.cc:1520 f.menus.cc:250 -msgid "Warp curved" -msgstr "Vik ihop kurva" - -#: f.bend.cc:1529 -msgid "warp span" -msgstr "" - -#: f.bend.cc:1830 f.menus.cc:251 -msgid "Warp linear" -msgstr "Vik ihop linjärt" - -#: f.bend.cc:2149 -msgid "" -" Pull on an image corner using the mouse. \n" -" Make multiple mouse pulls until satisfied. \n" -" When finished, press [done]." -msgstr "" -" Drag i ett bildhörn med musen.\n" -" Gör flera musdragningar tills du är nöjd.\n" -" När du är klar, tryck [Avsluta]." - -#: f.bend.cc:2161 f.menus.cc:252 -msgid "Warp affine" -msgstr "Förvräng affine" - -#: f.color.cc:64 f.menus.cc:239 -msgid "Shift Colors" -msgstr "" - -#: f.color.cc:285 f.menus.cc:240 -msgid "Color Mode" -msgstr "Färgläge" - -#: f.color.cc:288 -msgid "black/white positive" -msgstr "svart-vit positiv" - -#: f.color.cc:289 -msgid "black/white negative" -msgstr "svart/vit negativ" - -#: f.color.cc:290 -msgid "color positive" -msgstr "färg positiv" - -#: f.color.cc:291 -msgid "color negative" -msgstr "färg negativ" - -#: f.color.cc:292 -msgid "sepia" -msgstr "sepia" - -#: f.color.cc:434 -msgid "Change Color Profile" -msgstr "Ändra färgprofil" - -#: f.color.cc:438 -msgid "input profile" -msgstr "inprofil" - -#: f.color.cc:442 -msgid "output profile" -msgstr "utprofil" - -#: f.color.cc:459 -msgid "color profile" -msgstr "färgprofil" - -#: f.color.cc:500 f.color.cc:506 -#, c-format -msgid "unknown cms profile %s" -msgstr "okänd cms-profil %s" - -#: f.color.cc:580 -msgid "Color Match Images" -msgstr "Färgmatcha bilder" - -#: f.color.cc:607 -msgid "mouse radius for color sample" -msgstr "musradie för färgprov" - -#: f.color.cc:609 f.color.cc:614 f.file.cc:4220 f.menus.cc:208 f.menus.cc:297 -#: f.menus.cc:433 fotoxx.h:1039 -msgid "Open" -msgstr "Öppna" - -#: f.color.cc:610 -msgid "image for source color" -msgstr "bild för källfärg" - -#: f.color.cc:612 -msgid "click on image to get source color" -msgstr "klicka på bilden för att få en källfärg" - -#: f.color.cc:615 -msgid "image to set matching color" -msgstr "bild för att ställa in matchningsfärg" - -#: f.color.cc:617 -msgid "click on image to set matching color" -msgstr "klicka på bild för att ställa in matchningsfärg" - -#: f.color.cc:674 -msgid "select source image color first" -msgstr "välj källbildsfärg först" - -#: f.color.cc:872 f.tools.cc:5665 -msgid "Click image to select pixels." -msgstr "Klicka på bild för att välja pixlar" - -#: f.color.cc:911 f.menus.cc:243 -msgid "Revise RGB" -msgstr "Revidera RGB" - -#: f.color.cc:923 -msgid "Metric:" -msgstr "Metrisk:" - -#: f.color.cc:978 -msgid "Blend" -msgstr "Ton" - -#: f.color.cc:1373 -msgid "+Brightness" -msgstr "" - -#: f.color.cc:1374 -msgid "+Red -Cyan" -msgstr "+Röd -Cyan" - -#: f.color.cc:1375 -msgid "+Green -Magenta" -msgstr "+Grön -Magenta" - -#: f.color.cc:1376 -msgid "+Blue -Yellow" -msgstr "+Blå -Gul" - -#: f.color.cc:1382 fotoxx.h:1050 -msgid "Red" -msgstr "Röd" - -#: f.color.cc:1383 fotoxx.h:1018 -msgid "Green" -msgstr "Grön" - -#: f.color.cc:1384 fotoxx.h:992 -msgid "Blue" -msgstr "Blå" - -#: f.combine.cc:1943 f.combine.cc:2570 f.combine.cc:3234 f.combine.cc:3772 -msgid "Select 2 to 9 files" -msgstr "Välj 2 till 9 filer" - -#: f.combine.cc:1964 f.combine.cc:2591 f.combine.cc:3255 f.combine.cc:3793 -msgid "Images are not all the same size" -msgstr "Alla bilder har ej samma storlek" - -#: f.combine.cc:2309 -msgid "Adjust Image Contributions" -msgstr "Justera bildbidrag" - -#: f.combine.cc:2312 -msgid "dark pixels" -msgstr "mörka pixlar" - -#: f.combine.cc:2314 -msgid "light pixels" -msgstr "ljusa pixlar" - -#: f.combine.cc:2316 -msgid "file:" -msgstr "fil:" - -#: f.combine.cc:2828 -msgid "Paint and Warp Image" -msgstr "Måla och vik ihop bild" - -#: f.combine.cc:2831 f.combine.cc:3485 f.combine.cc:4902 f.combine.cc:5801 -#: f.effects.cc:3478 f.menus.cc:60 f.menus.cc:121 -msgid "Image" -msgstr "bild" - -#: f.combine.cc:2835 f.combine.cc:6710 -msgid "paint" -msgstr "måla" - -#: f.combine.cc:2836 -msgid "warp" -msgstr "vik ihop" - -#: f.combine.cc:3483 -msgid "Select and Paint Image" -msgstr "Välj och färglägg bild" - -#: f.combine.cc:3965 -msgid "Adjust Pixel Composition" -msgstr "Justera pixelsammansättning" - -#: f.combine.cc:3967 -msgid "use average" -msgstr "använd medelvärde" - -#: f.combine.cc:3968 -msgid "use median" -msgstr "använd medianvärde" - -#: f.combine.cc:3970 -msgid "omit low pixel" -msgstr "uteslut lågt pixel" - -#: f.combine.cc:3971 -msgid "omit high pixel" -msgstr "utslut högt pixel" - -#: f.combine.cc:4221 f.combine.cc:5119 -msgid "Select 2 to 4 files" -msgstr "Välj 2 till 4 filer" - -#: f.combine.cc:4297 -msgid "" -"Drag images into rough alignment.\n" -"To rotate, drag from lower edge." -msgstr "" -"Drag bilder till grov passning\n" -"Drag i underkant för rotera." - -#: f.combine.cc:4299 f.combine.cc:5197 -msgid "Search for lens mm and bow" -msgstr "Sök efter lins och kräkning" - -#: f.combine.cc:4341 f.combine.cc:5239 -msgid "Pre-align Images" -msgstr "Rad upp bilder preliminärt" - -#: f.combine.cc:4345 f.combine.cc:5243 -msgid "lens mm" -msgstr "lins mm" - -#: f.combine.cc:4349 f.combine.cc:5247 -msgid "lens bow" -msgstr "linskurva" - -#: f.combine.cc:4351 f.combine.cc:5249 -msgid "no curve (scanned image)" -msgstr "ingen kurva (skannad bild)" - -#: f.combine.cc:4353 f.combine.cc:5251 f.menus.cc:214 f.menus.cc:473 -msgid "Resize" -msgstr "Ändra storlek" - -#: f.combine.cc:4354 f.combine.cc:5252 -msgid "resize window" -msgstr "ändra fänsterstorlek" - -#: f.combine.cc:4395 f.combine.cc:5293 -msgid "use two images only" -msgstr "använd bara två bilder" - -#: f.combine.cc:4416 f.combine.cc:4623 f.combine.cc:4818 f.combine.cc:5314 -#: f.combine.cc:5521 f.combine.cc:5716 -msgid "Too little overlap, cannot align" -msgstr "För lite överlappning, kan ej rada upp" - -#: f.combine.cc:4893 f.combine.cc:5792 -msgid "Match Brightness and Color" -msgstr "Matcha ljushet och färg" - -#: f.combine.cc:4917 f.combine.cc:5816 -msgid "auto color" -msgstr "automatisk färg" - -#: f.combine.cc:4918 f.combine.cc:5817 -msgid "file color" -msgstr "filfärg" - -#: f.combine.cc:5195 -msgid "" -"Drag images into rough alignment.\n" -"To rotate, drag from right edge." -msgstr "" -"Drag bilder till grov passninf.\n" -"Rotera genom att dra från höger kant." - -#: f.combine.cc:6081 -msgid "Mashup layout and background image" -msgstr "" - -#: f.combine.cc:6110 -msgid "choose an image file" -msgstr "" - -#: f.combine.cc:6111 -msgid "use current image file" -msgstr "" - -#: f.combine.cc:6112 -msgid "open a Mashup project file" -msgstr "" - -#: f.combine.cc:6113 -msgid "specify layout size and color" -msgstr "" - -#: f.combine.cc:6141 -msgid "choose layout file" -msgstr "" - -#: f.combine.cc:6204 -msgid "Edit Images" -msgstr "" - -#: f.combine.cc:6205 f.combine.cc:7277 -msgid "Edit Text" -msgstr "" - -#: f.combine.cc:6206 f.combine.cc:6583 -msgid "Save Project" -msgstr "" - -#: f.combine.cc:6209 -msgid "add or edit images" -msgstr "" - -#: f.combine.cc:6210 -msgid "add or edit text" -msgstr "" - -#: f.combine.cc:6211 -msgid "save project data" -msgstr "" - -#: f.combine.cc:6212 -msgid "project complete" -msgstr "" - -#: f.combine.cc:6213 -msgid "cancel project" -msgstr "" - -#: f.combine.cc:6263 -msgid "delete project file?" -msgstr "" - -#: f.combine.cc:6316 -msgid "Open Project" -msgstr "" - -#: f.combine.cc:6337 -#, c-format -msgid "" -"layout image file missing: \n" -" %s" -msgstr "" - -#: f.combine.cc:6355 -#, c-format -msgid "" -"overlay image file missing: \n" -" %s" -msgstr "" - -#: f.combine.cc:6367 -#, c-format -msgid "" -"area info file missing: \n" -" %s" -msgstr "" - -#: f.combine.cc:6544 -msgid "project file is defective" -msgstr "" - -#: f.combine.cc:6659 -msgid "Click image to select, drag image to move." -msgstr "" - -#: f.combine.cc:6688 -msgid "current image:" -msgstr "" - -#: f.combine.cc:6693 -msgid "Scale" -msgstr "" - -#: f.combine.cc:6701 -msgid "Base Transparency" -msgstr "" - -#: f.combine.cc:6705 -msgid "Edge Blend" -msgstr "" - -#: f.combine.cc:6709 -msgid "Var. Transparency" -msgstr "" - -#: f.combine.cc:6821 -msgid "Paint Image Transparencies" -msgstr "" - -#: f.combine.cc:6839 -msgid "Gradual" -msgstr "" - -#: f.combine.cc:6842 fotoxx.h:1044 -msgid "Power" -msgstr "" - -#: f.combine.cc:7084 -#, c-format -msgid "exceeded %d images" -msgstr "" - -#: f.combine.cc:7250 -msgid "Enter text, click/drag on image." -msgstr "" - -#: f.combine.cc:7282 f.image.cc:1812 f.tools.cc:850 -msgid "Text" -msgstr "Text" - -#: f.combine.cc:7300 f.image.cc:1830 -msgid "text" -msgstr "text" - -#: f.combine.cc:7301 f.image.cc:1831 -msgid "backing" -msgstr "backar" - -#: f.combine.cc:7302 f.image.cc:1832 -msgid "outline" -msgstr "skiss" - -#: f.combine.cc:7303 f.image.cc:1833 -msgid "shadow" -msgstr "" - -#: f.combine.cc:7305 f.image.cc:1835 f.menus.cc:63 f.menus.cc:124 -#: f.menus.cc:292 fotoxx.h:999 -msgid "Color" -msgstr "Färg" - -#: f.combine.cc:7311 f.image.cc:1841 -msgid "Transparency" -msgstr "Transparans" - -#: f.combine.cc:7317 f.image.cc:1847 fotoxx.h:1078 -msgid "Width" -msgstr "Bredd" - -#: f.combine.cc:7330 f.image.cc:1860 -msgid "Text File:" -msgstr "Textfil:" - -#: f.combine.cc:7393 f.image.cc:1981 -msgid "select font" -msgstr "välj typsnitt" - -#: f.combine.cc:7464 -#, c-format -msgid "exceeded %d text entries" -msgstr "" - -#: f.effects.cc:44 -msgid "Set color depth to 1-16 bits" -msgstr "Sätt färgdjup till 1-16 bitar" - -#: f.effects.cc:55 -msgid "Set Color Depth" -msgstr "Välj färgdjup" - -#: f.effects.cc:187 -msgid "Convert to Sketch" -msgstr "" - -#: f.effects.cc:270 -msgid "Clip Level" -msgstr "" - -#: f.effects.cc:274 -msgid "Algorithm" -msgstr "" - -#: f.effects.cc:645 -msgid "Simulate Drawing" -msgstr "Simulera ritning" - -#: f.effects.cc:668 -msgid "black/white" -msgstr "" - -#: f.effects.cc:989 f.menus.cc:257 -msgid "Graduated Blur" -msgstr "" - -#: f.effects.cc:993 -msgid "Contrast Limit" -msgstr "Kontrastgräns" - -#: f.effects.cc:996 -msgid "Blur Radius" -msgstr "" - -#: f.effects.cc:1210 -msgid "Simulate Embossing" -msgstr "Simulera upphöjning" - -#: f.effects.cc:1226 -msgid "depth" -msgstr "djup" - -#: f.effects.cc:1228 f.file.cc:1016 -msgid "color" -msgstr "färg" - -#: f.effects.cc:1424 -msgid "Simulate Tiles" -msgstr "Simulera plattor" - -#: f.effects.cc:1428 -msgid "tile size" -msgstr "plattstorlek" - -#: f.effects.cc:1431 -msgid "tile gap" -msgstr "gap mellan plattor" - -#: f.effects.cc:1434 -msgid "3D depth" -msgstr "3D djup" - -#: f.effects.cc:1660 -msgid "Convert Image to Dots" -msgstr "Omvandla bild till punkter" - -#: f.effects.cc:1664 -msgid "dot size" -msgstr "punktstorlek" - -#: f.effects.cc:1882 -msgid "Simulate Painting" -msgstr "Simulera målning" - -#: f.effects.cc:1886 -msgid "color depth" -msgstr "färgdjup" - -#: f.effects.cc:1890 -msgid "patch area goal" -msgstr "" - -#: f.effects.cc:1894 -msgid "req. color match" -msgstr "beg. färgmatchning" - -#: f.effects.cc:1898 -msgid "borders" -msgstr "kanter" - -#: f.effects.cc:2474 f.menus.cc:262 -msgid "Vignette" -msgstr "Vinjettverktyg" - -#: f.effects.cc:2829 -msgid "Add Texture" -msgstr "" - -#: f.effects.cc:3040 -msgid "Add pattern" -msgstr "" - -#: f.effects.cc:3044 f.menus.cc:264 -msgid "Pattern" -msgstr "" - -#: f.effects.cc:3051 -msgid "Pattern size" -msgstr "" - -#: f.effects.cc:3062 f.effects.cc:3066 -msgid "Overlap" -msgstr "" - -#: f.effects.cc:3107 -msgid "choose pattern tile" -msgstr "" - -#: f.effects.cc:3382 -msgid "Create Mosaic" -msgstr "" - -#: f.effects.cc:3468 -msgid "Tile" -msgstr "" - -#: f.effects.cc:3476 f.menus.cc:259 -msgid "Tiles" -msgstr "Plattor" - -#: f.effects.cc:3482 -msgid "Tile blending" -msgstr "" - -#: f.effects.cc:3560 -#, c-format -msgid "exceeded max. tiles: %d" -msgstr "" - -#: f.effects.cc:3575 -#, c-format -msgid "only %d tile images found" -msgstr "" - -#: f.file.cc:219 -msgid "no newly added files found" -msgstr "" - -#: f.file.cc:293 -msgid "no more images" -msgstr "" - -#: f.file.cc:330 f.menus.cc:153 f.menus.cc:482 -msgid "Open RAW file (ufraw)" -msgstr "Öppna RAW-fil (ufraw)" - -#: f.file.cc:334 -msgid "RAW type not registered in User Settings" -msgstr "RAW-typ ej registrerad i användarinställningar" - -#: f.file.cc:384 -msgid "Save Image File" -msgstr "" - -#: f.file.cc:394 -msgid "new version" -msgstr "" - -#: f.file.cc:395 -msgid "new file name" -msgstr "" - -#: f.file.cc:396 -msgid "replace file" -msgstr "" - -#: f.file.cc:402 -msgid "save as new file version" -msgstr "" - -#: f.file.cc:403 f.file.cc:541 -msgid "save as new file name or type" -msgstr "" - -#: f.file.cc:405 -msgid "replace old file (OVERWRITE)" -msgstr "" - -#: f.file.cc:446 f.file.cc:2377 -msgid "cannot save as RAW type" -msgstr "" - -#: f.file.cc:557 -msgid "make current" -msgstr "sätt aktuell" - -#: f.file.cc:650 -msgid "jpeg quality must be 1-100" -msgstr "jpegkvalitete måste vara 1-100" - -#: f.file.cc:677 -#, c-format -msgid "" -"Overwrite file? \n" -" %s" -msgstr "" -"Skriva över fil? \n" -" %s" - -#: f.file.cc:836 f.menus.cc:155 -msgid "Rename Image File" -msgstr "Döp om bildfil" - -#: f.file.cc:843 -msgid "Old Name" -msgstr "gammalt namn" - -#: f.file.cc:844 f.tools.cc:4504 -msgid "New Name" -msgstr "nytt namn" - -#: f.file.cc:853 -msgid "previous name" -msgstr "föregående namn" - -#: f.file.cc:854 -msgid "add 1" -msgstr "lägg till 1" - -#: f.file.cc:934 f.file.cc:1278 -msgid "target file already exists" -msgstr "målfilen finns redan" - -#: f.file.cc:1000 -msgid "Create Blank Image" -msgstr "Skapa tom bild" - -#: f.file.cc:1002 -msgid "file name" -msgstr "filnamn" - -#: f.file.cc:1007 f.image.cc:307 -msgid "width" -msgstr "bredd" - -#: f.file.cc:1010 f.image.cc:310 -msgid "height" -msgstr "höjd" - -#: f.file.cc:1186 -msgid "Copy Image File" -msgstr "Kopiera bildfil" - -#: f.file.cc:1188 -msgid "Move Image File" -msgstr "Flytta bildfil" - -#: f.file.cc:1194 f.file.cc:1375 f.file.cc:1494 -msgid "image file" -msgstr "bildfil" - -#: f.file.cc:1199 -msgid "new location" -msgstr "ny plats" - -#: f.file.cc:1233 f.tools.cc:4809 -msgid "Select directory" -msgstr "Välj mapp" - -#: f.file.cc:1263 -msgid "new location is not a directory" -msgstr "nya platsen är ej en mapp" - -#: f.file.cc:1300 f.file.cc:1409 -#, c-format -msgid "" -"delete failed: \n" -" %s" -msgstr "borttagande misslyckades: %s" - -#: f.file.cc:1337 -msgid "Delete Image File - CANNOT BE REVERSED" -msgstr "Borttagande av bildfil - KAN EJ ÅNGRAS" - -#: f.file.cc:1338 f.file.cc:1458 -msgid "(automatic step to next image)" -msgstr "" - -#: f.file.cc:1457 f.menus.cc:157 -msgid "Trash Image File" -msgstr "Skräpbildfil" - -#: f.file.cc:1522 -msgid "" -"Linux standard trash does not work. \n" -"Desktop trash folder will be created." -msgstr "" -"Linux standardpapperskorg fungerar ej. \n" -"En papperskorg på skrivbordet skapas." - -#: f.file.cc:1525 -msgid "" -"Linux and Desktop trash do not work. \n" -"Permanently delete the image file?" -msgstr "" -"Linux och skrivbordets papperskorg fungerar ej. \n" -"Ta bort bildfilen permanent?" - -#: f.file.cc:1543 -msgid "Move read-only file to trash?" -msgstr "Flytta skrivskyddd fil till Skräp?" - -#: f.file.cc:1568 -#, c-format -msgid "Cannot create trash folder: %s" -msgstr "Kan ej skapa skräpmapp: %s" - -#: f.file.cc:1580 zfuncs.cc:4260 -#, c-format -msgid "error: %s" -msgstr "fel: %s" - -#: f.file.cc:1593 -#, c-format -msgid "delete failed: %s" -msgstr "borttagande misslyckades: %s" - -#: f.file.cc:1908 -#, c-format -msgid "" -"create directory? \n" -" %s" -msgstr "" - -#: f.file.cc:2191 f.menus.cc:149 -msgid "Open Image File" -msgstr "Öppna bildfil" - -#: f.file.cc:2209 -msgid "unknown file type" -msgstr "okänd filtyp" - -#: f.file.cc:2477 -msgid "Unable to copy EXIF/IPTC data" -msgstr "kan ej kopiera EXIF/IPTC-data" - -#: f.file.cc:2545 f.file.cc:2614 -#, c-format -msgid "file not found: %s" -msgstr "fil ej hittad: %s" - -#: f.file.cc:2551 f.file.cc:2620 -#, c-format -msgid "file type not supported: %s" -msgstr "filtyp stöds ej: %s" - -#: f.file.cc:4209 f.menus.cc:296 f.menus.cc:432 -msgid "Sync.G" -msgstr "" - -#: f.file.cc:4221 -msgid "change directory" -msgstr "ändra mapp" - -#: f.file.cc:4229 f.menus.cc:434 -msgid "GoTo" -msgstr "" - -#: f.file.cc:4234 f.menus.cc:437 -msgid "Sort" -msgstr "Sortera" - -#: f.file.cc:4241 f.file.cc:4665 f.file.cc:4666 f.file.cc:4668 f.menus.cc:435 -msgid "Zoom+" -msgstr "Zoom+" - -#: f.file.cc:4252 f.file.cc:4667 f.file.cc:4669 f.menus.cc:436 -msgid "Zoom-" -msgstr "Zoom-" - -#: f.file.cc:4265 f.file.cc:4673 f.menus.cc:442 -msgid "Row↑" -msgstr "Rad↑" - -#: f.file.cc:4277 f.file.cc:4674 f.menus.cc:443 -msgid "Row↓" -msgstr "Rad↓" - -#: f.file.cc:4289 f.file.cc:4676 f.menus.cc:438 -msgid "First" -msgstr "Första" - -#: f.file.cc:4290 f.file.cc:4677 f.menus.cc:439 -msgid "Last" -msgstr "Sista" - -#: f.file.cc:4291 f.file.cc:4671 f.file.cc:4678 f.menus.cc:440 -msgid "Page↑" -msgstr "Sida↑" - -#: f.file.cc:4292 f.file.cc:4672 f.file.cc:4679 f.menus.cc:441 -msgid "Page↓" -msgstr "Sida↓" - -#: f.file.cc:4342 -msgid "Choose image directory" -msgstr "" - -#: f.file.cc:4348 f.file.cc:4363 -msgid "recent" -msgstr "" - -#: f.file.cc:4349 f.file.cc:4368 -msgid "newest" -msgstr "" - -#: f.file.cc:4350 f.file.cc:4377 -msgid "collections" -msgstr "" - -#: f.file.cc:4423 f.tools.cc:2476 -msgid "no collections found" -msgstr "" - -#: f.file.cc:4430 -msgid "Choose collection" -msgstr "" - -#: f.file.cc:4475 -msgid "Gallery Sort" -msgstr "Gallerisortering" - -#: f.file.cc:4479 -msgid "File Name" -msgstr "Filnamn" - -#: f.file.cc:4480 -msgid "File Mod Date/Time" -msgstr "Fil mod datum/tid" - -#: f.file.cc:4481 -msgid "Photo Date/Time (EXIF)" -msgstr "Bilds datum/tid /EXIF)" - -#: f.file.cc:4483 -msgid "ascending" -msgstr "" - -#: f.file.cc:4484 -msgid "descending" -msgstr "" - -#: f.file.cc:5542 fotoxx.h:1061 -msgid "Select Files" -msgstr "Välj filer" - -#: f.image.cc:50 f.image.cc:131 -msgid "Rotate Image 90º" -msgstr "" - -#: f.image.cc:54 f.image.cc:135 -msgid "rotate -90º" -msgstr "" - -#: f.image.cc:55 f.image.cc:136 -msgid "rotate +90º" -msgstr "" - -#: f.image.cc:230 -msgid "Trim: drag middle to move, drag corners to resize" -msgstr "" - -#: f.image.cc:231 -msgid "Minor rotate: drag right edge with mouse" -msgstr "" - -#: f.image.cc:302 f.menus.cc:212 f.menus.cc:472 -msgid "Trim/Rotate" -msgstr "" - -#: f.image.cc:313 f.image.cc:679 -msgid "ratio" -msgstr "förhållande" - -#: f.image.cc:317 -msgid "trim size:" -msgstr "" - -#: f.image.cc:321 -msgid "Lock Ratio" -msgstr "Lås förhållande" - -#: f.image.cc:326 f.tools.cc:2793 -msgid "Customize" -msgstr "" - -#: f.image.cc:332 -msgid "Rotate: degrees" -msgstr "" - -#: f.image.cc:334 -msgid "auto-trim" -msgstr "auto-trimning" - -#: f.image.cc:336 zfuncs.cc:9403 -msgid "left" -msgstr "vänster" - -#: f.image.cc:339 zfuncs.cc:9404 -msgid "right" -msgstr "höger" - -#: f.image.cc:675 -msgid "Trim Buttons" -msgstr "Trimningsknappar" - -#: f.image.cc:678 -msgid "label" -msgstr "etikett" - -#: f.image.cc:1454 -msgid "Lock aspect ratio" -msgstr "Lås aspektförhållande" - -#: f.image.cc:1476 -msgid "Resize Image" -msgstr "Ändra bildstorlek" - -#: f.image.cc:1650 f.menus.cc:215 -msgid "Flip" -msgstr "Vänd" - -#: f.image.cc:1772 -msgid "Enter text, click/drag on image, right click to remove" -msgstr "Skriv in text, klicka/drag i bild, högerklicka för att ta bort" - -#: f.image.cc:1805 -msgid "Write Text on Image" -msgstr "Skriv text på bild" - -#: f.image.cc:1865 -msgid "Metadata:" -msgstr "" - -#: f.image.cc:1866 f.meta.cc:168 -msgid "Caption" -msgstr "Beskrivning" - -#: f.image.cc:1867 -msgid "Comment" -msgstr "" - -#: f.image.cc:2485 -msgid "text file is defective" -msgstr "" - -#: f.image.cc:2666 -msgid "Restart Fotoxx to update plugin menu" -msgstr "Starta om Fotoxx för att uppdatera insticksmenyn" - -#: f.image.cc:2723 -msgid "Plugin working ..." -msgstr "" - -#: f.image.cc:2727 f.image.cc:2734 -msgid "plugin failed" -msgstr "plugin misslyckades" - -#: f.menus.cc:56 f.menus.cc:117 -msgid "File" -msgstr "Fil" - -#: f.menus.cc:57 f.menus.cc:118 -msgid "Tools" -msgstr "Verktyg" - -#: f.menus.cc:58 f.menus.cc:119 f.menus.cc:462 -msgid "Metadata" -msgstr "Metadata" - -#: f.menus.cc:59 f.menus.cc:120 -msgid "Areas" -msgstr "Områden" - -#: f.menus.cc:61 f.menus.cc:122 -msgid "Retouch" -msgstr "Retuschera" - -#: f.menus.cc:62 f.menus.cc:123 -msgid "Repair" -msgstr "" - -#: f.menus.cc:64 f.menus.cc:125 -msgid "Bend" -msgstr "" - -#: f.menus.cc:65 f.menus.cc:126 -msgid "Effects" -msgstr "" - -#: f.menus.cc:66 f.menus.cc:127 -msgid "Combine" -msgstr "Kombinera" - -#: f.menus.cc:67 f.menus.cc:128 -msgid "Plugins" -msgstr "Plugin" - -#: f.menus.cc:68 f.menus.cc:129 fotoxx-14.03.cc:3811 fotoxx.h:1021 -msgid "Help" -msgstr "Hjälp" - -#: f.menus.cc:101 f.menus.cc:290 fotoxx-14.03.cc:3751 -msgid "Favorite Functions" -msgstr "" - -#: f.menus.cc:102 -msgid "Open, Save, Trash, Rename, Print" -msgstr "" - -#: f.menus.cc:103 -msgid "Index Files, Settings, Collections, Batch Funcs ..." -msgstr "" - -#: f.menus.cc:104 -msgid "Captions, Tags, Ratings, Geotags, Search ... " -msgstr "" - -#: f.menus.cc:105 -msgid "Select image areas to edit, copy and paste" -msgstr "" - -#: f.menus.cc:106 -msgid "Trim/Crop, Rotate, Resize, Add Text" -msgstr "" - -#: f.menus.cc:107 -msgid "Improve brightness, contrast, color ..." -msgstr "" - -#: f.menus.cc:108 -msgid "Sharpen, Clean, Red-eyes, Paint, Clone ..." -msgstr "" - -#: f.menus.cc:109 -msgid "White Balance, Color Profile, Color Matching" -msgstr "" - -#: f.menus.cc:110 -msgid "Fix Perspective, Bend/Warp image ..." -msgstr "" - -#: f.menus.cc:111 -msgid "Special Effects, Arty Transforms" -msgstr "" - -#: f.menus.cc:112 -msgid "HDR, HDF, Panorama, Stack, Mashup" -msgstr "" - -#: f.menus.cc:113 -msgid "Use other image editors within Fotoxx" -msgstr "" - -#: f.menus.cc:114 -msgid "Quick Start, User Guide, Recent Changes ..." -msgstr "" - -#: f.menus.cc:148 -msgid "New Window" -msgstr "Nytt fönster" - -#: f.menus.cc:148 -msgid "Open another window" -msgstr "Öppna ett annat fönster" - -#: f.menus.cc:149 f.menus.cc:297 -msgid "Open a new image file" -msgstr "Öppna en ny bildfil" - -#: f.menus.cc:150 -msgid "Open Previous File" -msgstr "Öppna föregående fil" - -#: f.menus.cc:150 -msgid "Open the previously seen file" -msgstr "Öppna den tidigare sedda filen" - -#: f.menus.cc:151 -msgid "Open a recently seen file" -msgstr "Öppna en nyligen sedd fil" - -#: f.menus.cc:151 -msgid "Recently Seen Images" -msgstr "" - -#: f.menus.cc:152 -msgid "Newest Images" -msgstr "" - -#: f.menus.cc:152 -msgid "Open a newly added file" -msgstr "" - -#: f.menus.cc:153 -msgid "Open and edit a camera RAW file" -msgstr "Öppna och redigera en kamera-RAW-fil" - -#: f.menus.cc:154 f.menus.cc:300 -msgid "Save modified image file to disk" -msgstr "" - -#: f.menus.cc:154 -msgid "Save to Disk" -msgstr "" - -#: f.menus.cc:155 -msgid "Change the image file name" -msgstr "Ändra bildfilens namn" - -#: f.menus.cc:156 -msgid "Create a blank image" -msgstr "Skapa en tom bild" - -#: f.menus.cc:156 -msgid "New Blank Image" -msgstr "Ny tom bild" - -#: f.menus.cc:157 f.menus.cc:301 -msgid "Move image file to Trash" -msgstr "Flytta bildfil till papperskorgen" - -#: f.menus.cc:158 -msgid "Print Image" -msgstr "Skriv ut bild" - -#: f.menus.cc:158 -msgid "Print the current image" -msgstr "Skriv ut aktuell bild" - -#: f.menus.cc:159 -msgid "Quit Fotoxx" -msgstr "Avsluta Fotoxx" - -#: f.menus.cc:161 f.tools.cc:92 f.tools.cc:339 -msgid "Index Image Files" -msgstr "" - -#: f.menus.cc:161 -msgid "Index new files and make thumbnails" -msgstr "Indexera nya filer och gör miniatyrbilder" - -#: f.menus.cc:162 -msgid "Change user preferences" -msgstr "Ändra användarinställningar" - -#: f.menus.cc:162 -msgid "User Settings" -msgstr "Användarinställningar" - -#: f.menus.cc:163 -msgid "Change Keyboard Shortcut Keys" -msgstr "" - -#: f.menus.cc:163 -msgid "Keyboard Shortcuts" -msgstr "Tangentbordsgenvägar" - -#: f.menus.cc:164 f.tools.cc:1943 -msgid "Manage Collections" -msgstr "Hantera samlingar" - -#: f.menus.cc:164 -msgid "Organize images into collections" -msgstr "Organisera bilder till samlingar" - -#: f.menus.cc:165 -msgid "Convert for a new top directory" -msgstr "Konvertera för en ny högsta mapp" - -#: f.menus.cc:165 -msgid "Move Collections" -msgstr "Flytta samling" - -#: f.menus.cc:166 f.tools.cc:2777 f.tools.cc:2780 -msgid "Slide Show" -msgstr "Bildvisning" - -#: f.menus.cc:166 -msgid "Start a slide show" -msgstr "Börja en bildvisning" - -#: f.menus.cc:167 f.tools.cc:4497 -msgid "Batch Convert" -msgstr "" - -#: f.menus.cc:167 -msgid "Rename/convert/resize/move multiple files" -msgstr "" - -#: f.menus.cc:168 -msgid "Batch Convert RAW" -msgstr "" - -#: f.menus.cc:168 -msgid "Convert multiple camera RAW files" -msgstr "Konvertera flera kamera-RAW-filer" - -#: f.menus.cc:169 -msgid "Brightness Histogram" -msgstr "" - -#: f.menus.cc:169 -msgid "Show a brightness distribution graph" -msgstr "Visa ett fördelningsdiagram för ljusstyrka" - -#: f.menus.cc:170 f.menus.cc:480 f.tools.cc:5517 -msgid "Grid Lines" -msgstr "Rutnät" - -#: f.menus.cc:170 -msgid "Show or revise grid lines" -msgstr "Visa eller revidera nätlinjer" - -#: f.menus.cc:171 f.tools.cc:5701 -msgid "Show RGB" -msgstr "Visa RGB" - -#: f.menus.cc:171 -msgid "Show RGB colors at mouse click" -msgstr "Visa RGB-färger vi musklick" - -#: f.menus.cc:172 -msgid "Dark/Bright Pixels" -msgstr "" - -#: f.menus.cc:172 -msgid "Highlight darkest and brightest pixels" -msgstr "" - -#: f.menus.cc:173 -msgid "Chart to adjust monitor color" -msgstr "Diagram för att justera färg på monitor" - -#: f.menus.cc:173 -msgid "Monitor Color" -msgstr "Monitorfärg" - -#: f.menus.cc:174 -msgid "Chart to adjust monitor gamma" -msgstr "Diagram för att justera gamma för monitor" - -#: f.menus.cc:174 f.tools.cc:6213 -msgid "Monitor Gamma" -msgstr "Bildskärmsgamma" - -#: f.menus.cc:175 -msgid "Change Language" -msgstr "Ändra språk" - -#: f.menus.cc:175 -msgid "Change the GUI language" -msgstr "Ändra GUI-språk" - -#: f.menus.cc:176 -msgid "Missing Translations" -msgstr "" - -#: f.menus.cc:176 -msgid "Report missing translations" -msgstr "" - -#: f.menus.cc:178 -msgid "Create a Gnome menu and launcher" -msgstr "Skapa en Gnome-meny och startare" - -#: f.menus.cc:178 -msgid "Menu and Launcher" -msgstr "Meny och startare" - -#: f.menus.cc:179 -msgid "Burn Images to CD/DVD" -msgstr "Bränn bilder till CD/DVD" - -#: f.menus.cc:179 -msgid "Burn selected image files to CD or DVD" -msgstr "Bränn valda bildfiler till CD eller DVD" - -#: f.menus.cc:180 -msgid "Memory and CPU (to terminal/logfile)" -msgstr "" - -#: f.menus.cc:180 -msgid "Resources" -msgstr "Resurser" - -#: f.menus.cc:183 f.meta.cc:121 f.meta.cc:1945 -msgid "Edit Metadata" -msgstr "Redigera Metadata" - -#: f.menus.cc:183 -msgid "Edit image tags/caption/rating ..." -msgstr "" - -#: f.menus.cc:184 -msgid "Add/remove tags for multiple images" -msgstr "" - -#: f.menus.cc:184 f.meta.cc:1547 -msgid "Batch Add/Remove Tags" -msgstr "" - -#: f.menus.cc:185 -msgid "List a few key metadata items" -msgstr "Lista några få metadataposter" - -#: f.menus.cc:185 -msgid "View Metadata (short)" -msgstr "Titta på Metadata (kort)" - -#: f.menus.cc:186 -msgid "List all metadata items" -msgstr "Lista alla metadataposter" - -#: f.menus.cc:186 -msgid "View Metadata (long)" -msgstr "Titta på Metadata (lång)" - -#: f.menus.cc:187 -msgid "List captions and comments only" -msgstr "" - -#: f.menus.cc:187 -msgid "View Captions and Comments" -msgstr "" - -#: f.menus.cc:188 -msgid "Edit Any Metadata" -msgstr "Redigera något Metadata" - -#: f.menus.cc:188 -msgid "Edit any image metadata" -msgstr "Redigera en bilds metadata" - -#: f.menus.cc:189 f.meta.cc:2039 -msgid "Delete Metadata" -msgstr "Tag bort Metadata" - -#: f.menus.cc:189 -msgid "Remove all metadata from an image" -msgstr "Tag bort alla metadata från en bild" - -#: f.menus.cc:190 -msgid "(Toggle) show captions and comments" -msgstr "" - -#: f.menus.cc:190 -msgid "Show Captions on Image" -msgstr "" - -#: f.menus.cc:191 -msgid "Download Geolocations" -msgstr "Ladda ner Geolocations" - -#: f.menus.cc:191 -msgid "Download initial geolocation database" -msgstr "Ladda ner en initial geolocation-databas" - -#: f.menus.cc:193 f.meta.cc:3023 -msgid "Edit Geotags" -msgstr "Redigera Geotags" - -#: f.menus.cc:193 -msgid "Edit image location and geotags" -msgstr "" - -#: f.menus.cc:194 -msgid "Add geotags to multiple images" -msgstr "Lägg till geotags till flera bilder" - -#: f.menus.cc:194 f.meta.cc:3225 -msgid "Batch Add Geotags" -msgstr "satsvis tillägg av Geotags" - -#: f.menus.cc:195 -msgid "Find all images for a location [date]" -msgstr "Hitta alla bilder för en plats [datum]" - -#: f.menus.cc:195 -msgid "Images by Location/Date" -msgstr "Bilder per plats/datum" - -#: f.menus.cc:196 -msgid "Find images by clicking a world map" -msgstr "Hitta bilder genom att klicka på en världskarta" - -#: f.menus.cc:196 -msgid "Images by Map Location" -msgstr "Bilder per kartplats" - -#: f.menus.cc:197 -msgid "Find images meeting select criteria" -msgstr "Hitta bilder med utvalda villkor" - -#: f.menus.cc:197 -msgid "Search Images" -msgstr "Bildsökning" - -#: f.menus.cc:199 fotoxx.h:1060 -msgid "Select" -msgstr "Välj" - -#: f.menus.cc:199 -msgid "Select object or area for editing" -msgstr "Välj ett objekt eller område för redigering" - -#: f.menus.cc:200 fotoxx.h:1062 -msgid "Show" -msgstr "Visa" - -#: f.menus.cc:200 -msgid "Show (outline) existing area" -msgstr "Visa (utkast) befintligt område" - -#: f.menus.cc:201 fotoxx.h:1022 -msgid "Hide" -msgstr "Göm" - -#: f.menus.cc:201 -msgid "Hide existing area" -msgstr "Dölj befintligt område" - -#: f.menus.cc:202 fotoxx.h:1011 -msgid "Enable" -msgstr "Koppla in" - -#: f.menus.cc:202 -msgid "Enable area for editing" -msgstr "Tillåt område för redigering" - -#: f.menus.cc:203 fotoxx.h:1006 -msgid "Disable" -msgstr "Koppla bort" - -#: f.menus.cc:203 -msgid "Disable area for editing" -msgstr "Tillåt ej område för redigering" - -#: f.menus.cc:204 fotoxx.h:1025 -msgid "Invert" -msgstr "Invertera" - -#: f.menus.cc:204 -msgid "Reverse existing area" -msgstr "Omvänd befintligt område" - -#: f.menus.cc:205 -msgid "Erase existing area" -msgstr "Radera befintligt område" - -#: f.menus.cc:205 fotoxx.h:1074 -msgid "Unselect" -msgstr "Välj bort" - -#: f.menus.cc:206 fotoxx.h:1001 -msgid "Copy" -msgstr "Kopiera" - -#: f.menus.cc:206 -msgid "Copy an area for later pasting" -msgstr "Kopiera ett område för senare inklistring" - -#: f.menus.cc:207 fotoxx.h:1041 -msgid "Paste" -msgstr "Klistra in" - -#: f.menus.cc:207 -msgid "Paste an area into the current image" -msgstr "Klistar in ett område in i den aktuella bilden" - -#: f.menus.cc:208 -msgid "Open a file with a saved area" -msgstr "Öppna en fil med ett sparat område" - -#: f.menus.cc:209 f.menus.cc:300 fotoxx.h:1057 -msgid "Save" -msgstr "Spara" - -#: f.menus.cc:209 -msgid "Save an area to a file" -msgstr "Spara ett område till en fil" - -#: f.menus.cc:211 -msgid "Rotate 90 degrees" -msgstr "" - -#: f.menus.cc:211 f.menus.cc:474 -msgid "Rotate 90º" -msgstr "" - -#: f.menus.cc:212 -msgid "Trim/Crop margins and/or Rotate" -msgstr "" - -#: f.menus.cc:213 -msgid "Auto-Trim" -msgstr "Trimma automatiskt" - -#: f.menus.cc:213 -msgid "Remove margins from warp, panorama, etc." -msgstr "Tag bort marginaler från warp, panorama etc." - -#: f.menus.cc:214 -msgid "Change pixel dimensions" -msgstr "Ändra pixeldimensioner" - -#: f.menus.cc:215 -msgid "Mirror image horizontally or vertically" -msgstr "Spegla bild horisontellt eller vertikalt" - -#: f.menus.cc:216 -msgid "Add Text" -msgstr "Skriv text" - -#: f.menus.cc:216 -msgid "Write text on image" -msgstr "Skriv text på bild" - -#: f.menus.cc:218 -msgid "Fast auto enhance that may work OK" -msgstr "Snabb automatisk förbättring som kan fungera OK" - -#: f.menus.cc:218 f.menus.cc:475 -msgid "Voodoo Enhance" -msgstr "" - -#: f.menus.cc:219 -msgid "Adjust brightness, contrast, color" -msgstr "Justera ljusstyrka, kontrats, färg" - -#: f.menus.cc:219 f.menus.cc:476 f.retouch.cc:265 -msgid "Retouch Combo" -msgstr "" - -#: f.menus.cc:222 -msgid "Add local contrast, enhance details" -msgstr "Lägg till lokal kontrast, förbättra detaljer" - -#: f.menus.cc:222 f.menus.cc:478 f.retouch.cc:929 -msgid "Tone Mapping" -msgstr "Tonavbildning" - -#: f.menus.cc:223 -msgid "Adjust brightness distribution" -msgstr "" - -#: f.menus.cc:223 f.menus.cc:477 f.tools.cc:5314 -msgid "Brightness Distribution" -msgstr "Ljushetsfördelning" - -#: f.menus.cc:224 -msgid "Brightness Ramp" -msgstr "Ljushetsramp" - -#: f.menus.cc:224 -msgid "Fix brightness uniformity across image" -msgstr "Fixa ljusstyrkejämnhet över bild" - -#: f.menus.cc:225 f.retouch.cc:2050 -msgid "Paint Edits" -msgstr "" - -#: f.menus.cc:225 -msgid "Paint edit function gradually with mouse" -msgstr "" - -#: f.menus.cc:227 -msgid "Make the image look sharper" -msgstr "Gär så att bilden blir skarpare" - -#: f.menus.cc:227 f.repair.cc:79 f.tools.cc:4535 f.tools.cc:4904 -msgid "Sharpen" -msgstr "Gör skarpare" - -#: f.menus.cc:228 f.repair.cc:1565 -msgid "Blur" -msgstr "Gör suddig" - -#: f.menus.cc:228 -msgid "Make the image look fuzzy" -msgstr "Gör så att bilden blir suddig" - -#: f.menus.cc:229 -msgid "Filter noise from low-light photos" -msgstr "Filtrera brus från ljussvaga bilder" - -#: f.menus.cc:229 -msgid "Reduce Noise" -msgstr "Minska brus" - -#: f.menus.cc:230 -msgid "Remove unwanted objects" -msgstr "Tag bort oönskade objekt" - -#: f.menus.cc:230 f.repair.cc:1558 -msgid "Smart Erase" -msgstr "Fiffig radering" - -#: f.menus.cc:231 -msgid "Fix red-eyes from electronic flash" -msgstr "Fixa röda ögon från elektroniska blixtar" - -#: f.menus.cc:231 f.menus.cc:479 -msgid "Red Eyes" -msgstr "Röda ögon" - -#: f.menus.cc:232 -msgid "Paint image pixels using the mouse" -msgstr "Måla pixlar med musen" - -#: f.menus.cc:232 f.repair.cc:2403 -msgid "Paint/Clone" -msgstr "Måla pixlar" - -#: f.menus.cc:233 f.repair.cc:2995 -msgid "Remove Dust" -msgstr "Tag bort damm" - -#: f.menus.cc:233 -msgid "Remove dust spots from scanned slides" -msgstr "Tag bort dammkorn från skannade bilder" - -#: f.menus.cc:234 -msgid "Anti-alias" -msgstr "" - -#: f.menus.cc:234 -msgid "Smoothen edges with jaggies" -msgstr "" - -#: f.menus.cc:235 -msgid "Fix Color Fringes" -msgstr "Fixa färgfransar" - -#: f.menus.cc:235 -msgid "Reduce Chromatic Abberation" -msgstr "Minska kromatisk abberation" - -#: f.menus.cc:236 -msgid "Erase known hot and dark pixels" -msgstr "Radera kända heta och mörka pixlar" - -#: f.menus.cc:236 f.repair.cc:4008 -msgid "Fix Stuck Pixels" -msgstr "Ordna fastnade pixlar" - -#: f.menus.cc:239 -msgid "Shift/convert colors into other colors" -msgstr "Byt/omvandla färger till andra färger" - -#: f.menus.cc:240 -msgid "Make BW/color, negative/positive, sepia" -msgstr "Gör S-V/färg, negative/positiv, sepia" - -#: f.menus.cc:241 -msgid "Color Profile" -msgstr "Färgprofil" - -#: f.menus.cc:241 -msgid "Convert to another color profile" -msgstr "Omvandla till en annan färgprofil" - -#: f.menus.cc:242 -msgid "Match Colors" -msgstr "Matchande färger" - -#: f.menus.cc:242 -msgid "Match colors on one image with another" -msgstr "Matcha färg på en bild med en annan" - -#: f.menus.cc:243 -msgid "Adjust color in selected image areas" -msgstr "Justera färg i valda bildområden" - -#: f.menus.cc:244 -msgid "Adjust color using CMYK or RGB values" -msgstr "Justera färg genom att använda CMYK- eller RGB-värden" - -#: f.menus.cc:246 -msgid "Remove curvature, esp. panoramas" -msgstr "" - -#: f.menus.cc:247 -msgid "Straighten objects seen from an angle" -msgstr "Räta ut objekt sedda från en vinkel" - -#: f.menus.cc:248 -msgid "Flatten Book Page" -msgstr "Jämna ut boksidor" - -#: f.menus.cc:248 -msgid "Flatten a photographed book page" -msgstr "Jämna ut en fotograferad boksida" - -#: f.menus.cc:249 -msgid "Distort image areas using the mouse" -msgstr "Distordera bildområden med musen" - -#: f.menus.cc:250 f.menus.cc:251 f.menus.cc:252 -msgid "Distort the whole image using the mouse" -msgstr "Distordera hela bilden med musen" - -#: f.menus.cc:254 -msgid "Color Depth" -msgstr "Färgdjup" - -#: f.menus.cc:254 -msgid "Reduce color depth (posterize)" -msgstr "Minska färgdjup (posterize)" - -#: f.menus.cc:255 -msgid "Convert to pencil sketch" -msgstr "" - -#: f.menus.cc:255 -msgid "Sketch" -msgstr "" - -#: f.menus.cc:256 -msgid "Convert to colored line drawing" -msgstr "Omvandla till ritning med färgade linjer" - -#: f.menus.cc:256 -msgid "Drawing" -msgstr "Ritning" - -#: f.menus.cc:257 -msgid "Graduated Blur depending on contrast" -msgstr "" - -#: f.menus.cc:258 -msgid "Create an embossed or 3D appearance" -msgstr "Skapa ett relief- eller 3D-utseende" - -#: f.menus.cc:258 -msgid "Embossing" -msgstr "Bosselera" - -#: f.menus.cc:259 -msgid "Convert to square tiles" -msgstr "Omvandla till kvadratiska plattor" - -#: f.menus.cc:260 -msgid "Convert to dots (Roy Lichtenstein effect)" -msgstr "Omvandla till punkter (Roy Lichtenstein effect)" - -#: f.menus.cc:260 -msgid "Dots" -msgstr "Punkter" - -#: f.menus.cc:261 -msgid "Convert into a simulated painting" -msgstr "Omvandla till simulerad målning" - -#: f.menus.cc:261 -msgid "Painting" -msgstr "Färgläggning" - -#: f.menus.cc:262 -msgid "Change brightness or color radially" -msgstr "Ändra ljusstyrka och färg radiellt" - -#: f.menus.cc:263 -msgid "Add texture to an image" -msgstr "" - -#: f.menus.cc:263 -msgid "Texture" -msgstr "" - -#: f.menus.cc:264 -msgid "Tile image with a repeating pattern" -msgstr "" - -#: f.menus.cc:265 -msgid "Create a mosaic with tiles made from all images" -msgstr "" - -#: f.menus.cc:265 -msgid "Mosaic" -msgstr "" - -#: f.menus.cc:267 -msgid "Combine bright/dark images for better detail" -msgstr "Kombinera ljus/mörka bilder för bättre detaljer" - -#: f.menus.cc:267 -msgid "High Dynamic Range" -msgstr "Stort dynamiskt område" - -#: f.menus.cc:268 -msgid "Combine near/far focus images for deeper focus" -msgstr "Kombinera när/fjärr-fokusbilder för ett djupare fokus" - -#: f.menus.cc:268 -msgid "High Depth of Field" -msgstr "" - -#: f.menus.cc:269 -msgid "Combine images to erase passing people, etc." -msgstr "Kombinera bilder för att radera passerande människor etc." - -#: f.menus.cc:269 -msgid "Stack / Paint" -msgstr "Stack / färg" - -#: f.menus.cc:270 -msgid "Combine noisy images into a low-noise image" -msgstr "Kombinera brusiga bilder till en lägbrusbild" - -#: f.menus.cc:270 -msgid "Stack / Noise" -msgstr "Stack / brus" - -#: f.menus.cc:271 -msgid "Combine images into a panorama" -msgstr "Kombinera bilder till ett panorama" - -#: f.menus.cc:271 -msgid "Panorama" -msgstr "Panorama" - -#: f.menus.cc:272 -msgid "Combine images into a vertical panorama" -msgstr "Kombinera bilder till ett vertikalt panorama" - -#: f.menus.cc:272 -msgid "Vertical Panorama" -msgstr "Vertikalt panorama" - -#: f.menus.cc:273 -msgid "Arrange multiple images on a background image" -msgstr "" - -#: f.menus.cc:273 -msgid "Mashup" -msgstr "" - -#: f.menus.cc:275 -msgid "Add another image editor to the menu" -msgstr "Lägg till ytterligare en bildredigerare till menyn" - -#: f.menus.cc:275 -msgid "Edit Plugins" -msgstr "Redigera insticksprogram" - -#: f.menus.cc:277 fotoxx-14.03.cc:3777 -msgid "Quick Start" -msgstr "" - -#: f.menus.cc:277 -msgid "Quick Start mini-guide" -msgstr "" - -#: f.menus.cc:278 -msgid "Read the user guide" -msgstr "Läs användarguiden" - -#: f.menus.cc:278 fotoxx-14.03.cc:3780 -msgid "User Guide" -msgstr "Användarguide" - -#: f.menus.cc:279 -msgid "Recent user guide changes" -msgstr "Nyligen gjorda ändringar i guiden" - -#: f.menus.cc:279 fotoxx-14.03.cc:3783 -msgid "User Guide Changes" -msgstr "Ändringar i användarhandbok" - -#: f.menus.cc:280 -msgid "Fotoxx updates notification" -msgstr "Fotoxx uppdateringsnotering" - -#: f.menus.cc:280 fotoxx-14.03.cc:3786 -msgid "Program Updates" -msgstr "Program uppdateras" - -#: f.menus.cc:281 fotoxx-14.03.cc:3792 -msgid "Edit Functions Summary" -msgstr "Sammanfattning av redigeringsfunktioner" - -#: f.menus.cc:281 -msgid "Summary of image edit functions" -msgstr "summering av bildredigeringsfunktioner" - -#: f.menus.cc:282 fotoxx-14.03.cc:3789 -msgid "README" -msgstr "README" - -#: f.menus.cc:282 -msgid "Technical installation notes" -msgstr "Tekniska installationsanvisningar" - -#: f.menus.cc:283 fotoxx-14.03.cc:3795 -msgid "Change Log" -msgstr "Ändringslogg" - -#: f.menus.cc:283 -msgid "List updates by Fotoxx version" -msgstr "Lista uppdateringar av Fotoxx-version" - -#: f.menus.cc:284 fotoxx-14.03.cc:3798 -msgid "Log File" -msgstr "Loggfil" - -#: f.menus.cc:284 -msgid "View the log file and error messages" -msgstr "Titta på loggfilen och felmeddelanden" - -#: f.menus.cc:285 -msgid "How to do Fotoxx translations" -msgstr "Hur gör man översättningar av Fotoxx" - -#: f.menus.cc:285 fotoxx-14.03.cc:3801 -msgid "Translations" -msgstr "Översättningar" - -#: f.menus.cc:286 fotoxx-14.03.cc:3804 -msgid "Home Page" -msgstr "Hemsida" - -#: f.menus.cc:286 -msgid "Show the Fotoxx web page" -msgstr "Visa Fotoxx hemsida" - -#: f.menus.cc:287 fotoxx-14.03.cc:3807 -msgid "About" -msgstr "Om" - -#: f.menus.cc:287 -msgid "Version, license, contact, credits" -msgstr "Version, licens, kontakt, tack" - -#: f.menus.cc:290 -msgid "Favs" -msgstr "Favs" - -#: f.menus.cc:292 -msgid "Color of area borders etc." -msgstr "" - -#: f.menus.cc:293 fotoxx.h:1072 -msgid "Undo" -msgstr "Ångra" - -#: f.menus.cc:293 -msgid "Undo one edit" -msgstr "Ångra en redigering" - -#: f.menus.cc:294 fotoxx.h:1051 -msgid "Redo" -msgstr "Gör om" - -#: f.menus.cc:294 -msgid "Redo one edit" -msgstr "Gör om en redigering" - -#: f.menus.cc:296 f.menus.cc:432 -msgid "Set gallery from current image file" -msgstr "" - -#: f.menus.cc:298 -msgid "Open the previous file" -msgstr "Öppna föregående fil" - -#: f.menus.cc:298 fotoxx.h:1046 -msgid "Prev" -msgstr "Föreg" - -#: f.menus.cc:299 fotoxx.h:1034 -msgid "Next" -msgstr "Nästa" - -#: f.menus.cc:299 -msgid "Open the next file" -msgstr "Öppna nästa fil" - -#: f.menus.cc:301 f.menus.cc:483 fotoxx.h:1068 -msgid "Trash" -msgstr "Skräp" - -#: f.menus.cc:344 f.menus.cc:373 -msgid "Run as Fotoxx edit function" -msgstr "Kör som Fotoxx redigeringsfunktion" - -#: f.menus.cc:412 -msgid "Top" -msgstr "" - -#: f.menus.cc:433 -msgid "open another directory" -msgstr "" - -#: f.menus.cc:434 -msgid "go to bookmarked image" -msgstr "" - -#: f.menus.cc:435 -msgid "increase thumbnail size" -msgstr "öka miniatyrbildstorlek" - -#: f.menus.cc:436 -msgid "reduce thumbnail size" -msgstr "minska miniatyrbildstorlek" - -#: f.menus.cc:437 -msgid "change sort order" -msgstr "" - -#: f.menus.cc:438 -msgid "jump to beginning (top)" -msgstr "" - -#: f.menus.cc:439 -msgid "jump to end (bottom)" -msgstr "" - -#: f.menus.cc:440 -msgid "previous page" -msgstr "föregående sida" - -#: f.menus.cc:441 -msgid "next page" -msgstr "nästa sida" - -#: f.menus.cc:442 -msgid "previous row" -msgstr "föregående rad" - -#: f.menus.cc:443 -msgid "next row" -msgstr "nästa rad" - -#: f.menus.cc:461 -msgid "Popup Image" -msgstr "" - -#: f.menus.cc:463 fotoxx.h:1054 -msgid "Rename" -msgstr "Byt namn" - -#: f.menus.cc:464 -msgid "Copy to Location" -msgstr "" - -#: f.menus.cc:465 -msgid "Move to Location" -msgstr "" - -#: f.menus.cc:466 -msgid "Copy to Clipboard" -msgstr "Kopiera till urklipp" - -#: f.menus.cc:467 -msgid "Remove from Collection" -msgstr "" - -#: f.menus.cc:468 -msgid "Cut to Image Cache" -msgstr "" - -#: f.menus.cc:469 -msgid "Copy to Image Cache" -msgstr "" - -#: f.menus.cc:470 -msgid "Paste Image Cache Here (clear)" -msgstr "" - -#: f.menus.cc:471 -msgid "Paste Image Cache Here (keep)" -msgstr "" - -#: f.menus.cc:481 -msgid "Select Area" -msgstr "Välj område" - -#: f.meta.cc:84 -#, c-format -msgid "Rating: %c (stars)" -msgstr "" - -#: f.meta.cc:91 f.meta.cc:1625 f.meta.cc:1939 f.meta.cc:3036 f.meta.cc:3311 -msgid "file type cannot have metadata" -msgstr "" - -#: f.meta.cc:126 f.repair.cc:4141 -msgid "File:" -msgstr "Fil:" - -#: f.meta.cc:129 -msgid "Size:" -msgstr "" - -#: f.meta.cc:135 -msgid "Image Width:" -msgstr "" - -#: f.meta.cc:138 -msgid "Height:" -msgstr "" - -#: f.meta.cc:141 -msgid "Depth:" -msgstr "" - -#: f.meta.cc:146 -msgid "Image Date" -msgstr "" - -#: f.meta.cc:149 -msgid "Time" -msgstr "" - -#: f.meta.cc:151 -msgid "get prev" -msgstr "" - -#: f.meta.cc:156 -msgid "Choose:" -msgstr "" - -#: f.meta.cc:174 -msgid "Comments" -msgstr "Kommentar" - -#: f.meta.cc:180 -msgid "Image Tags" -msgstr "" - -#: f.meta.cc:186 -msgid "Recent Tags" -msgstr "gamla märken" - -#: f.meta.cc:192 f.meta.cc:546 f.meta.cc:1568 f.meta.cc:4267 -msgid "Defined Tags" -msgstr "definierade märken" - -#: f.meta.cc:445 -msgid "date format is YYYY-MM-DD" -msgstr "" - -#: f.meta.cc:449 -msgid "date is invalid" -msgstr "" - -#: f.meta.cc:482 -msgid "time format is HH:MM [:SS]" -msgstr "" - -#: f.meta.cc:486 -msgid "time is invalid" -msgstr "" - -#: f.meta.cc:532 fotoxx.h:1029 -msgid "Manage Tags" -msgstr "Hantera flikar" - -#: f.meta.cc:532 -msgid "orphan tags" -msgstr "" - -#: f.meta.cc:536 -msgid "category" -msgstr "kategori" - -#: f.meta.cc:539 -msgid "tag" -msgstr "märke" - -#: f.meta.cc:1447 f.repair.cc:4181 f.tools.cc:1474 -msgid "file not found" -msgstr "fil ej funnen" - -#: f.meta.cc:1552 f.meta.cc:3257 f.tools.cc:4501 f.tools.cc:4966 -msgid "0 files selected" -msgstr "Ingen fil vald" - -#: f.meta.cc:1558 -msgid "tags to add" -msgstr "taggar att lägga till" - -#: f.meta.cc:1559 -msgid "tags to remove" -msgstr "" - -#: f.meta.cc:1647 -#, c-format -msgid "" -"%s \n" -" too many tags" -msgstr "" -"%s \n" -" för många märken" - -#: f.meta.cc:1761 -msgid "specify files and tags" -msgstr "" - -#: f.meta.cc:1788 f.meta.cc:3369 f.tools.cc:4800 f.tools.cc:5185 -#, c-format -msgid "%d files selected" -msgstr "%d filer valda" - -#: f.meta.cc:1852 -msgid "View Metadata" -msgstr "Se Metadata" - -#: f.meta.cc:1903 -msgid "Caption: \n" -msgstr "" - -#: f.meta.cc:1905 -msgid "" -"\n" -"Comment: \n" -msgstr "" - -#: f.meta.cc:1949 -msgid "key name" -msgstr "" - -#: f.meta.cc:1951 -msgid "key value" -msgstr "" - -#: f.meta.cc:2041 fotoxx.h:985 -msgid "All" -msgstr "Allt" - -#: f.meta.cc:2042 -msgid "One Key:" -msgstr "One Key:" - -#: f.meta.cc:2222 -#, c-format -msgid "" -"Download geotags data (8 megabytes). \n" -"Save in %s \n" -"Proceed?" -msgstr "" -"ladda ner geotags-data (8 megabytes). \n" -"Spara i %s \n" -"Fortsätta?" - -#: f.meta.cc:2261 -msgid "download failed" -msgstr "nerladdning misslyckades" - -#: f.meta.cc:2292 fotoxx-14.03.cc:1079 -msgid "Location from World Map" -msgstr "Plats för världskarta" - -#: f.meta.cc:2294 -msgid "Loading world map" -msgstr "" - -#: f.meta.cc:2304 f.meta.cc:2449 -msgid "please download geolocations data" -msgstr "ladda ner geolocations data" - -#: f.meta.cc:2309 -msgid "Loading geolocations" -msgstr "" - -#: f.meta.cc:2737 f.meta.cc:3209 f.meta.cc:3477 -#, c-format -msgid "bad latitude/longitude: %s %s" -msgstr "felaktig latitud/longitud: %s %s" - -#: f.meta.cc:3024 -msgid "Geocoding web service courtesy of" -msgstr "" - -#: f.meta.cc:3045 f.meta.cc:3259 f.meta.cc:4772 -msgid "city" -msgstr "stad" - -#: f.meta.cc:3048 f.meta.cc:3262 f.meta.cc:4775 -msgid "country" -msgstr "land" - -#: f.meta.cc:3120 f.meta.cc:3390 -msgid "city not found" -msgstr "stad ej funnen" - -#: f.meta.cc:3455 -msgid "" -"data is incomplete \n" -" proceed?" -msgstr "" -"data är ej fullständigt \n" -" fortsätta?" - -#: f.meta.cc:3481 f.tools.cc:4844 -msgid "no files selected" -msgstr "inga filer valda" - -#: f.meta.cc:3513 -msgid "choose city" -msgstr "välj stad" - -#: f.meta.cc:3599 -msgid "not found" -msgstr "ej funnen" - -#: f.meta.cc:3600 -msgid "city and country required" -msgstr "" - -#: f.meta.cc:3692 -msgid "Report Geotag Groups" -msgstr "Rapportera Geotags-grupper" - -#: f.meta.cc:3693 -msgid "Group by country" -msgstr "Grupp per land" - -#: f.meta.cc:3694 -msgid "Group by country/city" -msgstr "Grupp per land/stad" - -#: f.meta.cc:3695 -msgid "Group by country/city/date" -msgstr "Grupp per land/stad/datum" - -#: f.meta.cc:3698 -msgid "Combine within" -msgstr "Kombinera inom" - -#: f.meta.cc:3700 -msgid "days" -msgstr "dagar" - -#: f.meta.cc:3815 -msgid "geotag groups" -msgstr "" - -#: f.meta.cc:4043 -msgid "search range (km)" -msgstr "sökområde (km)" - -#: f.meta.cc:4116 -msgid "No matching images found" -msgstr "Inga matchande bilder hittade" - -#: f.meta.cc:4202 -msgid "Search Image Metadata" -msgstr "Sök bild-Metadata" - -#: f.meta.cc:4206 -msgid "images to search:" -msgstr "" - -#: f.meta.cc:4207 -msgid "all" -msgstr "" - -#: f.meta.cc:4208 -msgid "current set only" -msgstr "" - -#: f.meta.cc:4211 -msgid "matching images:" -msgstr "" - -#: f.meta.cc:4212 -msgid "new set" -msgstr "" - -#: f.meta.cc:4213 -msgid "add to set" -msgstr "" - -#: f.meta.cc:4214 -msgid "remove" -msgstr "" - -#: f.meta.cc:4217 -msgid "report type:" -msgstr "" - -#: f.meta.cc:4218 -msgid "gallery" -msgstr "" - -#: f.meta.cc:4219 -msgid "metadata" -msgstr "" - -#: f.meta.cc:4225 -msgid "date range" -msgstr "datumintervall" - -#: f.meta.cc:4226 -msgid "stars range" -msgstr "stjärnområde" - -#: f.meta.cc:4227 -msgid "search tags" -msgstr "sök taggar" - -#: f.meta.cc:4228 -msgid "search text" -msgstr "sök text" - -#: f.meta.cc:4229 -msgid "search files" -msgstr "sök filer" - -#: f.meta.cc:4234 -msgid "(yyyymmdd)" -msgstr "(yyyymmdd)" - -#: f.meta.cc:4240 -msgid "all/any" -msgstr "alla/någon" - -#: f.meta.cc:4259 -msgid "other criteria" -msgstr "andra villkor" - -#: f.meta.cc:4263 -msgid "other" -msgstr "annat" - -#: f.meta.cc:4398 -msgid "" -"to remove images from current set, \n" -"search current set" -msgstr "" - -#: f.meta.cc:4405 -msgid "" -"to add images to current set, \n" -"search all images" -msgstr "" - -#: f.meta.cc:4632 -#, c-format -msgid "images added: %d removed: %d new count: %d" -msgstr "" - -#: f.meta.cc:4635 -msgid "no changes made" -msgstr "" - -#: f.meta.cc:4769 -msgid "Add Geotags Search Criteria" -msgstr "Lägg till Geotags-sökvillkor" - -#: f.meta.cc:4788 -msgid "range (km)" -msgstr "område (km)" - -#: f.meta.cc:4881 -msgid "error in latitude/longitude/range" -msgstr "fel i latitud/longitud/område" - -#: f.meta.cc:4946 -msgid "" -"These items are always reported: \n" -"date, stars, tags, caption, comment" -msgstr "" -"Dessa poster är alltid rapporterade: \n" -"datum, stjärnor, flaggor, beskrivning, kommentar" - -#: f.meta.cc:4970 -msgid "Additional Items for Report" -msgstr "Ytterligare delar till rapport" - -#: f.meta.cc:4976 -msgid "Keyword" -msgstr "Nyckelord" - -#: f.meta.cc:4983 -msgid "Match Criteria" -msgstr "Matchningsvillkor" - -#: f.meta.cc:5554 f.tools.cc:300 -msgid "image index is missing" -msgstr "" - -#: f.repair.cc:86 -msgid "unsharp mask" -msgstr "oskarp mask" - -#: f.repair.cc:99 -msgid "brightness gradient" -msgstr "ljushetsgradient" - -#: f.repair.cc:107 -msgid "Kuwahara method" -msgstr "" - -#: f.repair.cc:694 -msgid "Set Blur Radius" -msgstr "Välj suddradie" - -#: f.repair.cc:948 -msgid "Noise Reduction" -msgstr "Brusminskning" - -#: f.repair.cc:962 -msgid "Flatten Outliers 1" -msgstr "" - -#: f.repair.cc:963 -msgid "Flatten Outliers 2" -msgstr "" - -#: f.repair.cc:964 -msgid "Median Brightness" -msgstr "" - -#: f.repair.cc:1535 -msgid "" -"1. Drag mouse to select. \n" -"2. Erase. 3. Repeat. " -msgstr "" -"1. Drag mus för val. \n" -"2. Radera. 3. Repetera. " - -#: f.repair.cc:1563 fotoxx.h:1048 -msgid "Radius" -msgstr "Radie" - -#: f.repair.cc:1568 -msgid "New Area" -msgstr "Ny yta" - -#: f.repair.cc:1890 -msgid "" -"Method 1:\n" -" Left-click on red-eye to darken.\n" -"Method 2:\n" -" Drag down and right to enclose red-eye.\n" -" Left-click on red-eye to darken.\n" -"Undo red-eye:\n" -" Right-click on red-eye." -msgstr "" -"Metod 1:\n" -" Vänsterklicka på röd-öga för att göra mörkare.\n" -"Metod 2:\n" -" Drag ner och höger till att innesluta röd-öga.\n" -" Vänsterklicka på röd-öga för att göra mörkare.\n" -"Ångra röd-öga:\n" -" Högerklicka på röd-öga." - -#: f.repair.cc:1906 -msgid "Red Eye Reduction" -msgstr "Rödögonminskning" - -#: f.repair.cc:2367 -msgid "" -"shift + left click: pick color or image position \n" -"left click or drag: paint color or copy image \n" -"right click or drag: remove color or image" -msgstr "" -"shift + vänsterklick: tag färg eller bildposition \n" -"vänsterklick eller drag: måla med färg eller kopiera bild \n" -"högerklick eller drag: tag bort färg eller bild" - -#: f.repair.cc:2381 -#, c-format -msgid "Undo Memory %d%c" -msgstr "Ångra minne %d%c" - -#: f.repair.cc:2407 -msgid "paint color" -msgstr "måla med färg" - -#: f.repair.cc:2410 -msgid "copy from image" -msgstr "kopiera från bild" - -#: f.repair.cc:2417 -msgid "paintbrush radius" -msgstr "målarpenselradie" - -#: f.repair.cc:2418 -msgid "transparency center" -msgstr "genomskinlighetscenter" - -#: f.repair.cc:2419 -msgid "transparency edge" -msgstr "genomskinlighetskant" - -#: f.repair.cc:2426 -msgid "gradual paint" -msgstr "" - -#: f.repair.cc:2768 -msgid "" -"Undo memory limit has been reached. \n" -"Save work with [done], then resume painting." -msgstr "" -"Minnesgräns för ångra har nåtts. \n" -"Spara arbetet med [gjort], återtag sedan målning." - -#: f.repair.cc:2999 -msgid "spot size limit" -msgstr "gräns för punktstorlek" - -#: f.repair.cc:3002 -msgid "max. brightness" -msgstr "max. ljusstyrka" - -#: f.repair.cc:3005 -msgid "min. contrast" -msgstr "min. kontrast" - -#: f.repair.cc:3784 -msgid "" -" Adjust each RGB color to minimize \n" -" color fringes at the image extremes. " -msgstr "" -" Justera varje RGB färg för att minimera \n" -" färgfransar vid bildens ytterkanter. " - -#: f.repair.cc:3807 -msgid "Chromatic Abberation" -msgstr "Kromatisk abberation" - -#: f.repair.cc:4014 -msgid "pixel group" -msgstr "pixelgrupp" - -#: f.repair.cc:4015 -msgid "circle color" -msgstr "cirkelfärg" - -#: f.repair.cc:4027 f.repair.cc:4101 -msgid "stuck pixels:" -msgstr "" - -#: f.repair.cc:4139 -msgid "Load Stuck Pixels" -msgstr "Ladda fastnade pixlar" - -#: f.repair.cc:4163 f.repair.cc:4229 -msgid "Stuck Pixels file" -msgstr "Fil med fastnade pixlar" - -#: f.repair.cc:4203 -msgid "file format error" -msgstr "filformatfel" - -#: f.retouch.cc:292 fotoxx.h:993 -msgid "Brightness" -msgstr "Ljushet" - -#: f.retouch.cc:293 fotoxx.h:1000 -msgid "Contrast" -msgstr "Kontrast" - -#: f.retouch.cc:294 -msgid "Low Color" -msgstr "" - -#: f.retouch.cc:295 -msgid "Warmer" -msgstr "" - -#: f.retouch.cc:296 -msgid "Dark Areas" -msgstr "" - -#: f.retouch.cc:304 f.retouch.cc:305 f.retouch.cc:306 -msgid "High" -msgstr "" - -#: f.retouch.cc:307 -msgid "Cooler" -msgstr "" - -#: f.retouch.cc:308 -msgid "Bright" -msgstr "" - -#: f.retouch.cc:311 -msgid "Click for white balance or black level" -msgstr "" - -#: f.retouch.cc:957 -msgid "low" -msgstr "låg" - -#: f.retouch.cc:959 -msgid "high" -msgstr "hög" - -#: f.retouch.cc:962 -msgid "Amplify" -msgstr "Förstärk" - -#: f.retouch.cc:1301 -msgid "Adjust Brightness Distribution" -msgstr "" - -#: f.retouch.cc:1339 -msgid "Flatten" -msgstr "Platta till" - -#: f.retouch.cc:1340 -msgid "Deband" -msgstr "" - -#: f.retouch.cc:1341 -msgid "Darken" -msgstr "" - -#: f.retouch.cc:1342 -msgid "Brighten" -msgstr "" - -#: f.retouch.cc:1675 -msgid "Ramp brightness across image" -msgstr "Rampa ljushet över bild" - -#: f.retouch.cc:2052 f.tools.cc:5777 -msgid "Edit function must be active" -msgstr "Redigeringsfunktionen måste vara aktiv§" - -#: f.retouch.cc:2060 fotoxx-14.03.cc:3108 -msgid "" -"Select area cannot be kept.\n" -"Continue?" -msgstr "" -"Valt område behållas.\n" -"Fortsätta?" - -#: f.retouch.cc:2089 -msgid "power: center" -msgstr "kraft: centrum" - -#: f.retouch.cc:2094 -msgid "reset area" -msgstr "återställ område§" - -#: f.tools.cc:95 -msgid "Top Image Directories" -msgstr "Toppbildmappar" - -#: f.tools.cc:96 -msgid "add directory" -msgstr "lägg till mapp" - -#: f.tools.cc:105 -msgid "Thumbnails" -msgstr "" - -#: f.tools.cc:143 f.tools.cc:742 -msgid "terminated by user" -msgstr "" - -#: f.tools.cc:194 -msgid "Choose top image directories" -msgstr "Välj översta bildmapp" - -#: f.tools.cc:195 -msgid "Choose thumbnail directory" -msgstr "" - -#: f.tools.cc:311 -#, c-format -msgid "invalid top image directory: %s" -msgstr "" - -#: f.tools.cc:317 -msgid "no thumbnails directory defined" -msgstr "" - -#: f.tools.cc:323 -msgid "thumbnails directory not .../thumbnails" -msgstr "" - -#: f.tools.cc:369 f.tools.cc:396 -#, c-format -msgid "exceeded max. images: %d" -msgstr "" - -#: f.tools.cc:493 -msgid "updating index records" -msgstr "uppdaterar indexposter" - -#: f.tools.cc:620 -#, c-format -msgid "%d image files updated \n" -msgstr "%d bildfiler uppdaterade \n" - -#: f.tools.cc:727 -msgid "COMPLETED" -msgstr "AVSLUTAT" - -#: f.tools.cc:818 -msgid "Settings" -msgstr "Inställningar" - -#: f.tools.cc:821 -msgid "Startup Display" -msgstr "Uppstartskärm" - -#: f.tools.cc:823 -msgid "Recent Files Gallery" -msgstr "Senaste filers galleri " - -#: f.tools.cc:825 -msgid "Newest Files Gallery" -msgstr "" - -#: f.tools.cc:827 -msgid "Previous Gallery" -msgstr "" - -#: f.tools.cc:829 -msgid "Previous Image" -msgstr "" - -#: f.tools.cc:831 -msgid "Blank Window" -msgstr "Svart fönster" - -#: f.tools.cc:833 -msgid "Directory Gallery" -msgstr "Mappgalleri" - -#: f.tools.cc:837 -msgid "Image File" -msgstr "Bildfil" - -#: f.tools.cc:844 -msgid "Menu Style" -msgstr "Menystil" - -#: f.tools.cc:845 -msgid "Classic" -msgstr "Klassisk" - -#: f.tools.cc:846 -msgid "Vertical" -msgstr "Vertikal" - -#: f.tools.cc:849 -msgid "Toolbar Style" -msgstr "Stil på verktygsrad" - -#: f.tools.cc:851 -msgid "Icons" -msgstr "Ikoner" - -#: f.tools.cc:852 -msgid "Both" -msgstr "Bägge" - -#: f.tools.cc:855 -msgid "Image Pan" -msgstr "Bildpanorering" - -#: f.tools.cc:856 -msgid "Drag" -msgstr "" - -#: f.tools.cc:857 -msgid "Scroll" -msgstr "" - -#: f.tools.cc:858 -msgid "Magnified" -msgstr "" - -#: f.tools.cc:867 -msgid "Default JPEG quality" -msgstr "" - -#: f.tools.cc:871 -msgid "Zooms for 200%" -msgstr "" - -#: f.tools.cc:875 -msgid "RAW command" -msgstr "" - -#: f.tools.cc:879 -msgid "RAW file types" -msgstr "" - -#: f.tools.cc:1027 -msgid "startup directory is invalid" -msgstr "uppstartmapp är ogiltig" - -#: f.tools.cc:1035 -msgid "startup file is invalid" -msgstr "uppstartfil är ogiltig" - -#: f.tools.cc:1130 -msgid "Select startup directory" -msgstr "Välj uppstartmapp" - -#: f.tools.cc:1138 -msgid "Select startup image file" -msgstr "Välj uppstartbildfil" - -#: f.tools.cc:1176 -msgid "Click list position. Click thumbnail to add." -msgstr "" - -#: f.tools.cc:1201 f.tools.cc:1418 -msgid "Edit Bookmarks" -msgstr "" - -#: f.tools.cc:1349 -msgid "unable to save bookmarks file" -msgstr "" - -#: f.tools.cc:1418 -msgid "Go To Bookmark" -msgstr "" - -#: f.tools.cc:1563 -msgid "Edit KB Shortcuts" -msgstr "" - -#: f.tools.cc:1568 -msgid "shortcut key:" -msgstr "" - -#: f.tools.cc:1569 -msgid "(enter key)" -msgstr "" - -#: f.tools.cc:1695 -#, c-format -msgid "\"%s\" Reserved, cannot be used" -msgstr "" - -#: f.tools.cc:1826 -msgid "unable to save KB-shortcuts file" -msgstr "" - -#: f.tools.cc:1914 -msgid "" -"Right-click collection thumbnail to cut/copy \n" -"to cache, insert from cache, or remove." -msgstr "" - -#: f.tools.cc:1955 -msgid "Start a new collection, add images" -msgstr "" - -#: f.tools.cc:1957 -msgid "New collection from current gallery" -msgstr "" - -#: f.tools.cc:1959 -msgid "Collection to view or edit" -msgstr "" - -#: f.tools.cc:1961 -msgid "Select images, add to cache" -msgstr "" - -#: f.tools.cc:1963 -msgid "Clear image cache" -msgstr "" - -#: f.tools.cc:1964 -msgid "(0 images)" -msgstr "" - -#: f.tools.cc:1966 -msgid "Delete a collection" -msgstr "Tag bort en samling" - -#: f.tools.cc:1987 -msgid "New Collection" -msgstr "Ny samling" - -#: f.tools.cc:1988 -msgid "Choose Collection" -msgstr "Välj samling" - -#: f.tools.cc:1989 -msgid "Delete Collection" -msgstr "Tag bort samling" - -#: f.tools.cc:1990 -#, c-format -msgid "(%d images)" -msgstr "" - -#: f.tools.cc:1991 -#, c-format -msgid "%d images remaining in cache" -msgstr "" - -#: f.tools.cc:2025 f.tools.cc:2064 -msgid "New collection created" -msgstr "" - -#: f.tools.cc:2031 -msgid "gallery is empty" -msgstr "" - -#: f.tools.cc:2105 -#, c-format -msgid "delete %s ?" -msgstr "tag bort %s ?" - -#: f.tools.cc:2461 -msgid "all collections" -msgstr "" - -#: f.tools.cc:2495 -msgid "Move Collection" -msgstr "Flytta samling" - -#: f.tools.cc:2497 -msgid "collection name" -msgstr "samlingsnamn" - -#: f.tools.cc:2500 -msgid "old path segment" -msgstr "" - -#: f.tools.cc:2503 -msgid "new path segment" -msgstr "" - -#: f.tools.cc:2592 -msgid "Replace Collection?" -msgstr "" - -#: f.tools.cc:2708 -msgid "Press ESC to exit slide show" -msgstr "Tryck ESC för att avsluta bildvisningen" - -#: f.tools.cc:2709 -msgid "last versions" -msgstr "" - -#: f.tools.cc:2713 -msgid "instant" -msgstr "direkt" - -#: f.tools.cc:2714 -msgid "fade-in" -msgstr "intoning" - -#: f.tools.cc:2715 -msgid "roll-right" -msgstr "högerrullning" - -#: f.tools.cc:2716 -msgid "roll-down" -msgstr "nedrullning" - -#: f.tools.cc:2717 -msgid "venetian" -msgstr "venetianskt" - -#: f.tools.cc:2718 -msgid "grate" -msgstr "rutnät" - -#: f.tools.cc:2719 -msgid "rectangle" -msgstr "rektangel" - -#: f.tools.cc:2720 -msgid "radar" -msgstr "radar" - -#: f.tools.cc:2721 -msgid "jaws" -msgstr "" - -#: f.tools.cc:2722 -msgid "ellipse" -msgstr "ellips" - -#: f.tools.cc:2723 -msgid "raindrops" -msgstr "regndroppar" - -#: f.tools.cc:2724 -msgid "doubledoor" -msgstr "" - -#: f.tools.cc:2725 -msgid "rotate" -msgstr "" - -#: f.tools.cc:2787 -msgid "Pause List" -msgstr "" - -#: f.tools.cc:2794 -msgid "transitions" -msgstr "övergångar" - -#: f.tools.cc:2796 -msgid "seconds" -msgstr "sekunder" - -#: f.tools.cc:2800 -msgid "Clip Limit (%)" -msgstr "" - -#: f.tools.cc:2802 -msgid "show captions" -msgstr "" - -#: f.tools.cc:2805 -msgid "music file" -msgstr "musikfil" - -#: f.tools.cc:2820 f.tools.cc:2828 f.tools.cc:2956 f.tools.cc:2979 -#: f.tools.cc:2992 -#, c-format -msgid "%d images" -msgstr "" - -#: f.tools.cc:2854 -msgid "no image files selected" -msgstr "ingen bildfil vald" - -#: f.tools.cc:2945 f.tools.cc:2968 -msgid "open collection" -msgstr "öppna samling" - -#: f.tools.cc:3013 -msgid "Select music file or playlist" -msgstr "Välj musikfil eller spellista" - -#: f.tools.cc:3046 -msgid "invalid collection" -msgstr "" - -#: f.tools.cc:3061 f.tools.cc:3131 -msgid "empty collection" -msgstr "" - -#: f.tools.cc:3167 -msgid "select random (if 5+ enabled)" -msgstr "" - -#: f.tools.cc:3186 -msgid "Transition Preferences" -msgstr "" - -#: f.tools.cc:3196 -msgid "transition" -msgstr "" - -#: f.tools.cc:3197 -msgid "enabled" -msgstr "" - -#: f.tools.cc:3198 -msgid "slowdown" -msgstr "" - -#: f.tools.cc:3199 -msgid "preference" -msgstr "" - -#: f.tools.cc:4506 -msgid "base" -msgstr "" - -#: f.tools.cc:4508 -msgid "adder" -msgstr "" - -#: f.tools.cc:4512 -msgid "New Location" -msgstr "" - -#: f.tools.cc:4517 -msgid "New File Type" -msgstr "" - -#: f.tools.cc:4521 f.tools.cc:4529 -msgid "no change" -msgstr "ingen ändring" - -#: f.tools.cc:4524 -msgid "max. Width" -msgstr "" - -#: f.tools.cc:4527 fotoxx.h:1020 -msgid "Height" -msgstr "Höjd" - -#: f.tools.cc:4532 f.tools.cc:4905 -msgid "Delete Originals" -msgstr "" - -#: f.tools.cc:4533 f.tools.cc:4902 -msgid "Copy Metadata" -msgstr "" - -#: f.tools.cc:4534 f.tools.cc:4903 -msgid "Upright" -msgstr "" - -#: f.tools.cc:4626 -msgid "file already exists" -msgstr "filen finns redan" - -#: f.tools.cc:4634 -msgid "file type not supported" -msgstr "filtypen stöds ej" - -#: f.tools.cc:4703 -msgid "cannot create new file" -msgstr "kan ej skapa ny fil" - -#: f.tools.cc:4854 -msgid "" -"new name/base/adder unreasonable\n" -" e.g. newname ### 100 10" -msgstr "" - -#: f.tools.cc:4877 -#, c-format -msgid "max. size %d x %d is not reasonable" -msgstr "max storlek %d x %d är inte förnuftig" - -#: f.tools.cc:4896 -#, c-format -msgid "Convert %d image files" -msgstr "" - -#: f.tools.cc:4897 -msgid "Rename to" -msgstr "" - -#: f.tools.cc:4898 -msgid "Convert to" -msgstr "" - -#: f.tools.cc:4899 -msgid "Resize within" -msgstr "" - -#: f.tools.cc:4900 -msgid "Output to" -msgstr "" - -#: f.tools.cc:4906 -msgid "PROCEED?" -msgstr "" - -#: f.tools.cc:4938 -msgid "Batch Convert RAW Files" -msgstr "Satsvis konvertering av RAW-filer" - -#: f.tools.cc:4969 -msgid "output file type" -msgstr "filtyp för utdata" - -#: f.tools.cc:4981 -msgid "white balance" -msgstr "vitbalans" - -#: f.tools.cc:4982 -msgid "interpolation" -msgstr "interpolation" - -#: f.tools.cc:4983 -msgid "color space" -msgstr "färgrymd" - -#: f.tools.cc:4984 -msgid "gamma curve" -msgstr "gammakurva" - -#: f.tools.cc:4987 -msgid "camera" -msgstr "kamera" - -#: f.tools.cc:4988 -msgid "fixed" -msgstr "fixat" - -#: f.tools.cc:4989 -msgid "calculated" -msgstr "beräknat" - -#: f.tools.cc:5006 -msgid "default" -msgstr "" - -#: f.tools.cc:5012 -msgid "defaults" -msgstr "" - -#: f.tools.cc:5526 -msgid "x-spacing" -msgstr "x-avstånd" - -#: f.tools.cc:5527 -msgid "x-count" -msgstr "x-antal" - -#: f.tools.cc:5528 -msgid "x-enable" -msgstr "x-enable" - -#: f.tools.cc:5534 -msgid "y-spacing" -msgstr "y-avstånd" - -#: f.tools.cc:5535 -msgid "y-count" -msgstr "y-antal" - -#: f.tools.cc:5536 -msgid "y-enable" -msgstr "y-enable" - -#: f.tools.cc:5984 -msgid "Darkest and Brightest Pixels" -msgstr "" - -#: f.tools.cc:6007 -msgid "Dark Limit" -msgstr "" - -#: f.tools.cc:6008 -msgid "Bright Limit" -msgstr "" - -#: f.tools.cc:6115 -msgid "" -"Brightness should show a gradual ramp \n" -"extending all the way to the edges." -msgstr "" -"Ljusheten borde visa a gradvis ramp \n" -"utvidgad hela vägen till kanterna." - -#: f.tools.cc:6272 -msgid "Available Translations" -msgstr "Tillgängliga översättningar" - -#: f.tools.cc:6276 -msgid "Set Language" -msgstr "Ställ in språk" - -#: f.tools.cc:6364 -msgid "Make Launcher" -msgstr "" - -#: fotoxx-14.03.cc:312 -msgid "Tab F: image file view/edit" -msgstr "" - -#: fotoxx-14.03.cc:321 -msgid "Tab G: image gallery" -msgstr "" - -#: fotoxx-14.03.cc:330 -msgid "Tab W: world map" -msgstr "" - -#: fotoxx-14.03.cc:447 -msgid "" -"First time Fotoxx startup. \n" -"Latest version: http://www.kornelix.com/fotoxx \n" -"File Index process will begin (may need some time) \n" -msgstr "" -"Start av Fotoxx för första gången. \n" -"Senaste version: http://www.kornelix.com/fotoxx \n" -"Filsynkroniseringsprocess kommer att påbörjas (kan ta lite tid) \n" - -#: fotoxx-14.03.cc:492 -msgid "Please install missing programs:" -msgstr "Installera saknade program:" - -#: fotoxx-14.03.cc:901 -msgid "(reduced)" -msgstr "" - -#: fotoxx-14.03.cc:902 -msgid "area active" -msgstr "" - -#: fotoxx-14.03.cc:903 -msgid "dialog open" -msgstr "" - -#: fotoxx-14.03.cc:904 -msgid "function busy" -msgstr "" - -#: fotoxx-14.03.cc:905 -msgid "file index busy" -msgstr "" - -#: fotoxx-14.03.cc:906 -msgid "menu locked" -msgstr "" - -#: fotoxx-14.03.cc:953 -msgid "edits" -msgstr "redigeringar" - -#: fotoxx-14.03.cc:999 -msgid "Kill active dialog?" -msgstr "" - -#: fotoxx-14.03.cc:2768 -msgid "Exceed 50 anchor points" -msgstr "Överskridit 50 ankarpunkter" - -#: fotoxx-14.03.cc:2951 -msgid "load curve from a file" -msgstr "ladda kurva från fil" - -#: fotoxx-14.03.cc:3026 -msgid "save curve to a file" -msgstr "spara kurva till en fil" - -#: fotoxx-14.03.cc:3101 -msgid "Too many edits, please save image" -msgstr "För många redigeringar, spara bilden" - -#: fotoxx-14.03.cc:3116 -msgid "" -"Select area not active.\n" -"Continue?" -msgstr "" -"Valt område ej aktivt.\n" -"Fortsätta?" - -#: fotoxx-14.03.cc:3503 -msgid "This action will discard changes\n" -msgstr "Denna åtgärd kommer att förkasta ändringar\n" - -#: fotoxx-14.03.cc:3504 fotoxx.h:1026 -msgid "Keep" -msgstr "Behåll" - -#: fotoxx-14.03.cc:3505 -msgid "Discard" -msgstr "Kasta" - -#: fotoxx-14.03.cc:3519 fotoxx-14.03.cc:3539 -msgid "prior function active" -msgstr "" - -#: fotoxx.h:983 -msgid "Add" -msgstr "Lägg till" - -#: fotoxx.h:984 -msgid "Add All" -msgstr "Lägg till allt" - -#: fotoxx.h:986 -msgid "Amount" -msgstr "Mängd" - -#: fotoxx.h:987 -msgid "Angle" -msgstr "Vinkel" - -#: fotoxx.h:988 -msgid "Apply" -msgstr "Tillämpa" - -#: fotoxx.h:989 -msgid "Autocomplete" -msgstr "Autokomplettera" - -#: fotoxx.h:990 -msgid "Black" -msgstr "Svart" - -#: fotoxx.h:991 -msgid "Blend Width" -msgstr "Bländaröppning" - -#: fotoxx.h:994 -msgid "Browse" -msgstr "Bläddra" - -#: fotoxx.h:995 -msgid "Cancel" -msgstr "Avbryt" - -#: fotoxx.h:996 -msgid "center" -msgstr "centrum" - -#: fotoxx.h:997 -msgid "Choose" -msgstr "Välj" - -#: fotoxx.h:998 -msgid "Clear" -msgstr "Rensa" - -#: fotoxx.h:1002 -msgid "Create" -msgstr "" - -#: fotoxx.h:1003 -msgid "Curve File:" -msgstr "Kurvfil:" - -#: fotoxx.h:1004 -msgid "Cut" -msgstr "Beskär" - -#: fotoxx.h:1005 -msgid "Delete" -msgstr "Tag bort" - -#: fotoxx.h:1007 -msgid "Bdist" -msgstr "" - -#: fotoxx.h:1008 -msgid "Done" -msgstr "Gjort" - -#: fotoxx.h:1009 -msgid "edge" -msgstr "kant" - -#: fotoxx.h:1010 -msgid "Edit" -msgstr "Redigera" - -#: fotoxx.h:1012 -msgid "Erase" -msgstr "Radera" - -#: fotoxx.h:1013 -msgid "Fetch" -msgstr "Hämta" - -#: fotoxx.h:1014 -msgid "Find" -msgstr "Hitta" - -#: fotoxx.h:1015 -msgid "Finish" -msgstr "Avsluta" - -#: fotoxx.h:1016 -msgid "Font" -msgstr "Typsnitt" - -#: fotoxx.h:1017 -msgid "Geotags" -msgstr "" - -#: fotoxx.h:1019 -msgid "Grid" -msgstr "Rutnät" - -#: fotoxx.h:1023 -msgid "Images" -msgstr "" - -#: fotoxx.h:1024 -msgid "Insert" -msgstr "Infoga" - -#: fotoxx.h:1027 -msgid "limit" -msgstr "gräns" - -#: fotoxx.h:1028 -msgid "Make" -msgstr "" - -#: fotoxx.h:1030 -msgid "Map" -msgstr "Karta" - -#: fotoxx.h:1031 -msgid "Max" -msgstr "" - -#: fotoxx.h:1032 -msgid "Negative" -msgstr "" - -#: fotoxx.h:1033 -msgid "New" -msgstr "Ny" - -#: fotoxx.h:1035 zfuncs.cc:8589 -msgid "No" -msgstr "Nej" - -#: fotoxx.h:1036 -msgid "no images" -msgstr "" - -#: fotoxx.h:1037 -msgid "no selection" -msgstr "" - -#: fotoxx.h:1038 -msgid "OK" -msgstr "OK" - -#: fotoxx.h:1040 -msgid "Open RAW File" -msgstr "Öppna RAW-fil" - -#: fotoxx.h:1042 -msgid "Pause" -msgstr "Paus" - -#: fotoxx.h:1043 -msgid "Percent" -msgstr "Procent" - -#: fotoxx.h:1045 -msgid "Presets" -msgstr "Förinställningar" - -#: fotoxx.h:1047 -msgid "Proceed" -msgstr "Fortsätt" - -#: fotoxx.h:1049 -msgid "range" -msgstr "område" - -#: fotoxx.h:1052 -msgid "Reduce" -msgstr "Minska" - -#: fotoxx.h:1053 -msgid "Remove" -msgstr "Tag bort" - -#: fotoxx.h:1055 -msgid "Reset" -msgstr "Återställ" - -#: fotoxx.h:1056 -msgid "Rotate" -msgstr "Rotera" - -#: fotoxx.h:1058 -msgid "Unknown file type, save as tiff/jpeg/png to edit" -msgstr "Okänd filtyp, spara som tiff/jpeg/png för att redigera" - -#: fotoxx.h:1059 -msgid "Search" -msgstr "Sök" - -#: fotoxx.h:1063 -msgid "Size" -msgstr "Storlek" - -#: fotoxx.h:1064 -msgid "Start" -msgstr "Start" - -#: fotoxx.h:1065 -msgid "Strength" -msgstr "" - -#: fotoxx.h:1066 -msgid "Threshold" -msgstr "Tröskel" - -#: fotoxx.h:1067 -#, c-format -msgid "exceed %d files" -msgstr "överskred %d filer" - -#: fotoxx.h:1069 -msgid "Trim" -msgstr "Trimma" - -#: fotoxx.h:1070 -msgid "Undo All" -msgstr "Ångra allt" - -#: fotoxx.h:1071 -msgid "Undo Last" -msgstr "Ångra sista" - -#: fotoxx.h:1073 -msgid "Unfinish" -msgstr "Oavslutad" - -#: fotoxx.h:1075 -msgid "View" -msgstr "Vy" - -#: fotoxx.h:1076 -msgid "Web" -msgstr "Webb" - -#: fotoxx.h:1077 -msgid "White" -msgstr "Vit" - -#: fotoxx.h:1079 -msgid "x-offset" -msgstr "x-förskjutning" - -#: fotoxx.h:1080 -msgid "y-offset" -msgstr "y-förskjutning" - -#: fotoxx.h:1081 zfuncs.cc:8589 -msgid "Yes" -msgstr "Ja" - -#: zfuncs.cc:4136 -msgid "user guide not found" -msgstr "användarhandledning ej funnen" - -#: zfuncs.cc:4944 zfuncs.cc:10009 -#, c-format -msgid "cannot open file %s" -msgstr "kan ej öppna fil %s" - -#: zfuncs.cc:4980 -msgid "save screen to file" -msgstr "spara skärmbild i fil" - -#: zfuncs.cc:8624 zfuncs.cc:8666 zfuncs.cc:9075 zfuncs.cc:9393 zfuncs.cc:10122 -#: zfuncs.cc:10128 zfuncs.cc:10134 zfuncs.cc:10140 -msgid "cancel" -msgstr "avbryt" - -#: zfuncs.cc:9030 -msgid "choose file" -msgstr "" - -#: zfuncs.cc:9035 -msgid "choose files" -msgstr "" - -#: zfuncs.cc:9040 -msgid "save" -msgstr "spara" - -#: zfuncs.cc:9046 -msgid "choose folder" -msgstr "" - -#: zfuncs.cc:9051 -msgid "choose folders" -msgstr "" - -#: zfuncs.cc:9056 -msgid "create folder" -msgstr "skapa mapp" - -#: zfuncs.cc:9064 -msgid "hidden" -msgstr "gömd" - -#: zfuncs.cc:9068 -msgid "quality" -msgstr "kvalitet" - -#: zfuncs.cc:9125 -msgid "JPG quality 0-100" -msgstr "JPG-kvalitet 0-100" - -#: zfuncs.cc:9384 -#, c-format -msgid "printed image width: %.1f height: %.1f cm" -msgstr "utskriven bilds bredd: %.1f höjd: %.1f cm" - -#: zfuncs.cc:9393 -msgid "done" -msgstr "klart" - -#: zfuncs.cc:9393 zfuncs.cc:9405 -msgid "margins" -msgstr "marginaler" - -#: zfuncs.cc:9401 -msgid "top" -msgstr "topp" - -#: zfuncs.cc:9402 -msgid "bottom" -msgstr "botten" - -#: zfuncs.cc:9411 -msgid "image scale" -msgstr "bildskala" - -#: zfuncs.cc:9413 -msgid "percent" -msgstr "procent" - -#: zfuncs.cc:9896 -msgid "" -"Initial parameters file created. \n" -"Inspect and revise if necessary." -msgstr "" -"Startparameterfil skapad. \n" -"Undersök och ändra vid behov." - -#: zfuncs.cc:9912 -msgid "load parameters from a file" -msgstr "ladda parametrar från fil" - -#: zfuncs.cc:9981 -msgid "save parameters to a file" -msgstr "spara parametrar i en fil" - -#: zfuncs.cc:10120 zfuncs.cc:10126 zfuncs.cc:10132 zfuncs.cc:10138 -msgid "edit parameters" -msgstr "redigera parametrar" - -#: zfuncs.cc:10121 zfuncs.cc:10127 -msgid "" -"list\n" -"all" -msgstr "" -"lista\n" -"allt" - -#: zfuncs.cc:10121 zfuncs.cc:10127 zfuncs.cc:10133 zfuncs.cc:10139 -msgid "" -"load\n" -"file" -msgstr "" -"ladda\n" -"fil" - -#: zfuncs.cc:10121 zfuncs.cc:10127 zfuncs.cc:10133 zfuncs.cc:10139 -msgid "" -"save\n" -"file" -msgstr "" -"spara\n" -"fil" - -#: zfuncs.cc:10122 zfuncs.cc:10134 -msgid "" -"add\n" -"new" -msgstr "" -"lägg till\n" -"nytt" - -#: zfuncs.cc:10122 zfuncs.cc:10128 zfuncs.cc:10134 zfuncs.cc:10140 -msgid "apply" -msgstr "tillämpa" - -#: zfuncs.cc:10175 -msgid "apply?" -msgstr "tillämpa?" - -#: zfuncs.cc:10232 -msgid "(new parm name)" -msgstr "(nytt parameternamn)" - -#: zfuncs.cc:10232 -msgid "add parameter" -msgstr "lägg till parameter" - -#~ msgid "no top image directory defined" -#~ msgstr "ingen högsta bildmapp är definierad" - -#~ msgid "Synchronize Files" -#~ msgstr "Synkronisera filer" - -#~ msgid "Batch Rename" -#~ msgstr "Massomdöpning" - -#~ msgid "Rename multiple image files" -#~ msgstr "Namnbyte av flera bildfiler" - -#~ msgid "Convert resize, move multiple files" -#~ msgstr "Konvertera, ändra storlek, flytta flera filer" - -#~ msgid "" -#~ "Synchronize Files makes gallery windows fast \n" -#~ "and enables metadata functions to work correctly.\n" -#~ msgstr "" -#~ "Filsynkronisering gör gallerifönster snabbt \n" -#~ "och gör att metadata-funktioner fungerar korrekt.\n" - -#~ msgid "top image directory is invalid" -#~ msgstr "högsta bildmapp är ogiltig" - -#~ msgid "thumbnail directory is invalid" -#~ msgstr "miniartyrbildmapp är giltig" - -#~ msgid "no search index file is present" -#~ msgstr "ingen indexsökfil finns" - -#~ msgid "last file sync time is unknown" -#~ msgstr "senaste filsynkroniseringstid är okänd" - -#~ msgid "new/modified files are present" -#~ msgstr "nya/ändrade filer finns" - -#~ msgid "file sync disabled" -#~ msgstr "filsynkronisering är bortkopplad" - -#~ msgid "file sync not needed" -#~ msgstr "filsynkronisering behövs ej" - -#~ msgid "Use file sync function (recommended)" -#~ msgstr "Använd filsynkronieringsfunktion (rekommenderas)" - -#~ msgid "(if NO, metadata functions are disabled)" -#~ msgstr "(om NEJ blir metadata-funktioner ej tillgängliga" - -#~ msgid "Thumbnail Options:" -#~ msgstr "Miniatyrbildsalternativ" - -#~ msgid "None (galleries are slow)" -#~ msgstr "Inga (gallerier är långsamma)" - -#~ msgid "Use hidden directories with images" -#~ msgstr "Använd dolda mappar med bilder" - -#~ msgid "Use Directory" -#~ msgstr "Använd mappar" - -#~ msgid "Initialize Everything" -#~ msgstr "Initialisera allt" - -#~ msgid "File sync is necessary. Cancel anyway?" -#~ msgstr "Filsynkronisering är nödvändig, Avbryta ändå?" - -#~ msgid "directory is invalid" -#~ msgstr "mapp är ogiltig" - -#~ msgid "select a thumbnail option" -#~ msgstr "välj mimiatyrbildsval" - -#~ msgid "thumbnail directory cannot be under top directory" -#~ msgstr "miniatyrbildsmapp kan ej ligga under toppmappen" - -#~ msgid "Synchronize Files (may need some time)" -#~ msgstr "Synkronisera filer (kan ta lite tid)" - -#~ msgid "delete all thumbnails" -#~ msgstr "tag bort alla miniatyrbilder" - -#~ msgid "delete orphan thumbnails" -#~ msgstr "tag bort föräldralösa miniatyrbilder" - -#~ msgid "%d orphan thumbnails deleted \n" -#~ msgstr "%d föräldralösa miniatyrbilderborttagna \n" - -#~ msgid "create missing and update stale thumbnails" -#~ msgstr "skapa saknade och uppdatera förlegade miniatyrbilder" - -#~ msgid "%d thumbnails created, %d errors \n" -#~ msgstr "%d miniatyrbilder skapade, %d fel \n" - -#~ msgid "no search index file is in use" -#~ msgstr "ingen indexsökfil används" - -#~ msgid "rebuild search index" -#~ msgstr "bygg om sökindex" - -#~ msgid "%d current index records found \n" -#~ msgstr "%d aktuella indexposter funna \n" - -#~ msgid "find all image files and build index records" -#~ msgstr "hitta alla filer och bygg indexposter" - -#~ msgid "too many image files" -#~ msgstr "för många bildfiler" - -#~ msgid "found %d image files \n" -#~ msgstr "hittat %d bildfiler \n" - -#~ msgid "merging old and new index records" -#~ msgstr "slår ihop gamla och nya indexposter" - -#~ msgid "files found in current index recs: %d \n" -#~ msgstr "funna filer i aktuella indexposter: %d \n" - -#~ msgid "KILLED" -#~ msgstr "DÖDAD" - -#~ msgid "new base name" -#~ msgstr "nytt basnamn" - -#~ msgid "starting sequence" -#~ msgstr "begynnelsesekvens" - -#~ msgid "increment" -#~ msgstr "steg" - -#~ msgid "new file already exists:" -#~ msgstr "ny fil finns redan:" - -#~ msgid "Rename failed:" -#~ msgstr "Namnändring misslyckades:" - -#~ msgid "base name / sequence / increment not reasonable" -#~ msgstr "basnamn / sekvens / steg ej lämpliga" - -#~ msgid "new file type" -#~ msgstr "ny filtyp" - -#~ msgid "max. width" -#~ msgstr "max. bredd" - -#~ msgid "move to location" -#~ msgstr "flytta till plats" - -#~ msgid "" -#~ "copy files? \n" -#~ " to location %s" -#~ msgstr "" -#~ "kopiera filer? \n" -#~ " till plats %s" - -#~ msgid "" -#~ "copy files? (max. %d x %d) \n" -#~ " to location %s" -#~ msgstr "" -#~ "kopiera filer? (max %d x %d) \n" -#~ "till plats %s" - -#~ msgid "" -#~ "\n" -#~ " and delete originals" -#~ msgstr "" -#~ "\n" -#~ " och tag bort originalen" - -#~ msgid "open" -#~ msgstr "öppna" - -#~ msgid "choose" -#~ msgstr "välj" - -#~ msgid "open folder" -#~ msgstr "öppna mapp" - -#~ msgid "Adjust White Balance" -#~ msgstr "Justera vitbalans" - -#~ msgid "Click white or gray image location" -#~ msgstr "Klicka på vit- eller gråbildsplats" - -#~ msgid "reduce" -#~ msgstr "minska" - -#~ msgid "outline threshold" -#~ msgstr "konturtröskel" - -#~ msgid "outline width" -#~ msgstr "konturbredd" - -#~ msgid "image brightness" -#~ msgstr "bildljushet" - -#~ msgid "customize" -#~ msgstr "anpassa" - -#~ msgid "Adjust contrast using a gamma curve" -#~ msgstr "Justera kontrast med en gamma kurva" - -#~ msgid "Gamma Curves" -#~ msgstr "Gammakurvor" - -#~ msgid "Click on a white/gray area to fix color tint" -#~ msgstr "Klicka på ett vitt/grått område för att fixa färgton" - -#~ msgid "White Balance" -#~ msgstr "Vitbalans" - -#~ msgid "Brightness/Color" -#~ msgstr "Ljushet/färg" - -#~ msgid "edge detection" -#~ msgstr "kantdetektion" - -#~ msgid "cycles" -#~ msgstr "perioder" - -#~ msgid "small-steps" -#~ msgstr "småsteg" - -#~ msgid "Saturation" -#~ msgstr "Mättnad" - -#~ msgid " reset 1 " -#~ msgstr " reset 1 " - -#~ msgid "reset all" -#~ msgstr "återställ allt" - -#~ msgid "previous" -#~ msgstr "föregående" - -#~ msgid "adjust image gamma" -#~ msgstr "justera bildens gamma" - -#~ msgid "arrow keys" -#~ msgstr "pilknappar" - -#~ msgid "curve file is invalid" -#~ msgstr "kurvfil är ogiltig" - -#~ msgid "curve file has different no. of curves" -#~ msgstr "kurvfil har annorlunda antal kurvor" - -#~ msgid "histogram" -#~ msgstr "histogram" - -#~ msgid "Darker Areas" -#~ msgstr "Mörkare områden" - -#~ msgid "Lighter Areas" -#~ msgstr "Ljusare områden" - -#~ msgid "angle" -#~ msgstr "vinkel" - -#~ msgid "cmsCreateTransform() failed" -#~ msgstr "cmsCreateTransform() misslyckades" - -#~ msgid "no plugin command" -#~ msgstr "inget pluginkommando" - -#~ msgid "User Guide etc." -#~ msgstr "Användarhandbok etc." - -#~ msgid "Edit Caption/Comments" -#~ msgstr "Redigera beskrivning/kommentarer" - -#~ msgid "Edit image caption or comment" -#~ msgstr "Redigera bildbeskrivning eller kommentar" - -#~ msgid "Edit image date/rating/tags" -#~ msgstr "Redigera bilds datum/rangordning/flaggor" - -#~ msgid "Edit image geotags" -#~ msgstr "Redigera bild-geotags" - -#~ msgid "jump to first page" -#~ msgstr "hoppa till första sidan" - -#~ msgid "jump to last page" -#~ msgstr "hoppa till sista sidan" - -#~ msgid "change sequence" -#~ msgstr "ändra ordningsföljd" - -#~ msgid "Edit Caption and Comments" -#~ msgstr "Redigera beskrivning och kommentar" - -#~ msgid "image date (yyyymmdd)" -#~ msgstr "bilddatum (ååååmmdd)" - -#~ msgid "use last" -#~ msgstr "använd senaste" - -#~ msgid "image stars" -#~ msgstr "bildstjärnor" - -#~ msgid "current tags" -#~ msgstr "aktuella taggar" - -#~ msgid "there are zero stuck pixels" -#~ msgstr "det finns inga fastnade pixlar" - -#~ msgid "Save Stuck Pixels" -#~ msgstr "Spara fastnade pixlar" - -#~ msgid "Contrast Span" -#~ msgstr "Kontrastområde" - -#~ msgid "Contrast Spread" -#~ msgstr "Kontrastspridning" - -#~ msgid "Contrast Saturation" -#~ msgstr "Kontrastmättnad" - -#~ msgid "Use buttons or drag right edge with mouse" -#~ msgstr "Använd knappar eller dra höger kant med mus" - -#~ msgid "invert" -#~ msgstr "invertera" - -#~ msgid "Cartoon" -#~ msgstr "Serieteckning" - -#~ msgid "Convert into a cartoon drawing" -#~ msgstr "Omvandla till en serieteckning" - -#~ msgid "new gallery from tab F" -#~ msgstr "nytt galleri från flik F" - -#~ msgid "outlines" -#~ msgstr "konturer" - -#~ msgid "pencil" -#~ msgstr "penna" - -#~ msgid "chalk" -#~ msgstr "krita" - -#~ msgid "Add Image Outlines" -#~ msgstr "Lägg till bildkanter" - -#~ msgid "Copy to" -#~ msgstr "Kopiera till" - -#~ msgid "Move to" -#~ msgstr "Flytta till" - -#~ msgid "Print" -#~ msgstr "Skriv ut" - -#~ msgid "insert" -#~ msgstr "sätt in" - -#~ msgid "add all" -#~ msgstr "lägg till allt" - -#~ msgid "Open Recent File" -#~ msgstr "Öppna senaste fil" - -#~ msgid "Report memory and CPU usage" -#~ msgstr "Rapportera användning av minne och CPU" - -#~ msgid "Add tags to multiple images" -#~ msgstr "Lägg till flaggor till flera bilder" - -#~ msgid "Batch Add Tags" -#~ msgstr "Masstillägg av taggar" - -#~ msgid "Batch Delete Tag" -#~ msgstr "Borttagning av flagga satsvis" - -#~ msgid "Delete a tag from multiple images" -#~ msgstr "Tag bort en flagga från flera bilder" - -#~ msgid "Convert to charcoal or chalk drawing" -#~ msgstr "Omvandla till träkols- eller krit-ritning" - -#~ msgid "Outlines" -#~ msgstr "Konturer" - -#~ msgid "tag to remove" -#~ msgstr "flagga för borttagning" - -#~ msgid "optional replacement" -#~ msgstr "valbar ersättning" - -#~ msgid "search all files" -#~ msgstr "leta i alla filer" - -#~ msgid "no tag specified" -#~ msgstr "inga flaggor beskrivna" - -#~ msgid "specify tag" -#~ msgstr "beskriv flagga" - -#~ msgid "Start new collection" -#~ msgstr "Påbörja en ny samling" - -#~ msgid "Choose a collection to view/edit" -#~ msgstr "Välj en samling för granskning/redigering" - -#~ msgid "Select images to add/move/remove" -#~ msgstr "Välj bild för tillägg/flyttning/borttagning" - -#~ msgid "" -#~ "To insert the selected images, press \n" -#~ "[Insert] and click gallery position. \n" -#~ "To remove the images, press [Delete]" -#~ msgstr "" -#~ "För att skjuta in vald bild, tryck \n" -#~ "[Insert] och klicka på galleriplatsen. \n" -#~ "För att ta bort bilder, tryck [Delete]" - -#~ msgid "Choose a collection first" -#~ msgstr "Välj en samling först" - -#~ msgid "insert images at click position" -#~ msgstr "skjut in bild vid klickplatsen" - -#~ msgid "remove the images" -#~ msgstr "tag bort bilderna" - -#~ msgid "%d images selected" -#~ msgstr "%d bilder valda" - -#~ msgid "absolute" -#~ msgstr "absolut" - -#~ msgid "Transform" -#~ msgstr "Omvandla" - -#~ msgid "Zoom-in (bigger)" -#~ msgstr "Zooma in (större)" - -#~ msgid "Zoom-out (smaller)" -#~ msgstr "Zooma ut (mindre)" - -#~ msgid "gold" -#~ msgstr "guld" - -#~ msgid "Turn upright or level tilted image" -#~ msgstr "Räta upp eller gör lutande bild vågrätt" - -#~ msgid "start edit function first" -#~ msgstr "starta redigeringsfunktionen först" - -#~ msgid "Start Trim function for each new image" -#~ msgstr "Börja trimmningsfunktion för varje ny bild" - -#~ msgid "" -#~ "new keyboard shortcuts installed \n" -#~ "prior renamed to KB-shortcuts-old" -#~ msgstr "" -#~ "nya tangetntbordsgenvägar installerade \n" -#~ "föregående omdöpta till KB-shortcuts-old" - -#~ msgid "Art" -#~ msgstr "Sort" - -#~ msgid "Foreground Color" -#~ msgstr "Förgrundsfärg" - -#~ msgid "Selected Images Action" -#~ msgstr "Välj bildåtgärd" - -#~ msgid "Commit" -#~ msgstr "Delge" - -#~ msgid "Edit Tags" -#~ msgstr "Redigera taggar" - -#~ msgid "" -#~ "When editing a collection, right-click \n" -#~ "an image or thumbnail to add or remove." -#~ msgstr "" -#~ "Vid redigering av en samling, högerklicka \n" -#~ "på en bild eller miniatyr för att lägga till eller ta bort" - -#~ msgid "Edit a collection" -#~ msgstr "Redigera en samling" - -#~ msgid "View a collection" -#~ msgstr "Visa en samling" - -#~ msgid "Editing:" -#~ msgstr "Redigering:" - -#~ msgid "Action:" -#~ msgstr "Åtgärd:" - -#~ msgid "Edit Collection" -#~ msgstr "Redigera samling" - -#~ msgid "View Collection" -#~ msgstr "Visa samling" - -#~ msgid "add image to collection" -#~ msgstr "lägg till bild till samling" - -#~ msgid "remove image from collection" -#~ msgstr "tag bort bild från samling" - -#~ msgid "remove and save image" -#~ msgstr "tag bort och spara bild" - -#~ msgid "insert saved images here" -#~ msgstr "sätt in sparad bild här" - -#~ msgid "too many saved files" -#~ msgstr "för många sparade filer" - -#~ msgid "bigger" -#~ msgstr "större" - -#~ msgid "smaller" -#~ msgstr "mindre" - -#~ msgid "select files to rename" -#~ msgstr "välj filer för omdöpning" - -#~ msgid "add image to collection: %s" -#~ msgstr "lägg till bild till samlingen: %s" - -#~ msgid "Quit" -#~ msgstr "Avsluta" - -#~ msgid "Choose file type" -#~ msgstr "Välj filtyp" - -#~ msgid "Select RAW files to convert" -#~ msgstr "Välj RAW-filer för omvandling" - -#~ msgid "export to location" -#~ msgstr "exportera till plats" - -#~ msgid "new max. width" -#~ msgstr "ny max bredd" - -#~ msgid "Batch Convert/Resize/Export" -#~ msgstr "Satsvis konvertering/Storleksförändring/Export" - -#~ msgid "filespec too long:" -#~ msgstr "filspec för lång" - -#~ msgid "TIFF write failure" -#~ msgstr "Fel vid skrivning av TIFF" - -#~ msgid "The target file already exists" -#~ msgstr "Målfilen finns redan" - -#~ msgid "cannot open .tiff and .info files" -#~ msgstr "kan ej öppna .tiff- och .info-filer" - -#~ msgid "select by mouse" -#~ msgstr "välj med mus" - -#~ msgid "help file not found: %s" -#~ msgstr "hjälpfil ej hittad: %s" - -#~ msgid "" -#~ "Rename failed: \n" -#~ " %s" -#~ msgstr "" -#~ "Omdöpning misslyckades: \n" -#~ " %s" - -#~ msgid "top hat filter by color" -#~ msgstr "top hat-filter med färg" - -#~ msgid "set median brightness by color" -#~ msgstr "sätt medialjushet genom färg" - -#~ msgid "flatten outliers by color (2)" -#~ msgstr "platta till \"uteliggare\" med färg (2)" - -#~ msgid "flatten outliers by color (1)" -#~ msgstr "platta till \"uteliggare\" med färg (1)" - -#~ msgid "Soften" -#~ msgstr "Mjukgöra" - -#~ msgid "" -#~ "Press the reduce button to reduce noise \n" -#~ "in small steps. Use [Undo] to start over." -#~ msgstr "" -#~ "Tryck på reducera-knappen för att reducera brus \n" -#~ "i små steg. Använd ångra för att börja om igen." - -#~ msgid "List of keyboard shortcuts" -#~ msgstr "Lista på tangentsbordsgenvägar" - -#~ msgid "" -#~ "Outline\n" -#~ " Width" -#~ msgstr "" -#~ "Kontur\n" -#~ " bredd" - -#~ msgid "Monitor Check" -#~ msgstr "Kontroll av bildskärm" - -#~ msgid "Magnified Scroll" -#~ msgstr "Förstornings-skroll" - -#~ msgid "Drag Mouse" -#~ msgstr "Drag med mus" - -#~ msgid "contrast" -#~ msgstr "kontrast" - -#~ msgid "Adjust Brightness and Color" -#~ msgstr "Justera ljus och färg" - -#~ msgid "Save+F" -#~ msgstr "Spara+F" - -#~ msgid "Save to a new file" -#~ msgstr "Spara till en ny fil" - -#~ msgid "Save+V" -#~ msgstr "Spara+V" - -#~ msgid "Save to a new version" -#~ msgstr "Spara till en ny version" - -#~ msgid "Save to the same file" -#~ msgstr "Spara till samma fil" - -#~ msgid "Save to a new file name" -#~ msgstr "Spara till ett nytt filnamn" - -#~ msgid "Save to New File" -#~ msgstr "Spara till ny fil" - -#~ msgid "Save to a new (next) version" -#~ msgstr "Spara till en ny (nästa) version" - -#~ msgid "Save to New Version" -#~ msgstr "Spara till ny version" - -#~ msgid "Save to the same file (replace)" -#~ msgstr "Spara till samma fil (utbyte)" - -#~ msgid "Save to Same File" -#~ msgstr "Spara till samma fil" - -#~ msgid "Save File" -#~ msgstr "Spara fil" - -#~ msgid "Warning" -#~ msgstr "Varning" - -#~ msgid "Do not warn again" -#~ msgstr "Varna inte igen" - -#~ msgid "Overwrite original file?" -#~ msgstr "Skriva över originalfilen?" - -#~ msgid "Warn Overwrite Original" -#~ msgstr "Varna vid överskrivning av original" - -#~ msgid "bright pixels" -#~ msgstr "ljusa pixlar" - -#~ msgid "Expand Brightness Range" -#~ msgstr "Expandera ljushetsområde" - -#~ msgid "Flatten Brightness Distribution" -#~ msgstr "Platta till ljushetsfördelning" - -#~ msgid "Expand brightness range" -#~ msgstr "Utvidga ljusstyrkeområdet" - -#~ msgid "Expand Brightness" -#~ msgstr "Expandera ljushet" - -#~ msgid "Flatten Brightness" -#~ msgstr "Platta till ljushet" - -#~ msgid "Cut off unwanted margins" -#~ msgstr "Klipp bort oönskade marginaler" - -#~ msgid "Trim/Crop" -#~ msgstr "Trimma bild" - -#~ msgid "Drag middle to move, drag corners to resize." -#~ msgstr "Drag i mitten för att flytta, i hörnen för att ändra storlek." - -#~ msgid "degrees" -#~ msgstr "grader" - -#~ msgid "Rotate Image" -#~ msgstr "Rotera bild" - -#~ msgid "Save CMYK parameters" -#~ msgstr "Spara CMYK-parametrar" - -#~ msgid "CMYK parameters file" -#~ msgstr "CMYK-parameterfil" - -#~ msgid "Load CMYK parameters" -#~ msgstr "Ladda CMYK-parametrar" - -#~ msgid "Add standard bias" -#~ msgstr "Lägg till standardförskjutning" - -#~ msgid "replace original files? (max. %d x %d)" -#~ msgstr "ersätta ursprungliga filer? max %d x %d)" - -#~ msgid "replace original files?" -#~ msgstr "ersätta originalfiler?" - -#~ msgid "delete originals" -#~ msgstr "tag bort originalen" - -#~ msgid "remove EXIF" -#~ msgstr "tag bort EXIF" - -#~ msgid "replace originals" -#~ msgstr "ersätta originalen" - -#~ msgid "same" -#~ msgstr "samma" - -#~ msgid "save as collection" -#~ msgstr "spara en samling" - -#~ msgid "collection:" -#~ msgstr "samling:" - -#~ msgid "continuous loop" -#~ msgstr "kontinuerlig slinga" - -#~ msgid "latest versions only" -#~ msgstr "endast senaste version" - -#~ msgid "Batch Convert/Resize/Move" -#~ msgstr "Satsvis konvertera/ändra storlek/flytta" - -#~ msgid "Blue: Red" -#~ msgstr "Blå: Röd" - -#~ msgid "Green: Blue" -#~ msgstr "Grön: Blå" - -#~ msgid "Red: Green" -#~ msgstr "Röd: Grön" - -#~ msgid "search index file missing" -#~ msgstr "indexsökfil saknas" - -#~ msgid "Discard edits?" -#~ msgstr "Strunta i redigeringar?" - -#~ msgid "prior function still active" -#~ msgstr "föregående funktion fortfarande aktiv" - -#~ msgid "completed" -#~ msgstr "fullgjort" - -#~ msgid "new top directory" -#~ msgstr "ny högsta mapp" - -#~ msgid "old top directory" -#~ msgstr "gammal högsta mapp" - -#~ msgid "geotags file must be downloaded" -#~ msgstr "geotags-fil måste laddas ner" - -#~ msgid "CMYK Density" -#~ msgstr "CMYK-täthet" - -#~ msgid "menu name" -#~ msgstr "menynamn" - -#~ msgid "False Colors" -#~ msgstr "Byt färg" - -#~ msgid "+Brightness -Density" -#~ msgstr "+Ljusstyrka -Täthet" - -#~ msgid "" -#~ "warning: real memory %d MB < required %d MB \n" -#~ "response time may become very long \n" -#~ msgstr "" -#~ "varning: fysiskt minne %d MB < krävt %d MB \n" -#~ "svarstid kan komma att bli lång \n" - -#~ msgid "location is not a valid directory" -#~ msgstr "platsen är inte en giltig mapp" - -#~ msgid "shift-left" -#~ msgstr "shift-vänster§" - -#~ msgid "Previous Image Viewed" -#~ msgstr "Senaste betraktade bild" - -#~ msgid "Edit Function Amplifier" -#~ msgstr "Redigera funktionsförstärkare" - -#~ msgid "delete" -#~ msgstr "tag bort" - -#~ msgid "create" -#~ msgstr "skapa" - -#~ msgid "Edit translations while using Fotoxx" -#~ msgstr "Redigera översättningar medan Fotoxx körs" - -#~ msgid "Edit Translations" -#~ msgstr "Redigera översättningar" - -#~ msgid "Favorites Menu" -#~ msgstr "Meny med favoriter" diff -Nru fotoxx-14.03/Makefile fotoxx-14.04/Makefile --- fotoxx-14.03/Makefile 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/Makefile 2014-04-01 06:09:32.000000000 +0000 @@ -1,6 +1,6 @@ # fotoxx makefile -FOTOXX = fotoxx-14.03.cc +FOTOXX = fotoxx-14.04.cc # defaults for parameters that may be pre-defined CXXFLAGS ?= -O2 -Wall -ggdb -Wno-deprecated-declarations @@ -17,7 +17,6 @@ DOCDIR = $(PREFIX)/share/doc/fotoxx MANDIR = $(PREFIX)/share/man/man1 MENUFILE = $(PREFIX)/share/applications/fotoxx.desktop -APPDATADIR = $(PREFIX)/share/appdata CFLAGS = $(CXXFLAGS) -c `pkg-config --cflags gtk+-3.0` LIBS = `pkg-config --libs gtk+-3.0` @@ -101,8 +100,6 @@ # menu (desktop) file cp -f desktop $(DESTDIR)$(MENUFILE) xdg-desktop-menu install --novendor $(DESTDIR)$(MENUFILE) - # appdata xml file - cp -f appdata/*.xml $(DESTDIR)$(APPDATADIR) uninstall: rm -f $(DESTDIR)$(BINDIR)/fotoxx diff -Nru fotoxx-14.03/zfuncs.cc fotoxx-14.04/zfuncs.cc --- fotoxx-14.03/zfuncs.cc 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/zfuncs.cc 2014-04-01 06:09:32.000000000 +0000 @@ -5226,7 +5226,7 @@ // add menu item to menu bar, with optional response function -GtkWidget * add_menubar_item(GtkWidget *wmbar, cchar *mname, mtFunc func) +GtkWidget * add_menubar_item(GtkWidget *wmbar, cchar *mname, cbFunc func) { GtkWidget *wmitem; @@ -5239,7 +5239,7 @@ // add submenu item to menu item, with optional response function -GtkWidget * add_submenu_item(GtkWidget *wmitem, cchar *mlab, mtFunc func, cchar *mtip) +GtkWidget * add_submenu_item(GtkWidget *wmitem, cchar *mlab, cbFunc func, cchar *mtip) { GtkWidget *wmsub, *wmsubitem; GtkWidget *wicon = 0; @@ -5291,7 +5291,7 @@ // add toolbar button with stock icon ("gtk-quit") or custom icon ("iconfile.png") -GtkWidget * add_toolbar_button(GtkWidget *wtbar, cchar *blab, cchar *btip, cchar *icon, mtFunc func) +GtkWidget * add_toolbar_button(GtkWidget *wtbar, cchar *blab, cchar *btip, cchar *icon, cbFunc func) { using namespace zfuncs; @@ -5414,7 +5414,7 @@ // add a menu item to a popup menu -GtkWidget * add_popmenu_item(GtkWidget *popmenu, cchar *mname, mtFunc func, cchar *arg, cchar *mtip) +GtkWidget * add_popmenu_item(GtkWidget *popmenu, cchar *mname, cbFunc func, cchar *arg, cchar *mtip) { GtkWidget *wmitem; @@ -6214,7 +6214,7 @@ } -void Vmenu_add(Vmenu *vbm, cchar *name, cchar *icon, int iconww, int iconhh, cchar *desc, mtFunc func, cchar *arg) +void Vmenu_add(Vmenu *vbm, cchar *name, cchar *icon, int iconww, int iconhh, cchar *desc, cbFunc func, cchar *arg) { using namespace Vmenunames; @@ -9716,7 +9716,7 @@ float px1, py1; float f0, f1, f2, f3, red, green, blue, tran = 0; float a, b, d, e, ww15, hh15, ww25, hh25; - float pi = 3.141593; + float PI = 3.141593; zthreadcrash(); // thread usage not allowed @@ -9733,7 +9733,7 @@ while (angle < -180) angle += 360; // normalize, -180 to +180 while (angle > 180) angle -= 360; - angle = angle * pi / 180; // radians, -pi to +pi + angle = angle * PI / 180; // radians, -PI to +PI if (fabsf(angle) < 0.001) { // bugfix 0.01 >> 0.001 pixbuf2 = gdk_pixbuf_copy(pixbuf1); // angle is zero within my precision diff -Nru fotoxx-14.03/zfuncs.h fotoxx-14.04/zfuncs.h --- fotoxx-14.03/zfuncs.h 2014-03-01 07:56:25.000000000 +0000 +++ fotoxx-14.04/zfuncs.h 2014-04-01 06:09:32.000000000 +0000 @@ -337,16 +337,16 @@ #define zdcbmax 100 // max. combo box drop-down list -typedef void mtFunc(GtkWidget *, cchar *mname); // menu or button response function +typedef void cbFunc(GtkWidget *, cchar *mname); // menu or button response function GtkWidget * create_menubar(GtkWidget *vbox); // create menubar in packing box -GtkWidget * add_menubar_item(GtkWidget *mbar, cchar *mname, mtFunc func = 0); // add menu item to menubar +GtkWidget * add_menubar_item(GtkWidget *mbar, cchar *mname, cbFunc func = 0); // add menu item to menubar GtkWidget * add_submenu_item(GtkWidget *mitem, cchar *subname, // add submenu item to menu item - mtFunc func = 0, cchar *mtip = 0); // with opt. function and popup tip + cbFunc func = 0, cchar *mtip = 0); // with opt. function and popup tip GtkWidget * create_toolbar(GtkWidget *vbox, int iconsize = 24); // toolbar in packing box (no vert gtk3) GtkWidget * add_toolbar_button(GtkWidget *tbar, cchar *name, cchar *ttip, // add button with stock (gtk-quit) - cchar *icon, mtFunc func); // or custom icon (iconfile.png) + cchar *icon, cbFunc func); // or custom icon (iconfile.png) GtkWidget * create_stbar(GtkWidget *vbox); // create status bar in packing box int stbar_message(GtkWidget *stbar, cchar *message); // display message in status bar @@ -355,7 +355,7 @@ GtkWidget * create_popmenu(); // create an empty popup menu GtkWidget * add_popmenu_item(GtkWidget *popmenu, cchar *mname, // add menu item to popup menu - mtFunc func, cchar *arg, cchar *mtip = 0); + cbFunc func, cchar *arg, cchar *mtip = 0); void popup_menu(GtkWidget *, GtkWidget *popmenu); // pop-up menu at current mouse posn. /**************************************************************************/ @@ -374,7 +374,7 @@ cchar *name; // menu name, text cchar *icon; // opt. icon file name cchar *desc; // description (mouse hover popup) - mtFunc *func; // callback func (GtkWidget *, cchar *arg) + cbFunc *func; // callback func (GtkWidget *, cchar *arg) cchar *arg; // callback arg GdkPixbuf *pixbuf; // icon pixbuf or null PangoLayout *playout1, *playout2; // normal and bold menu text @@ -394,7 +394,7 @@ Vmenu *Vmenu_new(GtkWidget *vbox); // create new menu in parent vbox void Vmenu_add(Vmenu *vbm, cchar *name, cchar *icon, // add menu item with response function int iconww, int iconhh, cchar *desc, - mtFunc func, cchar *arg); // function may be popup_menu() + cbFunc func, cchar *arg); // function may be popup_menu() /**************************************************************************/
amplifier
+
increases or decreases +the effect of the brightness edit curves
+
brightness
moves the entire curve up @@ -5278,7 +5342,7 @@ warmer / cooler
adjusts color temperature -(reddish - blueish)
+(reddish <--> blueish)
apply color changes to -darker or brighter image areas
+darker / all / brighter image areas
checkbox
+
brightness distribution
+
show a brightness +distribution graph in the curve edit window
enable the mouse to click +
click for white balance
+
enables the mouse to +click on a black point or gray/white point