Author: mherger
Date: Fri Feb 19 07:14:49 2010
New Revision: 8530

URL: http://svn.slimdevices.com/jive?rev=8530&view=rev
Log:
Bug: 15734 (partially)
Description: add "USB disk" and "SD card" as sources for the ImageViewer. 
They're subclasses of the local storage class, using whatever mountpoint one of 
these media is mounted.

If user decides to edit the path for USB or SD, the source is changed to "local 
storage", with the mount point as the path. This allows for easier sub-folder 
definition when the exact mount point isn't known.

Added:
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceLocalStorage.lua
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceUSB.lua
Modified:
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceCard.lua
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerApplet.lua
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerMeta.lua
    7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/strings.txt

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceCard.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceCard.lua?rev=8530&r1=8529&r2=8530&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceCard.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceCard.lua
 Fri Feb 19 07:14:49 2010
@@ -2,11 +2,11 @@
 --[[
 =head1 NAME
 
-applets.ImageViewer.ImageSourceCard - Image source for Image Viewer
+applets.ImageViewer.ImageSourceCard - use SD card as image source for Image 
Viewer
 
 =head1 DESCRIPTION
 
-Finds images from removable media
+Finds images from SD card
 
 =head1 FUNCTIONS
 
@@ -17,186 +17,61 @@
 
 
 -- stuff we use
-local pairs         = pairs
-local oo            = require("loop.simple")
---local debug         = require("jive.utils.debug")
-local math          = require("math")
-local table         = require("jive.utils.table")
-local string        = require("jive.utils.string")
-local lfs           = require('lfs')
-local Group         = require("jive.ui.Group")
-local Keyboard      = require("jive.ui.Keyboard")
-local Task          = require("jive.ui.Task")
-local Textinput     = require("jive.ui.Textinput")
-local Window        = require("jive.ui.Window")
-local Surface       = require("jive.ui.Surface")
+local oo        = require("loop.simple")
+local io        = require("io")
+local string    = require("jive.utils.string")
+local log       = require("jive.utils.log").logger("applet.ImageViewer")
+local lfs       = require("lfs")
 
-local log              = require("jive.utils.log").logger("applet.ImageViewer")
-local require = require
-local ImageSource      = require("applets.ImageViewer.ImageSource")
+local require   = require
+local ImageSourceLocalStorage = 
require("applets.ImageViewer.ImageSourceLocalStorage")
 
 module(...)
-ImageSourceCard = oo.class(_M, ImageSource)
-
-function __init(self, applet)
-       log:info("initialize ImageSourceCard!!!!")
-       obj = oo.rawnew(self, ImageSource(applet))
+ImageSourceCard = oo.class(_M, ImageSourceLocalStorage)
 
-       obj.imgFiles = {}
-       obj.scanning = false
+function readImageList(self)
+       local imgpath = self:getFolder()
+       
+       if imgpath and lfs.attributes(imgpath, "mode") == "directory" then
+               self:scanFolder(imgpath)
+       end
+end
 
-       return obj
+function getFolder(self)
+       return self:_getFolder("(/media/mmc%w*)")
 end
-
-function listNotReadyError(self)
-       self:popupMessage(self.applet:string("IMAGE_VIEWER_ERROR"), 
self.applet:string("IMAGE_VIEWER_CARD_ERROR"))
-end
-
-function scanFolder(self, folder)
 
-       if self.scanning then
+function _getFolder(self, pattern)
+       local mounts = io.open("/proc/mounts", "r")
+       local path
+       
+       if mounts == nil then
+               log:error("/proc/mounts could not be opened")
                return
        end
+
+       for line in mounts:lines() do
+               local mountPoint = string.match(line, pattern)
+               if mountPoint and lfs.attributes(mountPoint, "mode") == 
"directory" then
+                       log:debug('Mounted drive found at ', mountPoint)
+                       self.applet:getSettings()["card.path"] = mountPoint
+                       path = mountPoint
+                       break
+               end
+       end
+       mounts:close()
        
-       self.scanning = true
-       
-       self.task = Task("scanImageFolder", self, function()
-               local dirstoscan = { folder }
-               local dirsscanned= {}
-       
-               for i, nextfolder in pairs(dirstoscan) do
-       
-                       if not dirsscanned[nextfolder] then
-                       
-                               for f in lfs.dir(nextfolder) do
-                               
-                                       -- exclude any dot file (hidden 
files/directories)
-                                       if (string.sub(f, 1, 1) ~= ".") then
-                               
-                                               local fullpath = nextfolder .. 
"/" .. f
-                       
-                                               if lfs.attributes(fullpath, 
"mode") == "directory" then
-               
-                                                       -- push this directory 
on our list to be scanned
-                                                       
table.insert(dirstoscan, fullpath)
-               
-                                               elseif lfs.attributes(fullpath, 
"mode") == "file" then
-                                                       -- check for supported 
file type
-                                                       if 
string.find(string.lower(fullpath), "%pjpe*g")
-                                                                       or 
string.find(string.lower(fullpath), "%ppng") 
-                                                                       or 
string.find(string.lower(fullpath), "%pbmp") 
-                                                                       or 
string.find(string.lower(fullpath), "%pgif") then
-                                                               -- 
log:info(fullpath)
-                                                               
table.insert(self.imgFiles, fullpath)
-                                                       end
-                                               end
-                                       
-                                       end
-                               end
-                               
-                               -- don't scan this folder twice - just in case
-                               dirsscanned[nextfolder] = true
-                       end
-
-                       if #self.imgFiles > 1000 then
-                               log:warn("we're not going to show more than 
1000 pictures - stop here")
-                               break
-                       end
-
-                       self.task:yield()
-               end
-
-               self.scanning = false
-       end)
-       
-       self.task:addTask()
-end
-
-
-function readImageList(self)
-
-       local imgpath = self.applet:getSettings()["card.path"]
-
-       if lfs.attributes(imgpath, "mode") == "directory" then
-               self:scanFolder(imgpath)
-       end
-end
-
-function getImage(self)
-       if self.imgFiles[self.currentImage] != nil then
-               local file = self.imgFiles[self.currentImage]
-               log:info("Next image in queue: ", file)
-               local image = Surface:loadImage(file)
-               return image
-       end
-end
-
-function nextImage(self, ordering)
-       oo.superclass(ImageSourceCard).nextImage(self, ordering)
-       self.imgReady = true
-end
-
-function previousImage(self, ordering)
-       oo.superclass(ImageSourceCard).previousImage(self, ordering)
-       self.imgReady = true
-end
-
-function listReady(self)
-
-       if #self.imgFiles > 0 then
-               return true
-       end
-
-       obj:readImageList()
-       return false
+       return path
 end
 
-function getErrorMessage(self)
-       return self:getCurrentImagePath()
-end
-
-
+-- if user decides to change path manually, switch to "card" mode
+-- with this media as default path
 function settings(self, window)
-
-       local imgpath = self.applet:getSettings()["card.path"]
-
-       local textinput = Textinput("textinput", imgpath,
-               function(_, value)
-                       if #value < 4 then
-                               return false
-                       end
-
-                       log:debug("Input " .. value)
-                       self.applet:getSettings()["card.path"] = value
-                       self.applet:storeSettings()
-                       
-                       window:playSound("WINDOWSHOW")
-                       window:hide(Window.transitionPushLeft)
-
-                       if lfs.attributes(value, "mode") ~= "directory" then
-                               log:warn("Invalid folder name: " .. value)
-                               
self:popupMessage(self.applet:string("IMAGE_VIEWER_ERROR"), 
self.applet:string("IMAGE_VIEWER_CARD_NOT_DIRECTORY"))
-                       end
-
-                       return true
-               end)
-       local backspace = Keyboard.backspace()
-       local group = Group('keyboard_textinput', { textinput = textinput, 
backspace = backspace } )
-
-    window:addWidget(group)
-       window:addWidget(Keyboard('keyboard', 'qwerty', textinput))
-       window:focusWidget(group)
-
-       self:_helpAction(window, "IMAGE_VIEWER_CARD_PATH", 
"IMAGE_VIEWER_CARD_PATH_HELP")
-
-    return window
-end
-
-function free(self)
-       if self.task then
-               self.task:removeTask()
-       end
-end
+       local imgpath = self:getFolder() or "/media"
+       self.applet:getSettings()["card.path"] = imgpath
+       
+       return oo.superclass(ImageSourceCard).settings(self, window)
+end
 
 --[[
 

Added: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceLocalStorage.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceLocalStorage.lua?rev=8530&view=auto
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceLocalStorage.lua
 (added)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceLocalStorage.lua
 Fri Feb 19 07:14:49 2010
@@ -1,0 +1,213 @@
+
+--[[
+=head1 NAME
+
+applets.ImageViewer.ImageSourceStorage - use local storage as image source for 
Image Viewer
+
+=head1 DESCRIPTION
+
+Finds images from removable media
+
+=head1 FUNCTIONS
+
+Applet related methods are described in L<jive.Applet>. 
+
+=cut
+--]]
+
+
+-- stuff we use
+local pairs         = pairs
+local oo            = require("loop.simple")
+--local debug         = require("jive.utils.debug")
+local math          = require("math")
+local table         = require("jive.utils.table")
+local string        = require("jive.utils.string")
+local lfs           = require('lfs')
+local Group         = require("jive.ui.Group")
+local Keyboard      = require("jive.ui.Keyboard")
+local Task          = require("jive.ui.Task")
+local Textinput     = require("jive.ui.Textinput")
+local Window        = require("jive.ui.Window")
+local Surface       = require("jive.ui.Surface")
+
+local log              = require("jive.utils.log").logger("applet.ImageViewer")
+local require = require
+local ImageSource      = require("applets.ImageViewer.ImageSource")
+
+module(...)
+ImageSourceLocalStorage = oo.class(_M, ImageSource)
+
+function __init(self, applet)
+       log:debug("initialize ImageSourceLocalStorage")
+       obj = oo.rawnew(self, ImageSource(applet))
+
+       obj.imgFiles = {}
+       obj.scanning = false
+
+       return obj
+end
+
+function listNotReadyError(self)
+       self:popupMessage(self.applet:string("IMAGE_VIEWER_ERROR"), 
self.applet:string("IMAGE_VIEWER_CARD_ERROR"))
+end
+
+function scanFolder(self, folder)
+
+       if self.scanning then
+               return
+       end
+       
+       self.scanning = true
+       
+       self.task = Task("scanImageFolder", self, function()
+               local dirstoscan = { folder }
+               local dirsscanned= {}
+       
+               for i, nextfolder in pairs(dirstoscan) do
+
+                       if not dirsscanned[nextfolder] then
+                       
+                               for f in lfs.dir(nextfolder) do
+                               
+                                       -- exclude any dot file (hidden 
files/directories)
+                                       if (string.sub(f, 1, 1) ~= ".") then
+                               
+                                               local fullpath = nextfolder .. 
"/" .. f
+                       
+                                               if lfs.attributes(fullpath, 
"mode") == "directory" then
+               
+                                                       -- push this directory 
on our list to be scanned
+                                                       
table.insert(dirstoscan, fullpath)
+               
+                                               elseif lfs.attributes(fullpath, 
"mode") == "file" then
+                                                       -- check for supported 
file type
+                                                       if 
string.find(string.lower(fullpath), "%pjpe*g")
+                                                                       or 
string.find(string.lower(fullpath), "%ppng") 
+                                                                       or 
string.find(string.lower(fullpath), "%pbmp") 
+                                                                       or 
string.find(string.lower(fullpath), "%pgif") then
+                                                               -- 
log:info(fullpath)
+                                                               
table.insert(self.imgFiles, fullpath)
+                                                       end
+                                               end
+                                       
+                                       end
+                               end
+                               
+                               -- don't scan this folder twice - just in case
+                               dirsscanned[nextfolder] = true
+                       end
+
+                       if #self.imgFiles > 1000 then
+                               log:warn("we're not going to show more than 
1000 pictures - stop here")
+                               break
+                       end
+
+                       self.task:yield()
+               end
+
+               self.scanning = false
+       end)
+       
+       self.task:addTask()
+end
+
+
+function readImageList(self)
+
+       local imgpath = self.applet:getSettings()["card.path"]
+
+       if lfs.attributes(imgpath, "mode") == "directory" then
+               self:scanFolder(imgpath)
+       end
+end
+
+function getImage(self)
+       if self.imgFiles[self.currentImage] != nil then
+               local file = self.imgFiles[self.currentImage]
+               log:info("Next image in queue: ", file)
+               local image = Surface:loadImage(file)
+               return image
+       end
+end
+
+function nextImage(self, ordering)
+       oo.superclass(ImageSourceLocalStorage).nextImage(self, ordering)
+       self.imgReady = true
+end
+
+function previousImage(self, ordering)
+       oo.superclass(ImageSourceLocalStorage).previousImage(self, ordering)
+       self.imgReady = true
+end
+
+function listReady(self)
+
+       if #self.imgFiles > 0 then
+               return true
+       end
+
+       obj:readImageList()
+       return false
+end
+
+function getErrorMessage(self)
+       return self:getCurrentImagePath() or 
self.applet:string("IMAGE_VIEWER_CARD_NOT_DIRECTORY")
+end
+
+
+function settings(self, window)
+
+       local imgpath = self.applet:getSettings()["card.path"]
+
+       local textinput = Textinput("textinput", imgpath,
+               function(_, value)
+                       if #value < 4 then
+                               return false
+                       end
+
+                       log:debug("Input " .. value)
+                       self.applet:getSettings()["card.path"] = value
+                       self.applet:getSettings()["source"] = "storage"
+                       self.applet:storeSettings()
+                       
+                       window:playSound("WINDOWSHOW")
+                       window:hide(Window.transitionPushLeft)
+
+                       if lfs.attributes(value, "mode") ~= "directory" then
+                               log:warn("Invalid folder name: " .. value)
+                               
self:popupMessage(self.applet:string("IMAGE_VIEWER_ERROR"), 
self.applet:string("IMAGE_VIEWER_CARD_NOT_DIRECTORY"))
+                       end
+
+                       return true
+               end)
+       local backspace = Keyboard.backspace()
+       local group = Group('keyboard_textinput', { textinput = textinput, 
backspace = backspace } )
+
+       window:addWidget(group)
+       window:addWidget(Keyboard('keyboard', 'qwerty', textinput))
+       window:focusWidget(group)
+
+       self:_helpAction(window, "IMAGE_VIEWER_CARD_PATH_HELP", 
"IMAGE_VIEWER_CARD_PATH_HELP")
+
+       return window
+end
+
+function free(self)
+       if self.task then
+               self.task:removeTask()
+       end
+end
+
+--[[
+
+=head1 LICENSE
+
+Copyright 2010 Logitech. All Rights Reserved.
+
+This file is licensed under BSD. Please see the LICENSE file for details.
+
+
+=cut
+--]]
+

Added: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceUSB.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceUSB.lua?rev=8530&view=auto
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceUSB.lua
 (added)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageSourceUSB.lua
 Fri Feb 19 07:14:49 2010
@@ -1,0 +1,44 @@
+
+--[[
+=head1 NAME
+
+applets.ImageViewer.ImageSourceUSB - use USB disk as image source for Image 
Viewer
+
+=head1 DESCRIPTION
+
+Finds images from USB media
+
+=head1 FUNCTIONS
+
+Applet related methods are described in L<jive.Applet>. 
+
+=cut
+--]]
+
+
+-- stuff we use
+local oo        = require("loop.simple")
+local log       = require("jive.utils.log").logger("applet.ImageViewer")
+
+local require   = require
+local ImageSourceCard = require("applets.ImageViewer.ImageSourceCard")
+
+module(...)
+ImageSourceCard = oo.class(_M, ImageSourceCard)
+
+function getFolder(self)
+       return self:_getFolder("(/media/sd%w*)")
+end
+
+--[[
+
+=head1 LICENSE
+
+Copyright 2010 Logitech. All Rights Reserved.
+
+This file is licensed under BSD. Please see the LICENSE file for details.
+
+
+=cut
+--]]
+

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerApplet.lua?rev=8530&r1=8529&r2=8530&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerApplet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerApplet.lua
 Fri Feb 19 07:14:49 2010
@@ -45,7 +45,9 @@
 --local debug                  = require("jive.utils.debug")
 
 local ImageSource              = require("applets.ImageViewer.ImageSource")
+local ImageSourceLocalStorage = 
require("applets.ImageViewer.ImageSourceLocalStorage")
 local ImageSourceCard  = require("applets.ImageViewer.ImageSourceCard")
+local ImageSourceUSB   = require("applets.ImageViewer.ImageSourceUSB")
 local ImageSourceHttp  = require("applets.ImageViewer.ImageSourceHttp")
 -- local ImageSourceFlickr     = 
require("applets.ImageViewer.ImageSourceFlickr")
 local ImageSourceServer        = 
require("applets.ImageViewer.ImageSourceServer")
@@ -91,7 +93,11 @@
        else
                local src = self:getSettings()["source"]
 
-               if src == "card" then
+               if src == "storage" then
+                       self.imgSource = ImageSourceLocalStorage(self)
+               elseif src == "usb" then
+                       self.imgSource = ImageSourceUSB(self)
+               elseif src == "card" then
                        self.imgSource = ImageSourceCard(self)
 -- Flickr is now being served by mysb.com, disable standalone applet
 --             elseif src == "flickr" then
@@ -740,7 +746,7 @@
                        callback = function(event, menuItem)
                                self:defineDelay(menuItem)
                                return EVENT_CONSUME
-               end
+                       end
                },
                {
                        text = self:string("IMAGE_VIEWER_ORDERING"),
@@ -785,7 +791,7 @@
        }
        
        -- no need for a source setting on baby - we don't have any choice
-       if System:getMachine() ~= "baby" then
+       if System:hasLocalStorage() then
                table.insert(settingsMenu, 1, {
                        text = self:string("IMAGE_VIEWER_SOURCE"), 
                        sound = "WINDOWSHOW",
@@ -1009,7 +1015,7 @@
        }
        
        -- add support for local media if available
-       if System:getMachine() ~= "baby" then
+       if System:hasSDCard() then
                table.insert(sourceMenu, 1, {
                        text = self:string("IMAGE_VIEWER_SOURCE_CARD"),
                        style = 'item_choice',
@@ -1020,6 +1026,36 @@
                                        self:setSource("card")
                                end,
                                source == "card"
+                       )
+               })
+       end
+
+       if System:hasUSB() then
+               table.insert(sourceMenu, 1, {
+                       text = self:string("IMAGE_VIEWER_SOURCE_USB"),
+                       style = 'item_choice',
+                       check = RadioButton(
+                               "radio",
+                               group,
+                               function()
+                                       self:setSource("usb")
+                               end,
+                               source == "usb"
+                       )
+               })
+       end
+
+       if System:hasLocalStorage() then
+               table.insert(sourceMenu, 1, {
+                       text = self:string("IMAGE_VIEWER_SOURCE_LOCAL_STORAGE"),
+                       style = 'item_choice',
+                       check = RadioButton(
+                               "radio",
+                               group,
+                               function()
+                                       self:setSource("storage")
+                               end,
+                               source == "storage"
                        )
                })
        end

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerMeta.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerMeta.lua?rev=8530&r1=8529&r2=8530&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerMeta.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/ImageViewerMeta.lua
 Fri Feb 19 07:14:49 2010
@@ -58,11 +58,11 @@
        defaultSetting["ordering"] = "sequential"
        defaultSetting["textinfo"] = false
 
-       defaultSetting["source"] = "card"
+       defaultSetting["source"] = "storage"
        defaultSetting["card.path"] = "/media"
        defaultSetting["http.path"] = 
"http://www.herger.net/sbimages/sbtouch.lst";
 
-       if System:getMachine() == "baby" then
+       if not System:hasLocalStorage() then
                defaultSetting["source"] = "http"
                defaultSetting["http.path"] = 
"http://www.herger.net/sbimages/sbradio.lst";
        end

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/strings.txt
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/strings.txt?rev=8530&r1=8529&r2=8530&view=diff
==============================================================================
--- 7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/strings.txt 
(original)
+++ 7.5/trunk/squeezeplay/src/squeezeplay/share/applets/ImageViewer/strings.txt 
Fri Feb 19 07:14:49 2010
@@ -110,8 +110,8 @@
 IMAGE_VIEWER_SOURCE_CARD
        CS      Paměťová karta
        DA      Hukommelseskort
-       DE      Lokales Speichermedium (SD Karte/USB Disk)
-       EN      Local storage media (SD card/USB disk)
+       DE      Speicherkarte
+       EN      Memory card
        ES      Tarjeta de memoria
        FI      Muistikortti
        FR      Carte mémoire
@@ -121,6 +121,14 @@
        PL      Karta pamięci
        RU      Карта памяти
        SV      Minneskort
+
+IMAGE_VIEWER_SOURCE_USB
+       DE      USB Disk
+       EN      USB disk
+
+IMAGE_VIEWER_SOURCE_LOCAL_STORAGE
+       DE      Lokales Speichermedium
+       EN      Local storage media
 
 IMAGE_VIEWER_SOURCE_SC
        CS      Squeezebox Server
@@ -606,35 +614,20 @@
 #
 # Strings for Card Source
 #
-IMAGE_VIEWER_CARD_PATH
-       CS      Definuje cestu pro hledání obrázků. Můžete použít '*' 
jako zástupný znak
-       DA      Definerer søgestien til billeder. Du kan bruge * som 
pladsholder
-       DE      Definiert den Suchpfad für Bilder. Sie können ein '*' als 
Platzhalter verwenden.
-       EN      Defines the search path for images. You can use a '*' as 
placeholder
-       ES      Define la ruta de búsqueda de imágenes. Puede usar un '*' 
como marcador de posición
-       FI      Määrittää kuvien hakupolun. Voit käyttää merkkiä * 
paikkamerkkinä
-       FR      Définit le chemin d'accès dans lequel rechercher les images. 
Vous pouvez utiliser le caractère * (astérisque) comme paramètre 
substituable.
-       IT      Specifica il percorso di ricerca delle immagini. È possibile 
utilizzare un asterisco (*) come segnaposto.
-       NL      Definieert het zoekpad voor afbeeldingen. Je kunt een sterretje 
(*) als tijdelijke aanduiding gebruiken
-       NO      Angir søkebane for bilder. Du kan bruke * som plassholder
-       PL      Zdefiniuj ścieżkę wyszukiwania obrazów. Możesz użyć 
znaku „*” jako symbolu zastępczego
-       RU      Задает путь поиска изображений. В 
качестве заполнителя можно использовать 
звездочку ('*')
-       SV      Anger sökvägen för bilder. Du kan använda en * (asterisk) 
som platshållare
-
 IMAGE_VIEWER_CARD_PATH_HELP
-       CS      Definuje cestu pro hledání obrázků. Můžete použít '*' 
jako zástupný znak
-       DA      Definerer søgestien til billeder. Du kan bruge * som 
pladsholder
-       DE      Definiert den Suchpfad für Bilder. Sie können ein '*' als 
Platzhalter verwenden.
-       EN      Defines the search path for images. You can use a '*' as 
placeholder
-       ES      Define la ruta de búsqueda de imágenes. Puede usar un '*' 
como marcador de posición
-       FI      Määrittää kuvien hakupolun. Voit käyttää merkkiä * 
paikkamerkkinä
-       FR      Définit le chemin d'accès dans lequel rechercher les images. 
Vous pouvez utiliser le caractère * (astérisque) comme paramètre 
substituable.
-       IT      Specifica il percorso di ricerca delle immagini. È possibile 
utilizzare un asterisco (*) come segnaposto.
-       NL      Definieert het zoekpad voor afbeeldingen. Je kunt een sterretje 
(*) als tijdelijke aanduiding gebruiken
-       NO      Angir søkebane for bilder. Du kan bruke * som plassholder
-       PL      Zdefiniuj ścieżkę wyszukiwania obrazów. Możesz użyć 
znaku „*” jako symbolu zastępczego
-       RU      Задает путь поиска изображений. В 
качестве заполнителя можно использовать 
звездочку ('*')
-       SV      Anger sökvägen för bilder. Du kan använda en * (asterisk) 
som platshållare
+       CS      Definuje cestu pro hledání obrázků.
+       DA      Definerer søgestien til billeder.
+       DE      Definiert den Suchpfad für Bilder.
+       EN      Defines the search path for images.
+       ES      Define la ruta de búsqueda de imágenes.
+       FI      Määrittää kuvien hakupolun.
+       FR      Définit le chemin d'accès dans lequel rechercher les images.
+       IT      Specifica il percorso di ricerca delle immagini.
+       NL      Definieert het zoekpad voor afbeeldingen.
+       NO      Angir søkebane for bilder.
+       PL      Zdefiniuj ścieżkę wyszukiwania obrazów.
+       RU      Задает путь поиска изображений.
+       SV      Anger sökvägen för bilder.
 
 IMAGE_VIEWER_CARD_ERROR
        CS      Nenalezeny žádné obrázky. Ujistěte se laskavě, že 
obrázky jsou umístěny ve správném umístění a v podporovaném formátu.

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins

Reply via email to