OSDN Git Service

i18n, reformat, Java8
[importpicture/importpicture.git] / importPicture / src / osm / jp / gpx / ImportPicture.java
index 0635e73..169f5a8 100644 (file)
@@ -12,6 +12,7 @@ import java.util.Calendar;
 import java.util.Comparator;\r
 import java.util.Date;\r
 import java.util.Map;\r
+import java.util.ResourceBundle;\r
 import java.util.TimeZone;\r
 import java.util.logging.LogManager;\r
 import java.util.logging.Logger;\r
@@ -35,38 +36,43 @@ import org.w3c.dom.*;
 import org.xml.sax.SAXException;\r
 \r
 public class ImportPicture extends Thread {\r
-       /**\r
-        * 実行中に発生したExceptionを保持する場所\r
-        */\r
-       public Exception ex = null;\r
+    \r
+    /**\r
+     * 実行中に発生したExceptionを保持する場所\r
+     */\r
+    public Exception ex = null;\r
        \r
     /**\r
      * ログ設定プロパティファイルのファイル内容\r
      */\r
     protected static final String LOGGING_PROPERTIES_DATA\r
-           = "handlers=java.util.logging.ConsoleHandler\n"\r
-           + ".level=FINEST\n"\r
-           + "java.util.logging.ConsoleHandler.level=INFO\n"\r
-           + "java.util.logging.ConsoleHandler.formatter=osm.jp.gpx.YuuLogFormatter";\r
+        = "handlers=java.util.logging.ConsoleHandler\n"\r
+        + ".level=FINEST\n"\r
+        + "java.util.logging.ConsoleHandler.level=INFO\n"\r
+        + "java.util.logging.ConsoleHandler.formatter=osm.jp.gpx.YuuLogFormatter";\r
 \r
     /**\r
      * static initializer によるログ設定の初期化\r
      */\r
-    public static final Logger logger = Logger.getLogger("CommandLogging");\r
+    public static final Logger LOGGER = Logger.getLogger("CommandLogging");\r
     static {\r
         InputStream inStream = null;\r
         try {\r
             inStream = new ByteArrayInputStream(LOGGING_PROPERTIES_DATA.getBytes("UTF-8"));\r
             try {\r
                 LogManager.getLogManager().readConfiguration(inStream);\r
-                logger.config("ログ設定: LogManagerを設定しました。");\r
+                // "ログ設定: LogManagerを設定しました。"\r
+                LOGGER.config("LoggerSettings: LogManager setuped.");\r
             }\r
             catch (IOException e) {\r
-                logger.warning("ログ設定: LogManager設定の際に例外が発生しました。:" + e.toString());\r
+                // LogManager設定の際に例外が発生しました.\r
+                String str = "LoggerSettings: Exception occered:" + e.toString();\r
+                LOGGER.warning(str);\r
             }\r
         }\r
         catch (UnsupportedEncodingException e) {\r
-            logger.severe("ログ設定: UTF-8エンコーディングがサポートされていません。:" + e.toString());\r
+            String str = "LoggerSettings: Not supported 'UTF-8' encoding: " + e.toString();\r
+            LOGGER.severe(str);\r
         }\r
         finally {\r
             try {\r
@@ -74,13 +80,12 @@ public class ImportPicture extends Thread {
                     inStream.close();\r
                 }\r
             } catch (IOException e) {\r
-                logger.warning("ログ設定: ログ設定プロパティファイルのストリームクローズ時に例外が発生しました。:"+ e.toString());\r
+                String str = "LoggerSettings: Exception occored: "+ e.toString();\r
+                LOGGER.warning(str);\r
             }\r
         }\r
     }\r
     \r
-\r
-\r
     /** メイン\r
      * 画像ファイルをGPXファイルに取り込みます。\r
      * \r
@@ -120,16 +125,16 @@ public class ImportPicture extends Thread {
     public boolean exifBase = false;\r
     public ArrayList<File> gpxFiles = new ArrayList<>();\r
     public AppParameters params;\r
-       public boolean param_GpxSplit = false;\r
-       public static boolean param_GpxNoFirstNode = false;\r
-       public boolean param_GpxReuse = false;\r
-       public boolean param_GpxOutputWpt = true;\r
-       public boolean param_ImgOutputAll = false;\r
-       public String param_GpxSourceFolder = ".";\r
+    public boolean param_GpxSplit = false;\r
+    public static boolean param_GpxNoFirstNode = false;\r
+    public boolean param_GpxReuse = false;\r
+    public boolean param_GpxOutputWpt = true;\r
+    public boolean param_ImgOutputAll = false;\r
+    public String param_GpxSourceFolder = ".";\r
     \r
-       \r
     public static final String TIME_FORMAT_STRING = "yyyy-MM-dd'T'HH:mm:ss'Z'";\r
     private static final String EXIF_DATE_TIME_FORMAT_STRING = "yyyy:MM:dd HH:mm:ss";\r
+    public ResourceBundle i18n = ResourceBundle.getBundle("i18n");\r
     \r
     public void setUp(String paramFilePath) throws Exception {\r
         System.out.println("Param File = '"+ paramFilePath +"'");\r
@@ -158,7 +163,7 @@ public class ImportPicture extends Thread {
         this.imgDir = new File(this.params.getProperty(AppParameters.IMG_SOURCE_FOLDER));\r
 \r
         // 基準時刻(ファイル更新日時 | EXIF撮影日時)\r
-       this.exifBase = (this.params.getProperty(AppParameters.GPX_BASETIME).equals("EXIF_TIME") ? true : false);\r
+       this.exifBase = (this.params.getProperty(AppParameters.GPX_BASETIME).equals("EXIF_TIME"));\r
 \r
         // 基準時刻ファイルの「更新日時」を使って時刻合わせを行う。\r
         // argv[1] --> AppParameters.IMG_BASE_FILE に置き換え\r
@@ -171,46 +176,48 @@ public class ImportPicture extends Thread {
         // その他のパラメータを読み取る\r
        String paramStr = this.params.getProperty(AppParameters.GPX_GPXSPLIT);\r
        if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
-               this.param_GpxSplit = true;\r
+            this.param_GpxSplit = true;\r
        }\r
         \r
        paramStr = this.params.getProperty(AppParameters.GPX_NO_FIRST_NODE);\r
        if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
-               ImportPicture.param_GpxNoFirstNode = true;\r
+            ImportPicture.param_GpxNoFirstNode = true;\r
        }\r
        \r
        paramStr = this.params.getProperty(AppParameters.GPX_REUSE);\r
        if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
-               this.param_GpxReuse = true;\r
+            this.param_GpxReuse = true;\r
        }\r
         \r
        paramStr = this.params.getProperty(AppParameters.IMG_OUTPUT_ALL);\r
        if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
-               this.param_ImgOutputAll = true;\r
+            this.param_ImgOutputAll = true;\r
        }\r
 \r
        paramStr = this.params.getProperty(AppParameters.GPX_OUTPUT_WPT);\r
        if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
-               this.param_GpxOutputWpt = true;\r
+            this.param_GpxOutputWpt = true;\r
        }\r
        \r
        paramStr = this.params.getProperty(AppParameters.GPX_OVERWRITE_MAGVAR);\r
        if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
-               Complementation.param_GpxOverwriteMagvar = true;\r
+            Complementation.param_GpxOverwriteMagvar = true;\r
        }\r
 \r
        paramStr = this.params.getProperty(AppParameters.GPX_OUTPUT_SPEED);\r
        if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
-               Complementation.param_GpxOutputSpeed = true;\r
+            Complementation.param_GpxOutputSpeed = true;\r
        }\r
 \r
        paramStr = this.params.getProperty(AppParameters.GPX_SOURCE_FOLDER);\r
        if (paramStr != null) {\r
-               this.param_GpxSourceFolder = new String(paramStr);\r
+            this.param_GpxSourceFolder = paramStr;\r
             this.gpxDir = new File(this.param_GpxSourceFolder);\r
             if (!this.gpxDir.exists()) {\r
-               // GPXファイルまたはディレクトリが存在しません。\r
-               System.out.println("GPXファイルまたはディレクトリが存在しません。('"+ paramStr +"')");\r
+               // GPXファイルまたはディレクトリが存在しません。('%s')\r
+                System.out.println(\r
+                    String.format(i18n.getString("msg.100"), paramStr)\r
+                );\r
                return;\r
             }\r
        }\r
@@ -222,21 +229,28 @@ public class ImportPicture extends Thread {
         if (this.gpxDir.isDirectory()) {\r
             File[] files = this.gpxDir.listFiles();\r
             if (files == null) {\r
-               // 対象となるGPXファイルがありませんでした。\r
-               System.out.println("対象となるGPXファイルがありませんでした。('"+ this.gpxDir.getAbsolutePath() +"')");\r
+               // 対象となるGPXファイルがありませんでした。('%s')\r
+               System.out.println(\r
+                    String.format(i18n.getString("msg.110"), this.gpxDir.getAbsolutePath())\r
+                );\r
                return;\r
             }\r
             if (this.param_ImgOutputAll && (files.length > 1)) {\r
-               System.out.println("複数のGPXファイルがあるときには、'IMG.OUTPUT_ALL'オプションは指定できません。");\r
+                // "複数のGPXファイルがあるときには、'IMG.OUTPUT_ALL'オプションは指定できません。"\r
+               System.out.println(\r
+                    i18n.getString("msg.120")\r
+                );\r
                return;\r
             }\r
             \r
-            java.util.Arrays.sort(files, new java.util.Comparator<File>() {\r
-                       @Override\r
-                               public int compare(File file1, File file2){\r
-                           return file1.getName().compareTo(file2.getName());\r
-                       }\r
-           });\r
+            java.util.Arrays.sort(\r
+                files, new java.util.Comparator<File>() {\r
+                    @Override\r
+                    public int compare(File file1, File file2){\r
+                        return file1.getName().compareTo(file2.getName());\r
+                    }\r
+                }\r
+            );\r
             for (File file : files) {\r
                 if (file.isFile()) {\r
                     String filename = file.getName().toUpperCase();\r
@@ -254,7 +268,7 @@ public class ImportPicture extends Thread {
 \r
        paramStr = this.params.getProperty(AppParameters.IMG_OUTPUT_EXIF);\r
        if ((paramStr != null) && (paramStr.equals(Boolean.toString(true)))) {\r
-               this.exif = true;\r
+            this.exif = true;\r
        }\r
        \r
         String timeStr = this.params.getProperty(AppParameters.IMG_TIME);\r
@@ -263,7 +277,14 @@ public class ImportPicture extends Thread {
             this.delta = t.getTime() - imgtime.getTime();\r
         }\r
         catch (ParseException e) {\r
-            System.out.println("'"+ timeStr +"' の書式が違います("+ TIME_FORMAT_STRING +")");\r
+            // "'%s'の書式が違います(%s)"\r
+            System.out.println(\r
+                String.format(\r
+                    i18n.getString("msg.130"),\r
+                    timeStr,\r
+                    TIME_FORMAT_STRING\r
+                )\r
+            );\r
             return;\r
         }\r
 \r
@@ -272,42 +293,41 @@ public class ImportPicture extends Thread {
             this.join();\r
         } catch(InterruptedException end) {}\r
         if (this.ex != null) {\r
-               throw this.ex;\r
+            throw this.ex;\r
         }\r
-       \r
     }\r
     \r
+    /**\r
+     * @code{\r
+        <wpt lat="35.25714922" lon="139.15490497">\r
+            <ele>62.099998474121094</ele>\r
+            <time>2012-06-11T00:44:38Z</time>\r
+            <hdop>0.75</hdop>\r
+            <name><![CDATA[写真]]></name>\r
+            <cmt><![CDATA[精度: 3.0m]]></cmt>\r
+            <link href="2012-06-11_09-44-38.jpg">\r
+                <text>2012-06-11_09-44-38.jpg</text>\r
+            </link>\r
+            <sat>9</sat>\r
+        </wpt>\r
+     * }\r
+     */\r
     @Override\r
     public void run() {\r
-        /**\r
-         *\r
-                <wpt lat="35.25714922" lon="139.15490497">\r
-                        <ele>62.099998474121094</ele>\r
-                        <time>2012-06-11T00:44:38Z</time>\r
-                        <hdop>0.75</hdop>\r
-                        <name><![CDATA[写真]]></name>\r
-                        <cmt><![CDATA[精度: 3.0m]]></cmt>\r
-                        <link href="2012-06-11_09-44-38.jpg">\r
-                                <text>2012-06-11_09-44-38.jpg</text>\r
-                        </link>\r
-                        <sat>9</sat>\r
-                </wpt>\r
-         */\r
         try {\r
-               if (params.getProperty(AppParameters.IMG_OUTPUT).equals(Boolean.toString(true))) {\r
+            if (params.getProperty(AppParameters.IMG_OUTPUT).equals(Boolean.toString(true))) {\r
                 outDir = new File(outDir, imgDir.getName());\r
-               }\r
-               else {\r
+            }\r
+            else {\r
                 outDir = gpxDir;\r
-               }\r
-\r
+            }\r
             for (File gpxFile : this.gpxFiles) {\r
                procGPXfile(new GpxFile(gpxFile));\r
             }\r
         }\r
         catch(ParserConfigurationException | DOMException | SAXException | IOException | ParseException | ImageReadException | ImageWriteException | IllegalArgumentException | TransformerException e) {\r
-               e.printStackTrace();\r
-               this.ex = new Exception(e);\r
+            e.printStackTrace();\r
+            this.ex = new Exception(e);\r
         }\r
     }\r
     \r
@@ -325,20 +345,20 @@ public class ImportPicture extends Thread {
     void procGPXfile(GpxFile gpxFile) throws ParserConfigurationException, SAXException, IOException, ParseException, ImageReadException, ImageWriteException, TransformerException {\r
         System.gc();\r
 \r
-        System.out.println("           時差: "+ (delta / 1000) +"(sec)");\r
-        System.out.println("    Target GPX: ["+ gpxFile.getAbsolutePath() +"]");\r
-        System.out.println("          EXIF: "+ (exif ? ("convert to '" + outDir.getAbsolutePath() +"'") : "off"));\r
+        System.out.println("time difference: "+ (delta / 1000) +"(sec)");\r
+        System.out.println("     Target GPX: ["+ gpxFile.getAbsolutePath() +"]");\r
+        System.out.println("           EXIF: "+ (exif ? ("convert to '" + outDir.getAbsolutePath() +"'") : "off"));\r
         System.out.println();\r
 \r
         // imgDir内の画像ファイルを処理する\r
-               System.out.println("|--------------------------------|--------------------|--------------------|--------------|--------------|--------|------|------|");\r
-               System.out.println("| name                           | Camera Time        | GPStime            |   Latitude   |   Longitude  | ele    |magvar| km/h |");\r
-               System.out.println("|--------------------------------|--------------------|--------------------|--------------|--------------|--------|------|------|");\r
-               proc(imgDir, delta, gpxFile.mapTRKSEG, exif, gpxFile);\r
-               System.out.println("|--------------------------------|--------------------|--------------------|--------------|--------------|--------|------|------|");\r
+        System.out.println("|--------------------------------|--------------------|--------------------|--------------|--------------|--------|------|------|");\r
+        System.out.println("| name                           | Camera Time        | GPStime            |   Latitude   |   Longitude  | ele    |magvar| km/h |");\r
+        System.out.println("|--------------------------------|--------------------|--------------------|--------------|--------------|--------|------|------|");\r
+        proc(imgDir, delta, gpxFile.mapTRKSEG, exif, gpxFile);\r
+        System.out.println("|--------------------------------|--------------------|--------------------|--------------|--------------|--------|------|------|");\r
 \r
         // GPX出力\r
-               gpxFile.output(outDir);\r
+        gpxFile.output(outDir);\r
     }\r
     \r
        \r
@@ -386,8 +406,8 @@ public class ImportPicture extends Thread {
        public boolean ret;\r
        public int control;\r
        public Discripter(boolean ret) {\r
-               this.ret = ret;\r
-               this.control = Discripter.NEXT;\r
+            this.ret = ret;\r
+            this.control = Discripter.NEXT;\r
        }\r
     }\r
     \r
@@ -401,18 +421,31 @@ public class ImportPicture extends Thread {
             ImageMetadata meta = Imaging.getMetadata(imageFile);\r
             JpegImageMetadata jpegMetadata = (JpegImageMetadata)meta;\r
             if (jpegMetadata == null) {\r
-                System.out.println("'"+ imageFile.getAbsolutePath() +"' にEXIF情報がありません");\r
+                // "'%s'にEXIF情報がありません"\r
+                System.out.println(\r
+                    String.format(\r
+                        i18n.getString("msg.140"), \r
+                        imageFile.getAbsolutePath()\r
+                    )\r
+                );\r
                 result.control = Discripter.CONTINUE;\r
                 return result;\r
             }\r
+            @SuppressWarnings("LocalVariableHidesMemberVariable")\r
             TiffImageMetadata exif = jpegMetadata.getExif();\r
             if (exif == null) {\r
-                System.out.println("'"+ imageFile.getAbsolutePath() +"' にEXIF情報がありません");\r
+                // "'%s'にEXIF情報がありません"\r
+                System.out.println(\r
+                    String.format(\r
+                        i18n.getString("msg.140"), \r
+                        imageFile.getAbsolutePath()\r
+                    )\r
+                );\r
                 result.control = Discripter.CONTINUE;\r
                 return result;\r
             }\r
-               String dateTimeOriginal = exif.getFieldValue(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL)[0];\r
-               itime = ImportPicture.toEXIFDate(dateTimeOriginal);\r
+            String dateTimeOriginal = exif.getFieldValue(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL)[0];\r
+            itime = ImportPicture.toEXIFDate(dateTimeOriginal);\r
         }\r
         System.out.print(String.format("%20s|", toUTCString(itime)));\r
 \r
@@ -420,7 +453,7 @@ public class ImportPicture extends Thread {
         Date correctedtime = new Date(itime.getTime() + delta);\r
         System.out.print(String.format("%20s|", toUTCString(correctedtime)));\r
 \r
-               // 時刻uktimeにおける<magver>をtrkptに追加する\r
+        // 時刻uktimeにおける<magver>をtrkptに追加する\r
         String eleStr = "-";\r
         String magvarStr = "-";\r
         String speedStr = "-";\r
@@ -429,8 +462,8 @@ public class ImportPicture extends Thread {
         TagTrkpt trkptT = null;\r
 \r
         for (Map.Entry<Date,ElementMapTRKPT> map : mapTRKSEG.entrySet()) {\r
-               ElementMapTRKPT mapTRKPT = map.getValue();\r
-               trkptT = mapTRKPT.getValue(correctedtime);\r
+            ElementMapTRKPT mapTRKPT = map.getValue();\r
+            trkptT = mapTRKPT.getValue(correctedtime);\r
             if (trkptT != null) {\r
                 break;\r
             }\r
@@ -449,15 +482,15 @@ public class ImportPicture extends Thread {
             longitude = trkptT.lon;\r
             \r
             if (trkptT.eleStr != null) {\r
-               eleStr = new String(trkptT.eleStr);\r
+               eleStr = trkptT.eleStr;\r
             }\r
             \r
             if (trkptT.magvarStr != null) {\r
-               magvarStr = new String(trkptT.magvarStr);\r
+               magvarStr = trkptT.magvarStr;\r
             }\r
             \r
             if (trkptT.speedStr != null) {\r
-               speedStr = new String(trkptT.speedStr);\r
+               speedStr = trkptT.speedStr;\r
             }\r
             //System.out.print(String.format("%-14s|%-14s|", (new Double(latitude)).toString(), (new Double(longitude)).toString()));\r
             System.out.print(String.format("%14.10f|%14.10f|", latitude, longitude));\r
@@ -468,7 +501,7 @@ public class ImportPicture extends Thread {
         outDir.mkdir();\r
 \r
         if (exifWrite) {\r
-               exifWrite(imageFile, correctedtime, trkptT);\r
+            exifWrite(imageFile, correctedtime, trkptT);\r
 \r
             if (Boolean.parseBoolean(params.getProperty(AppParameters.GPX_OUTPUT_WPT))) {\r
                if (trkptT != null) {\r
@@ -478,10 +511,10 @@ public class ImportPicture extends Thread {
             }\r
         }\r
         else {\r
-               if (this.param_ImgOutputAll) {\r
-               // EXIFの変換を伴わない単純なファイルコピー\r
-                       FileInputStream sStream = new FileInputStream(imageFile);\r
-                       FileInputStream dStream = new FileInputStream(new File(outDir, imageFile.getName()));\r
+            if (this.param_ImgOutputAll) {\r
+                // EXIFの変換を伴わない単純なファイルコピー\r
+                FileInputStream sStream = new FileInputStream(imageFile);\r
+                FileInputStream dStream = new FileInputStream(new File(outDir, imageFile.getName()));\r
                 FileChannel srcChannel = sStream.getChannel();\r
                 FileChannel destChannel = dStream.getChannel();\r
                 try {\r
@@ -493,7 +526,7 @@ public class ImportPicture extends Thread {
                     sStream.close();\r
                     dStream.close();\r
                 }\r
-               }\r
+            }\r
         }\r
         result.control = Discripter.NEXT;\r
         return result;\r
@@ -509,6 +542,7 @@ public class ImportPicture extends Thread {
         ImageMetadata meta = Imaging.getMetadata(imageFile);\r
         JpegImageMetadata jpegMetadata = (JpegImageMetadata)meta;\r
         if (jpegMetadata != null) {\r
+            @SuppressWarnings("LocalVariableHidesMemberVariable")\r
             TiffImageMetadata exif = jpegMetadata.getExif();\r
             if (exif != null) {\r
                 outputSet = exif.getOutputSet();\r
@@ -541,10 +575,12 @@ public class ImportPicture extends Thread {
             final String dateStamp = yearStr +":"+ monthStr +":"+ dayStr;\r
 \r
             gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_TIME_STAMP);\r
-            gpsDir.add(GpsTagConstants.GPS_TAG_GPS_TIME_STAMP,\r
-                    RationalNumber.valueOf(cal.get(Calendar.HOUR_OF_DAY)),\r
-                    RationalNumber.valueOf(cal.get(Calendar.MINUTE)),\r
-                    RationalNumber.valueOf(cal.get(Calendar.SECOND)));\r
+            gpsDir.add(\r
+                GpsTagConstants.GPS_TAG_GPS_TIME_STAMP,\r
+                RationalNumber.valueOf(cal.get(Calendar.HOUR_OF_DAY)),\r
+                RationalNumber.valueOf(cal.get(Calendar.MINUTE)),\r
+                RationalNumber.valueOf(cal.get(Calendar.SECOND))\r
+            );\r
             gpsDir.removeField(GpsTagConstants.GPS_TAG_GPS_DATE_STAMP);\r
             gpsDir.add(GpsTagConstants.GPS_TAG_GPS_DATE_STAMP, dateStamp);\r
         }\r
@@ -565,14 +601,13 @@ public class ImportPicture extends Thread {
             }\r
 \r
             //---- EXIF GPS_ ----\r
-            outputSet.setGPSInDegrees(trkptT.lon.doubleValue(), trkptT.lat.doubleValue());\r
+            outputSet.setGPSInDegrees(trkptT.lon, trkptT.lat);\r
         }\r
 \r
         ExifRewriter rewriter = new ExifRewriter();\r
         try (FileOutputStream fos = new FileOutputStream(new File(outDir, imageFile.getName()))) {\r
             rewriter.updateExifMetadataLossy(imageFile, fos, outputSet);\r
         }\r
-\r
     }\r
     \r
     // 基準時刻ファイルの「更新日時」を使って時刻合わせを行う。\r
@@ -583,23 +618,35 @@ public class ImportPicture extends Thread {
             ImageMetadata meta = Imaging.getMetadata(baseFile);\r
             JpegImageMetadata jpegMetadata = (JpegImageMetadata)meta;\r
             if (jpegMetadata == null) {\r
-                System.out.println("'"+ baseFile.getAbsolutePath() +"' にEXIF情報がありません");\r
+                // "'%s'にEXIF情報がありません"\r
+                System.out.println(\r
+                    String.format(\r
+                        i18n.getString("msg.140"), \r
+                        baseFile.getAbsolutePath()\r
+                    )\r
+                );\r
                 return null;\r
             }\r
+            @SuppressWarnings("LocalVariableHidesMemberVariable")\r
             TiffImageMetadata exif = jpegMetadata.getExif();\r
             if (exif == null) {\r
-                System.out.println("'"+ baseFile.getAbsolutePath() +"' にEXIF情報がありません");\r
+                // "'%s'にEXIF情報がありません"\r
+                System.out.println(\r
+                    String.format(\r
+                        i18n.getString("msg.140"), \r
+                        baseFile.getAbsolutePath()\r
+                    )\r
+                );\r
                 return null;\r
             }\r
-               String dateTimeOriginal = exif.getFieldValue(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL)[0];\r
-               return new Date(ImportPicture.toEXIFDate(dateTimeOriginal).getTime());\r
+            String dateTimeOriginal = exif.getFieldValue(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL)[0];\r
+            return new Date(ImportPicture.toEXIFDate(dateTimeOriginal).getTime());\r
         }\r
         else {\r
             return new Date(baseFile.lastModified());\r
         }\r
     }\r
 \r
-       \r
     /**\r
      * 対象は '*.JPG' のみ対象とする\r
      * @return \r
@@ -609,7 +656,6 @@ public class ImportPicture extends Thread {
         return ((name != null) && name.toUpperCase().endsWith(".JPG"));\r
     }\r
 \r
-\r
     /**\r
      * DateをEXIFの文字列に変換する。\r
      * 注意:EXiFの撮影時刻はUTC時間ではない\r
@@ -674,13 +720,10 @@ public class ImportPicture extends Thread {
      * JPEGファイルフィルター\r
      * @author yuu\r
      */\r
-       class JpegFileFilter implements FilenameFilter {\r
+    class JpegFileFilter implements FilenameFilter {\r
        @Override\r
-               public boolean accept(File dir, String name) {\r
-                       if (name.toUpperCase().matches(".*\\.JPG$")) {\r
-                               return true;\r
-                       }\r
-                       return false;\r
+        public boolean accept(File dir, String name) {\r
+            return name.toUpperCase().matches(".*\\.JPG$");\r
        }\r
-       }\r
+    }\r
 }
\ No newline at end of file