add fsexam 0.8.1
authoryz157939@agc105
Fri, 25 Apr 2008 17:13:57 +0800
changeset 149 0014c9b031e9
parent 148 91c620d9e52f
child 150 82123ab9b377
add fsexam 0.8.1
src/cmd/fsexam/AUTHORS
src/cmd/fsexam/BUILD
src/cmd/fsexam/COPYING
src/cmd/fsexam/ChangeLog
src/cmd/fsexam/LICENSE
src/cmd/fsexam/Makefile.am
src/cmd/fsexam/NEWS
src/cmd/fsexam/README
src/cmd/fsexam/TODO
src/cmd/fsexam/autogen.sh
src/cmd/fsexam/configure.in
src/cmd/fsexam/data/GNOME_Fsexam.server.in
src/cmd/fsexam/data/Makefile.am
src/cmd/fsexam/data/fsexam.desktop.in
src/cmd/fsexam/data/fsexam.schemas.in
src/cmd/fsexam/help/C/Makefile.am
src/cmd/fsexam/help/C/figures/fsexam-pref.png
src/cmd/fsexam/help/C/figures/fsexam.png
src/cmd/fsexam/help/C/fsexam-C.omf
src/cmd/fsexam/help/C/fsexam.xml
src/cmd/fsexam/help/Makefile.am
src/cmd/fsexam/help/de/Makefile.am
src/cmd/fsexam/help/de/figures/fsexam-pref.png
src/cmd/fsexam/help/de/figures/fsexam.png
src/cmd/fsexam/help/de/fsexam-de.omf
src/cmd/fsexam/help/de/fsexam.xml
src/cmd/fsexam/help/es/Makefile.am
src/cmd/fsexam/help/es/figures/fsexam-pref.png
src/cmd/fsexam/help/es/figures/fsexam.png
src/cmd/fsexam/help/es/fsexam-es.omf
src/cmd/fsexam/help/es/fsexam.xml
src/cmd/fsexam/help/fr/Makefile.am
src/cmd/fsexam/help/fr/figures/fsexam-pref.png
src/cmd/fsexam/help/fr/figures/fsexam.png
src/cmd/fsexam/help/fr/fsexam-fr.omf
src/cmd/fsexam/help/fr/fsexam.xml
src/cmd/fsexam/help/it/Makefile.am
src/cmd/fsexam/help/it/figures/fsexam-pref.png
src/cmd/fsexam/help/it/figures/fsexam.png
src/cmd/fsexam/help/it/fsexam-it.omf
src/cmd/fsexam/help/it/fsexam.xml
src/cmd/fsexam/help/ja/Makefile.am
src/cmd/fsexam/help/ja/figures/fsexam-pref.png
src/cmd/fsexam/help/ja/figures/fsexam.png
src/cmd/fsexam/help/ja/fsexam-ja.omf
src/cmd/fsexam/help/ja/fsexam.xml
src/cmd/fsexam/help/ko/Makefile.am
src/cmd/fsexam/help/ko/figures/fsexam-pref.png
src/cmd/fsexam/help/ko/figures/fsexam.png
src/cmd/fsexam/help/ko/fsexam-ko.omf
src/cmd/fsexam/help/ko/fsexam.xml
src/cmd/fsexam/help/pt_BR/Makefile.am
src/cmd/fsexam/help/pt_BR/figures/fsexam-pref.png
src/cmd/fsexam/help/pt_BR/figures/fsexam.png
src/cmd/fsexam/help/pt_BR/fsexam-pt_BR.omf
src/cmd/fsexam/help/pt_BR/fsexam.xml
src/cmd/fsexam/help/sv/Makefile.am
src/cmd/fsexam/help/sv/figures/fsexam-pref.png
src/cmd/fsexam/help/sv/figures/fsexam.png
src/cmd/fsexam/help/sv/fsexam-sv.omf
src/cmd/fsexam/help/sv/fsexam.xml
src/cmd/fsexam/help/zh_CN/Makefile.am
src/cmd/fsexam/help/zh_CN/figures/fsexam-pref.png
src/cmd/fsexam/help/zh_CN/figures/fsexam.png
src/cmd/fsexam/help/zh_CN/fsexam-zh_CN.omf
src/cmd/fsexam/help/zh_CN/fsexam.xml
src/cmd/fsexam/help/zh_HK/Makefile.am
src/cmd/fsexam/help/zh_HK/figures/fsexam-pref.png
src/cmd/fsexam/help/zh_HK/figures/fsexam.png
src/cmd/fsexam/help/zh_HK/fsexam-zh_HK.omf
src/cmd/fsexam/help/zh_HK/fsexam.xml
src/cmd/fsexam/help/zh_TW/Makefile.am
src/cmd/fsexam/help/zh_TW/figures/fsexam-pref.png
src/cmd/fsexam/help/zh_TW/figures/fsexam.png
src/cmd/fsexam/help/zh_TW/fsexam-zh_TW.omf
src/cmd/fsexam/help/zh_TW/fsexam.xml
src/cmd/fsexam/pixmaps/Makefile.am
src/cmd/fsexam/pixmaps/fsexam-icon.png
src/cmd/fsexam/po/ChangeLog
src/cmd/fsexam/po/POTFILES.in
src/cmd/fsexam/po/cs.po
src/cmd/fsexam/po/de.po
src/cmd/fsexam/po/es.po
src/cmd/fsexam/po/fr.po
src/cmd/fsexam/po/hu.po
src/cmd/fsexam/po/it.po
src/cmd/fsexam/po/ja.po
src/cmd/fsexam/po/ko.po
src/cmd/fsexam/po/pl.po
src/cmd/fsexam/po/pt_BR.po
src/cmd/fsexam/po/ru.po
src/cmd/fsexam/po/sv.po
src/cmd/fsexam/po/zh_CN.po
src/cmd/fsexam/po/zh_HK.po
src/cmd/fsexam/po/zh_TW.po
src/cmd/fsexam/src/GNOME_Fsexam.idl
src/cmd/fsexam/src/Makefile.am
src/cmd/fsexam/src/auto-detect.c
src/cmd/fsexam/src/auto-detect.h
src/cmd/fsexam/src/callbacks.c
src/cmd/fsexam/src/callbacks.h
src/cmd/fsexam/src/encoding.c
src/cmd/fsexam/src/encoding.h
src/cmd/fsexam/src/file-filter.c
src/cmd/fsexam/src/file-filter.h
src/cmd/fsexam/src/file-validate.c
src/cmd/fsexam/src/file-validate.h
src/cmd/fsexam/src/fsexam-application-server.c
src/cmd/fsexam/src/fsexam-application-server.h
src/cmd/fsexam/src/fsexam-convcontent.c
src/cmd/fsexam/src/fsexam-convcontent.h
src/cmd/fsexam/src/fsexam-convname.c
src/cmd/fsexam/src/fsexam-convname.h
src/cmd/fsexam/src/fsexam-debug.c
src/cmd/fsexam/src/fsexam-debug.h
src/cmd/fsexam/src/fsexam-dialog.c
src/cmd/fsexam/src/fsexam-dialog.h
src/cmd/fsexam/src/fsexam-dnd.c
src/cmd/fsexam/src/fsexam-dnd.h
src/cmd/fsexam/src/fsexam-dryrun.c
src/cmd/fsexam/src/fsexam-dryrun.h
src/cmd/fsexam/src/fsexam-encoding-dialog.c
src/cmd/fsexam/src/fsexam-encoding-dialog.h
src/cmd/fsexam/src/fsexam-error.c
src/cmd/fsexam/src/fsexam-error.h
src/cmd/fsexam/src/fsexam-header.h
src/cmd/fsexam/src/fsexam-helper.c
src/cmd/fsexam/src/fsexam-helper.h
src/cmd/fsexam/src/fsexam-history.c
src/cmd/fsexam/src/fsexam-history.h
src/cmd/fsexam/src/fsexam-log.c
src/cmd/fsexam/src/fsexam-log.h
src/cmd/fsexam/src/fsexam-plaintext.c
src/cmd/fsexam/src/fsexam-plaintext.h
src/cmd/fsexam/src/fsexam-pref.c
src/cmd/fsexam/src/fsexam-pref.h
src/cmd/fsexam/src/fsexam-preference-dialog.c
src/cmd/fsexam/src/fsexam-preference-dialog.h
src/cmd/fsexam/src/fsexam-setting.c
src/cmd/fsexam/src/fsexam-setting.h
src/cmd/fsexam/src/fsexam-specialfile.c
src/cmd/fsexam/src/fsexam-specialfile.h
src/cmd/fsexam/src/fsexam-tree.c
src/cmd/fsexam/src/fsexam-tree.h
src/cmd/fsexam/src/fsexam-ui.c
src/cmd/fsexam/src/fsexam-ui.h
src/cmd/fsexam/src/fsexam.c
src/cmd/fsexam/src/fsexam.glade2
src/cmd/fsexam/src/fsexam.glade2p
src/cmd/fsexam/src/fsexam.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/AUTHORS	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,3 @@
+Yandong Yao <[email protected]>
+Federic Zhang <[email protected]>
+Yong Sun <[email protected]>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/BUILD	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,18 @@
+	How to build fsexam
+
+1. Prerequisite
+
+1.1 Compiler
+
+Download and install SunStudio from
+http://www.opensolaris.org/os/community/tools/sun_studio_tools/sun_studio_11_tools/ if have not installed SunStudio
+
+1.2 CBE
+
+Download and install CBE from http://dlc.sun.com/osol/jds/downloads/cbe/
+
+2. Build
+
+# ./autogen.sh --prefix=/path/to/your/prefix
+# make
+# make install
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/COPYING	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,385 @@
+Unless otherwise noted, all files in this distribution are released
+under the Common Development and Distribution License (CDDL),
+Version 1.0 only.  Exceptions are noted within the associated
+source files.
+
+--------------------------------------------------------------------
+
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0
+
+1. Definitions.
+
+    1.1. "Contributor" means each individual or entity that creates
+         or contributes to the creation of Modifications.
+
+    1.2. "Contributor Version" means the combination of the Original
+         Software, prior Modifications used by a Contributor (if any),
+         and the Modifications made by that particular Contributor.
+
+    1.3. "Covered Software" means (a) the Original Software, or (b)
+         Modifications, or (c) the combination of files containing
+         Original Software with files containing Modifications, in
+         each case including portions thereof.
+
+    1.4. "Executable" means the Covered Software in any form other
+         than Source Code.
+
+    1.5. "Initial Developer" means the individual or entity that first
+         makes Original Software available under this License.
+
+    1.6. "Larger Work" means a work which combines Covered Software or
+         portions thereof with code not governed by the terms of this
+         License.
+
+    1.7. "License" means this document.
+
+    1.8. "Licensable" means having the right to grant, to the maximum
+         extent possible, whether at the time of the initial grant or
+         subsequently acquired, any and all of the rights conveyed
+         herein.
+
+    1.9. "Modifications" means the Source Code and Executable form of
+         any of the following:
+
+        A. Any file that results from an addition to, deletion from or
+           modification of the contents of a file containing Original
+           Software or previous Modifications;
+
+        B. Any new file that contains any part of the Original
+           Software or previous Modifications; or
+
+        C. Any new file that is contributed or otherwise made
+           available under the terms of this License.
+
+    1.10. "Original Software" means the Source Code and Executable
+          form of computer software code that is originally released
+          under this License.
+
+    1.11. "Patent Claims" means any patent claim(s), now owned or
+          hereafter acquired, including without limitation, method,
+          process, and apparatus claims, in any patent Licensable by
+          grantor.
+
+    1.12. "Source Code" means (a) the common form of computer software
+          code in which modifications are made and (b) associated
+          documentation included in or with such code.
+
+    1.13. "You" (or "Your") means an individual or a legal entity
+          exercising rights under, and complying with all of the terms
+          of, this License.  For legal entities, "You" includes any
+          entity which controls, is controlled by, or is under common
+          control with You.  For purposes of this definition,
+          "control" means (a) the power, direct or indirect, to cause
+          the direction or management of such entity, whether by
+          contract or otherwise, or (b) ownership of more than fifty
+          percent (50%) of the outstanding shares or beneficial
+          ownership of such entity.
+
+2. License Grants.
+
+    2.1. The Initial Developer Grant.
+
+    Conditioned upon Your compliance with Section 3.1 below and
+    subject to third party intellectual property claims, the Initial
+    Developer hereby grants You a world-wide, royalty-free,
+    non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or
+            trademark) Licensable by Initial Developer, to use,
+            reproduce, modify, display, perform, sublicense and
+            distribute the Original Software (or portions thereof),
+            with or without Modifications, and/or as part of a Larger
+            Work; and
+
+        (b) under Patent Claims infringed by the making, using or
+            selling of Original Software, to make, have made, use,
+            practice, sell, and offer for sale, and/or otherwise
+            dispose of the Original Software (or portions thereof).
+
+        (c) The licenses granted in Sections 2.1(a) and (b) are
+            effective on the date Initial Developer first distributes
+            or otherwise makes the Original Software available to a
+            third party under the terms of this License.
+
+        (d) Notwithstanding Section 2.1(b) above, no patent license is
+            granted: (1) for code that You delete from the Original
+            Software, or (2) for infringements caused by: (i) the
+            modification of the Original Software, or (ii) the
+            combination of the Original Software with other software
+            or devices.
+
+    2.2. Contributor Grant.
+
+    Conditioned upon Your compliance with Section 3.1 below and
+    subject to third party intellectual property claims, each
+    Contributor hereby grants You a world-wide, royalty-free,
+    non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or
+            trademark) Licensable by Contributor to use, reproduce,
+            modify, display, perform, sublicense and distribute the
+            Modifications created by such Contributor (or portions
+            thereof), either on an unmodified basis, with other
+            Modifications, as Covered Software and/or as part of a
+            Larger Work; and
+
+        (b) under Patent Claims infringed by the making, using, or
+            selling of Modifications made by that Contributor either
+            alone and/or in combination with its Contributor Version
+            (or portions of such combination), to make, use, sell,
+            offer for sale, have made, and/or otherwise dispose of:
+            (1) Modifications made by that Contributor (or portions
+            thereof); and (2) the combination of Modifications made by
+            that Contributor with its Contributor Version (or portions
+            of such combination).
+
+        (c) The licenses granted in Sections 2.2(a) and 2.2(b) are
+            effective on the date Contributor first distributes or
+            otherwise makes the Modifications available to a third
+            party.
+
+        (d) Notwithstanding Section 2.2(b) above, no patent license is
+            granted: (1) for any code that Contributor has deleted
+            from the Contributor Version; (2) for infringements caused
+            by: (i) third party modifications of Contributor Version,
+            or (ii) the combination of Modifications made by that
+            Contributor with other software (except as part of the
+            Contributor Version) or other devices; or (3) under Patent
+            Claims infringed by Covered Software in the absence of
+            Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+    3.1. Availability of Source Code.
+
+    Any Covered Software that You distribute or otherwise make
+    available in Executable form must also be made available in Source
+    Code form and that Source Code form must be distributed only under
+    the terms of this License.  You must include a copy of this
+    License with every copy of the Source Code form of the Covered
+    Software You distribute or otherwise make available.  You must
+    inform recipients of any such Covered Software in Executable form
+    as to how they can obtain such Covered Software in Source Code
+    form in a reasonable manner on or through a medium customarily
+    used for software exchange.
+
+    3.2. Modifications.
+
+    The Modifications that You create or to which You contribute are
+    governed by the terms of this License.  You represent that You
+    believe Your Modifications are Your original creation(s) and/or
+    You have sufficient rights to grant the rights conveyed by this
+    License.
+
+    3.3. Required Notices.
+
+    You must include a notice in each of Your Modifications that
+    identifies You as the Contributor of the Modification.  You may
+    not remove or alter any copyright, patent or trademark notices
+    contained within the Covered Software, or any notices of licensing
+    or any descriptive text giving attribution to any Contributor or
+    the Initial Developer.
+
+    3.4. Application of Additional Terms.
+
+    You may not offer or impose any terms on any Covered Software in
+    Source Code form that alters or restricts the applicable version
+    of this License or the recipients' rights hereunder.  You may
+    choose to offer, and to charge a fee for, warranty, support,
+    indemnity or liability obligations to one or more recipients of
+    Covered Software.  However, you may do so only on Your own behalf,
+    and not on behalf of the Initial Developer or any Contributor.
+    You must make it absolutely clear that any such warranty, support,
+    indemnity or liability obligation is offered by You alone, and You
+    hereby agree to indemnify the Initial Developer and every
+    Contributor for any liability incurred by the Initial Developer or
+    such Contributor as a result of warranty, support, indemnity or
+    liability terms You offer.
+
+    3.5. Distribution of Executable Versions.
+
+    You may distribute the Executable form of the Covered Software
+    under the terms of this License or under the terms of a license of
+    Your choice, which may contain terms different from this License,
+    provided that You are in compliance with the terms of this License
+    and that the license for the Executable form does not attempt to
+    limit or alter the recipient's rights in the Source Code form from
+    the rights set forth in this License.  If You distribute the
+    Covered Software in Executable form under a different license, You
+    must make it absolutely clear that any terms which differ from
+    this License are offered by You alone, not by the Initial
+    Developer or Contributor.  You hereby agree to indemnify the
+    Initial Developer and every Contributor for any liability incurred
+    by the Initial Developer or such Contributor as a result of any
+    such terms You offer.
+
+    3.6. Larger Works.
+
+    You may create a Larger Work by combining Covered Software with
+    other code not governed by the terms of this License and
+    distribute the Larger Work as a single product.  In such a case,
+    You must make sure the requirements of this License are fulfilled
+    for the Covered Software.
+
+4. Versions of the License.
+
+    4.1. New Versions.
+
+    Sun Microsystems, Inc. is the initial license steward and may
+    publish revised and/or new versions of this License from time to
+    time.  Each version will be given a distinguishing version number.
+    Except as provided in Section 4.3, no one other than the license
+    steward has the right to modify this License.
+
+    4.2. Effect of New Versions.
+
+    You may always continue to use, distribute or otherwise make the
+    Covered Software available under the terms of the version of the
+    License under which You originally received the Covered Software.
+    If the Initial Developer includes a notice in the Original
+    Software prohibiting it from being distributed or otherwise made
+    available under any subsequent version of the License, You must
+    distribute and make the Covered Software available under the terms
+    of the version of the License under which You originally received
+    the Covered Software.  Otherwise, You may also choose to use,
+    distribute or otherwise make the Covered Software available under
+    the terms of any subsequent version of the License published by
+    the license steward.
+
+    4.3. Modified Versions.
+
+    When You are an Initial Developer and You want to create a new
+    license for Your Original Software, You may create and use a
+    modified version of this License if You: (a) rename the license
+    and remove any references to the name of the license steward
+    (except to note that the license differs from this License); and
+    (b) otherwise make it clear that the license contains terms which
+    differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+    COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
+    BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+    INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
+    SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
+    PURPOSE OR NON-INFRINGING.  THE ENTIRE RISK AS TO THE QUALITY AND
+    PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU.  SHOULD ANY
+    COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+    INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY
+    NECESSARY SERVICING, REPAIR OR CORRECTION.  THIS DISCLAIMER OF
+    WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.  NO USE OF
+    ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+    DISCLAIMER.
+
+6. TERMINATION.
+
+    6.1. This License and the rights granted hereunder will terminate
+    automatically if You fail to comply with terms herein and fail to
+    cure such breach within 30 days of becoming aware of the breach.
+    Provisions which, by their nature, must remain in effect beyond
+    the termination of this License shall survive.
+
+    6.2. If You assert a patent infringement claim (excluding
+    declaratory judgment actions) against Initial Developer or a
+    Contributor (the Initial Developer or Contributor against whom You
+    assert such claim is referred to as "Participant") alleging that
+    the Participant Software (meaning the Contributor Version where
+    the Participant is a Contributor or the Original Software where
+    the Participant is the Initial Developer) directly or indirectly
+    infringes any patent, then any and all rights granted directly or
+    indirectly to You by such Participant, the Initial Developer (if
+    the Initial Developer is not the Participant) and all Contributors
+    under Sections 2.1 and/or 2.2 of this License shall, upon 60 days
+    notice from Participant terminate prospectively and automatically
+    at the expiration of such 60 day notice period, unless if within
+    such 60 day period You withdraw Your claim with respect to the
+    Participant Software against such Participant either unilaterally
+    or pursuant to a written agreement with Participant.
+
+    6.3. In the event of termination under Sections 6.1 or 6.2 above,
+    all end user licenses that have been validly granted by You or any
+    distributor hereunder prior to termination (excluding licenses
+    granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+    UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+    (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+    INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+    COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+    LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+    CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+    LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
+    STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+    COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+    INFORMED OF THE POSSIBILITY OF SUCH DAMAGES.  THIS LIMITATION OF
+    LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+    INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+    APPLICABLE LAW PROHIBITS SUCH LIMITATION.  SOME JURISDICTIONS DO
+    NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
+    CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
+    APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+    The Covered Software is a "commercial item," as that term is
+    defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
+    computer software" (as that term is defined at 48
+    C.F.R. 252.227-7014(a)(1)) and "commercial computer software
+    documentation" as such terms are used in 48 C.F.R. 12.212
+    (Sept. 1995).  Consistent with 48 C.F.R. 12.212 and 48
+    C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all
+    U.S. Government End Users acquire Covered Software with only those
+    rights set forth herein.  This U.S. Government Rights clause is in
+    lieu of, and supersedes, any other FAR, DFAR, or other clause or
+    provision that addresses Government rights in computer software
+    under this License.
+
+9. MISCELLANEOUS.
+
+    This License represents the complete agreement concerning subject
+    matter hereof.  If any provision of this License is held to be
+    unenforceable, such provision shall be reformed only to the extent
+    necessary to make it enforceable.  This License shall be governed
+    by the law of the jurisdiction specified in a notice contained
+    within the Original Software (except to the extent applicable law,
+    if any, provides otherwise), excluding such jurisdiction's
+    conflict-of-law provisions.  Any litigation relating to this
+    License shall be subject to the jurisdiction of the courts located
+    in the jurisdiction and venue specified in a notice contained
+    within the Original Software, with the losing party responsible
+    for costs, including, without limitation, court costs and
+    reasonable attorneys' fees and expenses.  The application of the
+    United Nations Convention on Contracts for the International Sale
+    of Goods is expressly excluded.  Any law or regulation which
+    provides that the language of a contract shall be construed
+    against the drafter shall not apply to this License.  You agree
+    that You alone are responsible for compliance with the United
+    States export administration regulations (and the export control
+    laws and regulation of any other countries) when You use,
+    distribute or otherwise make available any Covered Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+    As between Initial Developer and the Contributors, each party is
+    responsible for claims and damages arising, directly or
+    indirectly, out of its utilization of rights under this License
+    and You agree to work with Initial Developer and Contributors to
+    distribute such responsibility on an equitable basis.  Nothing
+    herein is intended or shall be deemed to constitute any admission
+    of liability.
+
+--------------------------------------------------------------------
+
+NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND
+DISTRIBUTION LICENSE (CDDL)
+
+For Covered Software in this distribution, this License shall
+be governed by the laws of the State of California (excluding
+conflict-of-law provisions).
+
+Any litigation relating to this License shall be subject to the
+jurisdiction of the Federal Courts of the Northern District of
+California and the state courts of the State of California, with
+venue lying in Santa Clara County, California.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/ChangeLog	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,683 @@
+2007-07-13 Yandong Yao <[email protected]>
+
+	Fix bug: when the initial log file is NULL, can not set new log file
+
+2006-07-21 Yandong Yao <[email protected]>
+
+	Change License to CDDL
+
+2005-03-14  Federic Zhang <[email protected]>
+
+	Add GPL information in source files and header files
+
+2005-01-28  Yong Sun <[email protected]>
+
+	* src/fsexam-history.c: (serialize_history_item),
+	(deserialize_history_data):
+	Use "ESC" (i.e., \27) as the separator instead of "\t".
+
+2004-11-04  Yong Sun <[email protected]>
+
+	* src/fsexam-content.c: (is_plain_text_by_locale),
+	(encoding_to_locale), (fsexam_content_check_filetype),
+	(fsexam_content_check_plain_text): refine the judgement of plain text file.
+
+2004-11-01  Yong Sun <[email protected]>
+
+	* src/fsexam-history.c: (serialize_history_item): Only persist history items of convert action,
+	  not reverse action.
+
+	* src/fsexam-content.c: (fsexam_content_get_selection): Deal with null selection for preview
+
+2004-10-25  Yong Sun <[email protected]>
+
+	* data/fsexam.desktop.in: The desktop.in file should only mark the
+	translatable messages.
+
+2004-09-21  Yong Sun <[email protected]>
+
+	* src/fsexam-preference.c: (create_encodings_treeview): Do not show a
+	  empty header in encoding list (gtk_tree_view).
+
+2004-09-13  Yong Sun <[email protected]>
+
+	* src/fsexam-history.c: re-implement history functions. Save history
+	  items as plain text file.
+
+2004-09-09  Yong Sun <[email protected]>
+
+	* src/fsexam-content.c: (fsexam_content_check_filetype), (fsexam_content_check_plain_text):
+	Add guess list, and loop this list, to find out whether it's a text file. We have to set 
+	LC_CTYPE for non_UTF-8 chinese locales, so that we could expect file utility could return 
+	correct result.
+
+2004-09-06  Yong Sun <[email protected]>
+
+	* src/fsexam-history.c: (fsexam_history_update), (fsexam_history_close):
+	If there is not new history items added, do not invoke the fwrite,
+	which in Solaris will duplicate all previous contents.
+
+	* src/fsexam-ui.c: (fsexam_about): Add Yong to the author list.
+
+2004-09-06  Yong Sun <[email protected]>
+
+	* src/fsexam-content.c: (fsexam_content_check_plain_text): chop '\n' from the status message
+	* src/fsexam-content.c: (fsexam_content_undo): check whether the file is mepty
+
+2004-09-03  Yong Sun <[email protected]>
+
+	* src/fsexam-dnd.c: (drag_data_received_callback): update status bar
+	after dnd operation.
+
+2004-09-03  Federic Zhang <[email protected]>
+
+	* src/fsexam.c: (main): Load ${HOME}/Documents if launch from Launch->Applications->Utility,
+	otherwise, load current directory if launch it on terminal.
+
+2004-08-31  Yong Sun <[email protected]>
+
+	* src/fsexam-content.c: set LC_MESSAGES=c when we use file utility to
+	get file type.
+	
+2004-08-27  Federic Zhang <[email protected]>
+
+	Got final version of file from Gnome Documentation team.
+	* help/C/fsexam-C.omf, fsexam.xml:
+	* help/zh_CN/fsexam-zh_CN.omf, fsexam.xml:
+
+2004-08-27  Federic Zhang <[email protected]>
+
+	Follow the UI spec, put fsexam to Launch->Application->Utility
+	* data/fsexam.desktop.in:
+
+2004-08-24  Federic Zhang <[email protected]>
+
+	Package for build 17. Fix bug 5089799 for Solaris.
+	* src/fsexam-content.c: (fsexam_content_check_filetype): Convert the output of 'file'
+	into UTF8 and check whether the output contains the localized 'text'.
+	* src/fsexam-ui.c: (fsexam_treeitem_create): Fix one qsort problem.
+
+2004-08-23  Federic Zhang <[email protected]>
+
+	Candiate for build 17.  multiple selection conversion is supported now
+	and use better format to display conversion information in report pane
+	and write Undo/Reverse message into the report pane too.
+	* src/encoding.c: (init_encode): Fix bug 5089798 by checking the return value
+	of g_iconv_open.
+	* src/fsexam-content.c: (fsexam_content_check_filetype),
+	(fsexam_content_convert_file),
+	(fsexam_content_convert_single_selection),
+	(fsexam_content_convert), (fsexam_content_undo),
+	(fsexam_content_get_selection), (fsexam_content_peek): Compare localized 'text'
+	as the output of 'file' utility is localized in Solaris. Support multiple selection
+	for content conversion. Write more detailed message on statusbar.
+	* src/fsexam-content.h:
+	* src/fsexam-conversion.c: (fsexam_convert_with_candidates),
+	(write_to_buffer_in_report_pane), (write_to_report_pane),
+	(fsexam_filename_convert_file),
+	(fsexam_filename_convert_single_selection),
+	(fsexam_filename_convert), (fsexam_do_reverse),
+	(fsexam_reverse_single_selection), (fsexam_reverse), (fsexam_undo):
+	Initialize 'indexg' when press the 'Close' button.
+	Support multiple selection for filename conversion and use better format to 
+	display conversion information in report pane.	
+	* src/fsexam-history.c: correct the MATCH_CONVTYPE macro
+	* src/fsexam-ui.c: (fsexam_construct_ui): enable multiple selection
+
+2004-08-23  Yong Sun <[email protected]>
+
+	* fsexam.sol.spec: Add .desktop and omf files to pkgbuild
+
+2004-08-23  Yong Sun <[email protected]>
+
+	* configure.in: Hardcoded locale dir to %{prefix}/share/locale
+	* fsexam.sol.spec: Add mo files for pkgbuild
+
+2004-08-17  Yong Sun <[email protected]>
+
+	Fix the online help launch problem
+	* fsexam.spec: add scrollkeep-update to register the omf file
+	* help/C/fsexam-C.omf: have unique seriesid and correct the url info
+	* help/zh_CN/Makefile.am:
+	* help/zh_CN/Makefile.in:
+	* help/zh_CN/fsexam-zh_CN.omf: have unique seriesid and correct the url info
+	* help/zh_CN/fsexam.xml: correct the lang attribute
+	* src/fsexam-preference.c: (show_help): specify the fsexam-prefs location
+	* src/fsexam-ui.c: (show_help): specify the fsexam-intro location
+	* src/fsexam.c: (main): Correct the GNOME_PARAM_APP_DATADIR value
+
+2004-08-11  Federic Zhang <[email protected]>
+
+	* Dump to 0.3
+
+	Drag the "Documents" and "Trash" icon on desktop is supported and UI polish
+	* help/C/fsexam.xml: Modified according to the last change with UI polish
+	* help/zh_CN/fsexam.xml:
+	* src/fsexam-content.c: (fsexam_content_get_selection): UI polish
+	* src/fsexam-dnd.c: (drag_data_received_callback):
+	* src/fsexam-preference.c: (create_pref_dialog): UI polish
+	* src/fsexam-ui.c: (fsexam_construct_menu): UI polish
+
+2004-08-10  Federic Zhang <[email protected]>
+
+	UI polish and simplify the fsexam_content_undo API
+	* src/fsexam-content.c: (include_windows_carriage_return),
+	(fsexam_content_convert_file), (fsexam_content_undo):
+	* src/fsexam-content.h:  Write more descriptive message to statusbar
+	for ConvContent, ConvContentWithCRLF, ConvContentCRLFOnly.
+	Simplify the fsexam_content_undo API.
+	* src/fsexam-conversion.c: (write_to_buffer_in_report_pane),
+	(write_to_report_pane), (fsexam_do_reverse), (fsexam_reverse),
+	(fsexam_undo): Write the correct history item within fsexam_reverse.
+
+2004-08-09  Federic Zhang <[email protected]>
+
+	Implement Undo to act as 'Cancel the last action that user makes".
+	Define new member, 'serial', in history item to implement group Undo.
+	New conversion type, ConvContentWithCRLF, ConvContentCRLFOnly,
+		ConvContentWithCRLFReverse, ConvContentCRLFOnlyReverse
+	    to do automatic conversion from '\r\n' to '\n'.
+	* src/encode.h:
+	* src/encoding.c: (decode_analyzer):
+	* src/fsexam-content.c: (exclude_windows_carriage_return),
+	(include_windows_carriage_return), (fsexam_content_convert_file),
+	(fsexam_content_undo):
+	* src/fsexam-content.h:
+	* src/fsexam-conversion.c: (fsexam_undo_insert),
+	(fsexam_undo_remove), (fsexam_undo_removeall),
+	(write_to_buffer_in_report_pane), (write_to_report_pane),
+	(fsexam_filename_convert_file), (fsexam_filename_convert_dir),
+	(fsexam_do_reverse), (fsexam_reverse), (get_relative_name),
+	(fsexam_undo):
+	* src/fsexam-conversion.h:
+	* src/fsexam-history.c: (fsexam_history_locate_with_serial),
+	(fsexam_history_get_serial), (fsexam_history_put),
+	(fsexam_history_get_reverse),
+	(fsexam_history_get_reverse_by_value2),
+	(fsexam_history_get_reverse_by_value),
+	(fsexam_history_get_reverse_after), (fsexam_history_undo),
+	(fsexam_history_close):
+	* src/fsexam-history.h:
+	* src/fsexam-ui.c: (get_file_pixbuf), (fsexam_chooser_dir),
+	(fsexam_construct_menu):
+	* src/fsexam.h:
+
+2004-08-09  Federic Zhang <[email protected]>
+
+        * src/fsexam-dnd.c: (drag_data_received_callback):
+        fsexam will crash when drag "This Computer" or "Documents" on desktop to desktop,
+        fix it by checking whether the local_path is NULL or not
+
+2004-08-04  Federic Zhang <[email protected]>
+
+	UI polish on the preference dialog
+	* src/fsexam-preference.c: (set_button_sensitive),
+	(create_encodings_treeview), (fsexam_pref_set), (show_help),
+	(create_pref_dialog): Fix 5071819 by packing the Help button into dialog->action_area
+	* src/fsexam-ui.c: (set_item_collation):
+
+2004-08-03  Federic Zhang <[email protected]>
+
+	* src/fsexam-ui.c: (key_press_event), (tree_popup_handler),
+	(fsexam_construct_ui): Double click the left button or press Space will
+	invoke fsexam_filename_convert.	
+
+2004-08-02  Federic Zhang <[email protected]>
+
+	Add themed mimetype icons for each file and folder and
+	port to gtk-2.4 file selector.
+	* src/fsexam-ui.c: (get_file_pixbuf), (fsexam_treeitem_create),
+	(treemodel_create_with_treeitem), (fsexam_treeview_expand),
+	(fsexam_treemodel_create_with_treeitem), (fsexam_chooser_dir),
+	(fsexam_construct_ui): New get_file_pixbuf to get icon for each file
+	and folder.
+	* src/fsexam.c: (main): Initialize the pixbuf_hash table.
+	* src/fsexam.h: new pixbuf_hash variable and ICON_COLUMN.
+
+2004-07-30  Federic Zhang <[email protected]>
+
+	Enable the drag-n-drop from nautilus to fsexam
+	* configure.in: Add the dependency on eel-2.0
+	* src/fsexam-ui.c: (fsexam_treeview_set_title),
+	(fsexam_treeview_construct), (fsexam_treeview_reconstruct),
+	(fsexam_construct_ui): Set mainwin as potential drop destination
+	* src/fsexam.h: export fsexam_construct_ui
+	* src/fsexam-dnd.h, fsexam-dnd.c: Define drag_data_received_callback
+
+2004-07-23  Federic Zhang <[email protected]>
+
+	Cinnabar for Solaris Beta build 15
+	* fsexam.sol.spec: Remove fsexam.desktop in order not to let fsexam 
+	  exists on Application --> Accessories menu.
+
+2004-07-20  Federic Zhang <[email protected]>
+
+	UI Polish to try to conform to HIG.
+	Rewrite the fsexam_construct_menu to make its struct flexible and fix those
+	mnomenic and accelerator problems on MENUBAR
+	* src/fsexam-conversion.c: (is_dummy_iter):
+	* src/fsexam-ui.c: (fsexam_treeview_set_title),
+	(fsexam_chooser_dir), (append_menuitem), (append_stock_menuitem),
+	(append_check_menuitem), (set_menuitem_text),
+	(fsexam_construct_menu), (fsexam_construct_ui):
+
+2004-07-15  Federic Zhang <[email protected]>
+
+	Use variable argument list in iterate_encode_with_func to make it more powerful
+	* src/encode.h: variable argument list for iterate_encode_with_func
+	* src/encoding.c: (get_encode_elements),
+	(iterate_encode_with_func), (translate_encode_index): Change
+	translate_encode_index to become one func example for iterate_encode_with_func
+	and break within iterate_encode_with_func once the specified func retruns FALSE
+	* src/fsexam-content.c: (fsexam_content_construct_ui):
+	* src/fsexam-conversion.c: (fsexam_convert_construct_ui),
+	(fsexam_convert_with_candidates), (write_to_buffer_in_report_pane),
+	(write_to_report_pane): New write_to_buffer_in_report_pane which has six
+	arguments
+
+2004-07-14  Federic Zhang <[email protected]>
+
+	* src/fsexam-ui.c: (set_item_collation), (fsexam_treeitem_create):
+	Don't display hidden files and fix the wrong collation problem with
+	set_item_collation
+
+2004-07-13  Federic Zhang <[email protected]>
+
+	Package build 14 - Simplify source by introducing iterate_encode_with_func ()
+	* src/encode.h: New APIs get_encode_elements and iterate_encode_with_func
+	* src/encoding.c: (get_encode_elements),
+	(iterate_encode_with_func): Add iterate_encode_with_func
+	* src/fsexam-content.c: (fsexam_content_construct_ui),
+	(fsexam_content_show_candidates): Make call to fsexam_content_construct_ui via
+	iterate_encode_with_func to construct user interface
+	* src/fsexam-conversion.c: (fsexam_convert_candidate_set),
+	(fsexam_convert_construct_ui), (fsexam_convert_with_candidates): Mall call to
+	fsexam_convert_construct_ui via iterate_encode_with_func to construct user 
+	interface and fix wrong index problem in write_to_report_pane
+
+2004-07-12  Federic Zhang <[email protected]>
+
+	Candidate Package build 14
+	* src/encode.h: export translate_encode_index and get_first_encode_index
+	* src/encoding.c: (decode_analyzer), (translate_encode_index): Translate the index
+	of current conversion selection into the index in encode list. Return FAIL if conversion
+	fails. When automatic mode is set, use get_first_encode_index to get first encoding
+	whose score is HIGH othewise the first encoding whose score is LOW if no HIGH score exists
+	* src/fsexam-content.c: (fsexam_content_show_candidates),
+	(fsexam_content_convert_file): Fix wrong index problem with translate_encode_index,
+	don't try to convert if the file content is legacy encoding already during undo
+	* src/fsexam-conversion.c: (fsexam_convert_with_candidates),
+	(fsexam_filename_convert_file): Fix wrong index problem with translate_encode_index
+	call get_first_encode_index to get best encoding index when automatic mode is set
+	* data/fsexam.desktop.in, fsexam.schemas.in: Add ISO8859-1 into encode list for european
+	language
+	* po/de.po, es.po, fr.po, it.po, ja.po, ko.po, pt_BR.po, sv.po, zh_HK.po, zh_TW.po:
+	 Sync with G11N workspace
+
+
+2004-07-09  Federic Zhang <[email protected]>
+
+	* configure.in: Add 'de, es, fr, it, ko, pt_BR, sv, zh_TW and zh_HK'
+	  into ALL_LINGUAS.
+	* data/fsexam.schemas.in: Replace ro with pt_BR
+	* po/de.po, es.po, fr.po, it.po, ja.po, ko.po, pt_BR.po, sv.po, zh_HK.po, zh_TW.po:
+	  Add with sample po file
+
+2004-07-09  Federic Zhang <[email protected]>
+
+	* src/fsexam-content.c: (exclude_windows_carriage_return),
+	(fsexam_content_convert_file), (fsexam_content_get_sample),
+	(fsexam_content_peek): Add exclude_windows_carriage_return
+	to replace the occurrence of \r\n with \n.
+
+2004-07-08  Federic Zhang <[email protected]>
+
+	* data/fsexam.schemas.in: Correct the encode list for european language according
+	to http://www.cs.tut.fi/~jkorpela/8859.html.
+
+2004-07-08  Federic Zhang <[email protected]>
+
+	* src/fsexam-content.c: (fsexam_content_show_candidates),
+	(fsexam_content_peek):Kill warning
+	* src/fsexam-conversion.c: (fsexam_filename_rename),
+	(fsexam_filename_convert_file), (is_dummy_iter),
+	(fsexam_filename_convert_dir), (fsexam_filename_convert),
+	(get_iter): Add is_dummy_iter to check whether it is null directory and
+	write error msg into statusbar if duplicate filename and dirname happens
+	* src/fsexam-history.c: (fsexam_history_update): Kill warning
+	* src/fsexam-ui.c: (fsexam_treeview_set_title): Kill warning
+
+2004-07-07  Federic Zhang <[email protected]>
+
+	* src/fsexam-content.c: (fsexam_content_show_candidates),
+	(fsexam_content_convert_file): set the label with bold markup, fix the wrong 
+	GtkAttachOption for vertical resizing and set default window size.
+	* src/fsexam-ui.c: (fsexam_treeview_expand): Don't delete the dummy iter if it is
+	null directory and disable row expand.
+
+2004-06-29  Federic Zhang <[email protected]>
+
+	Package build 13 - UI and OLH freeze for Cinnabar beta
+	* po/fsexam.pot, zh_CN.po: UI freeze
+	* data/fsexam.schemas.in: Added the encoding list for de, es, fr, it, ro, sv and kr
+	* help/C/fsexam.xml: OLH freeze
+	* help/zh_CN/fsexam.xml: 
+
+2004-06-28  Gavin Tu <[email protected]>
+        * help/C/fsexam.xml: complete OLH excepte section 4.3 "Encoding List"
+
+2004-06-28  Federic Zhang <[email protected]>
+
+	The candidate for build 13 package: Launch peek window from menu item
+	and use one ugly hack to close the window and add candidate window to
+	list file content conversion.
+	* data/fsexam.schemas.in: Added ISO-2002-JP for ja_JP
+	* src/fsexam-content.c: (widget_destroy), (encode_button_press),
+	(fsexam_content_show_candidates), (fsexam_content_convert_file),
+	(fsexam_content_undo), (peekwin_destroy), (fsexam_content_peek):
+	Use one ugly hack to close the preview window and add candidate window
+	to display all file content conversion.
+	* src/fsexam-conversion.c: (write_to_report_pane),
+	(fsexam_filename_convert_file): Fixed write_to_report_pane 
+	* src/fsexam-ui.c: (fsexam_construct_menu): Added 'Peek content' menu item.
+
+2004-06-25  Federic Zhang <[email protected]>
+
+	* src/fsexam-history.c: (fsexam_history_open),
+	(fsexam_history_update): fix the wrongly used magic number, Add 
+	fsexam_history_update to update history file at regular intervals
+	* src/fsexam-history.h: Add the fsexam_history_update ()
+	* src/fsexam-ui.c: (button_release_event): Fix the event problem
+	by return either TRUE or FALSE
+	* src/fsexam.c: (main): Set the timeout to call fsexam_history_update
+	at one minute interval.
+
+2004-06-24  Federic Zhang <[email protected]>
+
+	* src/fsexam-content.c: (fsexam_content_check_plain_text),
+	(fsexam_content_undo), (create_content_pixmap),
+	(set_window_background), (peek_window_realize),
+	(update_peek_window), (make_peek_window), (get_upper_left_xy),
+	(place_peek_window), (fsexam_content_get_sample),
+	(fsexam_content_peek): Support the peek functionality
+	* src/fsexam-content.h: Added fsexam_content_peek ()
+	* src/fsexam-ui.c: (button_release_event), (tree_popup_handler),
+	(fsexam_construct_ui):
+	* src/fsexam.h: new global variable 'peekwin' for peek window
+
+2004-06-24  Federic Zhang <[email protected]>
+
+	* src/fsexam-conversion.c: (fsexam_reverse): when do reverse, if fail to get one
+	  history item with fsexam_history_get_reverse_by_value, exit it immediately
+
+2004-06-24  Federic Zhang <[email protected]>
+
+	* src/fsexam-content.c: (fsexam_content_convert): Check whether view->rootdir isn't
+	  set yet to avoid error.
+	* src/fsexam-conversion.c: (fsexam_filename_convert),
+	(fsexam_reverse), (fsexam_undo): Check whether view->rootdir isn't set yet to avoid
+	  crash.
+
+2004-06-24  Federic Zhang <[email protected]>
+
+	* src/fsexam-content.c: (fsexam_content_check_filetype),
+	(fsexam_content_check_plain_text), (fsexam_content_convert_file),
+	(fsexam_content_get_selection), (fsexam_content_convert),
+	(fsexam_content_undo): Bugfix and display the filetype information
+	 into status bar if it isn't plain text file.
+	* src/fsexam-conversion.c: (write_to_report_pane),
+	(fsexam_validate_with_newline), (fsexam_filename_convert_file),
+	(fsexam_do_reverse), (fsexam_reverse): Redefine 'reverse': when do 
+	 reverse, fsexam will try to convert both file name and file 
+	 content into native encoding at once. Update the write_to_report_pane
+	 to write file content converion information into report pane.
+	* src/fsexam-conversion.h: Export fsexam_validate_with_newline ()
+	  and write_to_report_pane for file content conversion
+	* src/fsexam-history.c: (fsexam_history_get_reverse_by_value2):
+	  Added to get one history item with the same conversion type
+	* src/fsexam-history.h:
+	* src/fsexam-ui.c:
+	* src/fsexam.h: new global variable 'lineoffset' for report pane
+
+2004-06-17  Federic Zhang <[email protected]>
+
+	* src/fsexam-ui.c: (fsexam_treeitem_create), (show_help),
+	(fsexam_about), (fsexam_construct_menu), (load_icon),
+	(fsexam_construct_ui): load_icon is to set the icon for fsexam and
+	set view->rootdir to NULL if the specified dir doesn't exist
+	* src/fsexam.h: Added "icon"
+
+2004-06-16  Federic Zhang <[email protected]>
+
+	file content conversion support
+	* data/fsexam.schemas.in:
+	* src/Makefile.am:
+	* src/Makefile.in:
+	* src/encode.h:
+	* src/encoding.c: (init_encode), (destroy_encode),
+	(decode_analyzer), (cleanup_encode):
+	* src/fsexam-conversion.c: (fsexam_convert_with_candidates),
+	(write_to_report_pane), (fsexam_filename_convert_file),
+	(fsexam_reverse), (fsexam_undo):
+	* src/fsexam-conversion.h:
+	* src/fsexam-history.c: (fsexam_history_put),
+	(fsexam_history_get_reverse),
+	(fsexam_history_get_reverse_by_value), (fsexam_history_undo),
+	(fsexam_history_open):
+	* src/fsexam-history.h:
+	* src/fsexam-preference.c: (create_fsexam_pref):
+	* src/fsexam-preference.h:
+	* src/fsexam-ui.c: (fsexam_construct_menu):
+	* src/fsexam.c:
+	* src/fsexam-content.h, fsexam-content.c: added
+
+2004-06-16  Federic Zhang <[email protected]>
+
+	* Added the 'fsexam_0_1' branch. From now on, the version number will
+	  be 0.2 by adding the functionality of content conversion.
+
+2004-06-15  Federic Zhang <[email protected]>
+
+	* src/fsexam-ui.c: (fsexam_treeview_set_title),
+	(fsexam_treeitem_create), (fsexam_treeview_reconstruct),
+	(fsexam_construct_ui): added fsexam_treeview_set_title to indicate the current root
+	directory
+
+2004-06-15  Federic Zhang <[email protected]>
+
+	* fsexam.spec, fsexam.spec.in: For Cinnabar build 12
+
+2004-06-14  Federic Zhang <[email protected]>
+
+	* src/fsexam.c: (main): fixed the wrong usage of gnome_program_init ()
+
+2004-06-11  Federic Zhang <[email protected]>
+
+	* src/fsexam-conversion.c: (fsexam_filename_undo): Check whether rootdir is set or not
+	  to fix the undo crash.
+
+2004-06-08  Gavin Tu <[email protected]>
+	*  src/fsexam-ui.c: remove menu item "saveAs"	
+
+2004-06-01  Gavin Tu <[email protected]>
+
+	* todo:add two tasks
+
+2004-05-31  Federic Zhang <[email protected]>
+
+	* data/fsexam.desktop.in: Corrected the name description for build 11
+	* fsexam.spec, fsexam.spec.in: updated for build 11
+	* Makefile.in, src/Makefile.in: Recreated as corresponding Makefile.am
+	  has been modified
+	* help/Makefile.in, help/zh_CN/Makefile.in, help/C/Makefile.in: Added
+
+2004-05-31  Gavin Tu <[email protected]>
+	* fsexam.sol.spec:  For Cinnabar build 11, add l10en menu, context-sensitive menu, help, reverse
+
+2004-05-28  Gavin Tu <[email protected]>
+ 	* fsexam.sol.spec: replace autoconf with autogen.sh
+
+2004-05-27  Federic Zhang <[email protected]>
+
+	* src/fsexam-conversion.c: Rework on fsexam_filename_reverse ()
+	* src/fsexam-history.c: replace fsexam_history_item_reverse and fsexam_history_get_by_fullpath
+	  with fsexam_history_get_reverse and fsexam_history_get_reverse_by_value.
+	* src/fsexam-history.h:
+
+2004-05-27  Gavin Tu <[email protected]>
+	
+	* po/zh_CN.po: change translation for "Recursive Mode"
+
+2004-05-27  Gavin Tu <[email protected]>
+	
+	* src/fsexam-ui.c: add menu item of "Revert"
+	* src/fsexam-convertion.h: 
+        * src/fsexam-convertion.c:add fsexam_filename_reverse()
+        * src/fsexam-history.c: add fsexam_history_item_reverse(), fsexam_history_get_by_fullpath
+ 
+2004-05-26  Gavin Tu <[email protected]>
+	
+	* src/fsexam-ui.c: add context-sensitive menu for treeview
+
+2004-05-26  Gavin Tu <[email protected]>
+	
+	* configure.in: add three output files, including help/Makefile help/C/Makefile help/zh_CN/Makefile
+	* Makefile.am:add dirctory "help"
+	* src/fsexam-ui.c: (show_help), (fsexam_construct_menu):
+	* help/: add help files for zh_CN and C locales
+
+2004-05-25  Gavin Tu <[email protected]>
+
+	* autogen.sh: add this file to execute automake,autoconf
+	* src/Makefile.am: pre-define CPPFLAG, for GNOME_PROGRAM_STANDARD_PROPERTIES
+	* src/fsexam-preference.c: (show_help): 
+	* src/fsexam.c: (main): GNOME_PROGRAM_STANDARD_PROPERTIES
+
+2004-05-25  Gavin Tu <[email protected]>
+
+	* src/fsexam-ui.c: allocate memory for name dynamically, so can deal with very long full dirctory path. 
+
+
+2004-05-25  Gavin Tu <[email protected]>
+
+	* src/fsexam-ui.c: add menu item "Save as", add two menu item separator, add some comments 
+
+2004-05-21 Gavin Tu <[email protected]>
+	* src/fsexam-ui.c:gtk_item_factory_create_items() is deprecated, so create menu with fsexam_construct_menu()
+			  menu can be l10ned.
+ 	* po/zh_CN.po: add some menu items, such as "File", "Action", "View", "Help" etc
+
+
+2004-05-20  Federic Zhang <[email protected]>
+
+	* autom4te.cache/output.0: Removed
+	* autom4te.cache/requests: Removed
+	* autom4te.cache/traces.0: Removed
+	* autom4te.cache: Removed
+
+2004-05-20  Federic Zhang <[email protected]>
+
+	* config.h: Removed
+	* config.log: Removed
+	* config.status: Removed
+	* configure: Removed
+	* fsexam.spec: Updated to use autoconf
+	* fsexam.spec.in: Updated to use autoconf
+	* libtool: Removed
+
+2004-05-20  Federic Zhang <[email protected]>
+
+	* autom4te.cache/output.0:
+	* autom4te.cache/requests:
+	* autom4te.cache/traces.0:
+	* config.log:
+	* config.status:
+	* configure:
+	* libtool:
+	* todo:
+
+2004-05-20  Federic Zhang  <[email protected]>
+
+        * Have all global variables into FSEXAM_view
+	* src/fsexam-conversion.c: (fsexam_convert_with_candidates),
+	(write_to_report_pane), (fsexam_filename_convert_file),
+	(fsexam_filename_convert_dir), (fsexam_filename_convert),
+	(fsexam_filename_undo):
+	* src/fsexam-preference.c: (create_encodings_treeview),
+	(create_pref_dialog):
+	* src/fsexam-ui.c: (fsexam_treeitem_create),
+	(fsexam_treeview_expand), (fsexam_treeview_construct),
+	(fsexam_statusbar_update), (fsexam_treeview_reconstruct),
+	(show_report_window), (fsexam_construct_ui):
+	* src/fsexam.c: (main):
+	* src/fsexam.h:
+	* todo:
+
+2004-05-17  Federic Zhang  <[email protected]>
+
+	* The third package for cinnabar build 10
+	* po/POTFILES.in, POTFILES, zh_CN.po: updated with intltool-update --pot
+	* src/fsexam-ui.c: upated to fix one segment error by copying a statically
+	  allocated buffer into heap
+
+2004-05-13  Federic Zhang  <[email protected]>
+
+	* candidate for build 10
+	* Makefile, src/Makefile: deleted
+	* pixmaps/Makefile.am, Makefile.in, fsexam-icon.png: added
+	* data/Makefile.am, Makefile.in, fsexam.desktop.in: added the menu
+	  entry under 'launch' menu.
+	* data/fsexam.fsexam.in: moved from src to separate data from source
+	* configure, configure.in, Makefile.in, Makefile.am, src/Makefile.in,
+	  Makefile.am: updated with automake and separate data from source
+	* fsexam.spec, fsexam.spec.in: updated to include fsexam.desktop and
+	  fsexam-icon.png
+	* src/fsexam-ui.c: added the 'About' window
+	
+2004-05-10  Federic Zhang  <[email protected]>
+
+	* More stable version as it has been enhanced in following five aspects:
+		 new Status bar
+		 recursive mode enabled
+		 new treeview load on demand
+		 report pane beautified
+		 comments
+	* src/fsexam.h, fsexam-conversion.h: added status bar and new COLUMN type - LOADED_COLUMN
+	  and export fsexam_filename_get_path ()
+	* src/fsexam-ui.c fsexam-conversion.c: Added new 'loaded' field to mark if one directory 
+	  is loaded or not, Replace the old stupid way with 'load on demand', Added status bar to 
+	  display useful information, Enable recursive mode and Enhance write_to_report_pane ()
+	  with bold font and color tag and Fix the undo bug by modifying get_iter ()
+
+2004-04-29  Federic Zhang  <[email protected]>
+
+	* src/fsexam-preference.c, fsexam-preference.h: added code to handle help window
+	  and sync with encoding change with fsexam_pref_encoding_sync ()
+	* src/fsexam.c: make a call to fsexam_pref_free () when exit
+	* src/encoding.c, encode.h, fsexam-preference.c: use destroy_encode () to free
+	   and the parameter of init_encode () is singly-linked list instead
+
+2004-04-29  Federic Zhang  <[email protected]>
+
+	* the second pacakge for Cinnabar build09
+	* src/fsexam-ui.c, encoding.c, fsexam-conversion.c: updated to check permission
+	  issue when rename and use <Ctrl>+Z as keystroke combination for Undo instead
+
+2004-04-27  Federic Zhang  <[email protected]>
+
+	* src/fsexam-history.c, fsexam-history.h: added to define the general APIs
+	  to access the existing conversion information
+	* src/fsexam-ui.c: updated to free the TreeItem * struct if the current
+	  directory is changed
+	* src/Makefile.in, Makefile.am, fsexam.c, fsexam-conversion.c fsexam-preference.c,
+	  fsexam.h, fsexam-conversion.h:
+	  updated accordingly
+
+2004-04-20  Federic Zhang  <[email protected]>
+
+	* rewrite the whole stuff to have better data structure
+	* the first package for Cinnabar build08
+
+2004-04-11  Federic Zhang  <[email protected]>
+
+	* Release version 0.1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/LICENSE	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,385 @@
+Unless otherwise noted, all files in this distribution are released
+under the Common Development and Distribution License (CDDL),
+Version 1.0 only.  Exceptions are noted within the associated
+source files.
+
+--------------------------------------------------------------------
+
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0
+
+1. Definitions.
+
+    1.1. "Contributor" means each individual or entity that creates
+         or contributes to the creation of Modifications.
+
+    1.2. "Contributor Version" means the combination of the Original
+         Software, prior Modifications used by a Contributor (if any),
+         and the Modifications made by that particular Contributor.
+
+    1.3. "Covered Software" means (a) the Original Software, or (b)
+         Modifications, or (c) the combination of files containing
+         Original Software with files containing Modifications, in
+         each case including portions thereof.
+
+    1.4. "Executable" means the Covered Software in any form other
+         than Source Code.
+
+    1.5. "Initial Developer" means the individual or entity that first
+         makes Original Software available under this License.
+
+    1.6. "Larger Work" means a work which combines Covered Software or
+         portions thereof with code not governed by the terms of this
+         License.
+
+    1.7. "License" means this document.
+
+    1.8. "Licensable" means having the right to grant, to the maximum
+         extent possible, whether at the time of the initial grant or
+         subsequently acquired, any and all of the rights conveyed
+         herein.
+
+    1.9. "Modifications" means the Source Code and Executable form of
+         any of the following:
+
+        A. Any file that results from an addition to, deletion from or
+           modification of the contents of a file containing Original
+           Software or previous Modifications;
+
+        B. Any new file that contains any part of the Original
+           Software or previous Modifications; or
+
+        C. Any new file that is contributed or otherwise made
+           available under the terms of this License.
+
+    1.10. "Original Software" means the Source Code and Executable
+          form of computer software code that is originally released
+          under this License.
+
+    1.11. "Patent Claims" means any patent claim(s), now owned or
+          hereafter acquired, including without limitation, method,
+          process, and apparatus claims, in any patent Licensable by
+          grantor.
+
+    1.12. "Source Code" means (a) the common form of computer software
+          code in which modifications are made and (b) associated
+          documentation included in or with such code.
+
+    1.13. "You" (or "Your") means an individual or a legal entity
+          exercising rights under, and complying with all of the terms
+          of, this License.  For legal entities, "You" includes any
+          entity which controls, is controlled by, or is under common
+          control with You.  For purposes of this definition,
+          "control" means (a) the power, direct or indirect, to cause
+          the direction or management of such entity, whether by
+          contract or otherwise, or (b) ownership of more than fifty
+          percent (50%) of the outstanding shares or beneficial
+          ownership of such entity.
+
+2. License Grants.
+
+    2.1. The Initial Developer Grant.
+
+    Conditioned upon Your compliance with Section 3.1 below and
+    subject to third party intellectual property claims, the Initial
+    Developer hereby grants You a world-wide, royalty-free,
+    non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or
+            trademark) Licensable by Initial Developer, to use,
+            reproduce, modify, display, perform, sublicense and
+            distribute the Original Software (or portions thereof),
+            with or without Modifications, and/or as part of a Larger
+            Work; and
+
+        (b) under Patent Claims infringed by the making, using or
+            selling of Original Software, to make, have made, use,
+            practice, sell, and offer for sale, and/or otherwise
+            dispose of the Original Software (or portions thereof).
+
+        (c) The licenses granted in Sections 2.1(a) and (b) are
+            effective on the date Initial Developer first distributes
+            or otherwise makes the Original Software available to a
+            third party under the terms of this License.
+
+        (d) Notwithstanding Section 2.1(b) above, no patent license is
+            granted: (1) for code that You delete from the Original
+            Software, or (2) for infringements caused by: (i) the
+            modification of the Original Software, or (ii) the
+            combination of the Original Software with other software
+            or devices.
+
+    2.2. Contributor Grant.
+
+    Conditioned upon Your compliance with Section 3.1 below and
+    subject to third party intellectual property claims, each
+    Contributor hereby grants You a world-wide, royalty-free,
+    non-exclusive license:
+
+        (a) under intellectual property rights (other than patent or
+            trademark) Licensable by Contributor to use, reproduce,
+            modify, display, perform, sublicense and distribute the
+            Modifications created by such Contributor (or portions
+            thereof), either on an unmodified basis, with other
+            Modifications, as Covered Software and/or as part of a
+            Larger Work; and
+
+        (b) under Patent Claims infringed by the making, using, or
+            selling of Modifications made by that Contributor either
+            alone and/or in combination with its Contributor Version
+            (or portions of such combination), to make, use, sell,
+            offer for sale, have made, and/or otherwise dispose of:
+            (1) Modifications made by that Contributor (or portions
+            thereof); and (2) the combination of Modifications made by
+            that Contributor with its Contributor Version (or portions
+            of such combination).
+
+        (c) The licenses granted in Sections 2.2(a) and 2.2(b) are
+            effective on the date Contributor first distributes or
+            otherwise makes the Modifications available to a third
+            party.
+
+        (d) Notwithstanding Section 2.2(b) above, no patent license is
+            granted: (1) for any code that Contributor has deleted
+            from the Contributor Version; (2) for infringements caused
+            by: (i) third party modifications of Contributor Version,
+            or (ii) the combination of Modifications made by that
+            Contributor with other software (except as part of the
+            Contributor Version) or other devices; or (3) under Patent
+            Claims infringed by Covered Software in the absence of
+            Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+    3.1. Availability of Source Code.
+
+    Any Covered Software that You distribute or otherwise make
+    available in Executable form must also be made available in Source
+    Code form and that Source Code form must be distributed only under
+    the terms of this License.  You must include a copy of this
+    License with every copy of the Source Code form of the Covered
+    Software You distribute or otherwise make available.  You must
+    inform recipients of any such Covered Software in Executable form
+    as to how they can obtain such Covered Software in Source Code
+    form in a reasonable manner on or through a medium customarily
+    used for software exchange.
+
+    3.2. Modifications.
+
+    The Modifications that You create or to which You contribute are
+    governed by the terms of this License.  You represent that You
+    believe Your Modifications are Your original creation(s) and/or
+    You have sufficient rights to grant the rights conveyed by this
+    License.
+
+    3.3. Required Notices.
+
+    You must include a notice in each of Your Modifications that
+    identifies You as the Contributor of the Modification.  You may
+    not remove or alter any copyright, patent or trademark notices
+    contained within the Covered Software, or any notices of licensing
+    or any descriptive text giving attribution to any Contributor or
+    the Initial Developer.
+
+    3.4. Application of Additional Terms.
+
+    You may not offer or impose any terms on any Covered Software in
+    Source Code form that alters or restricts the applicable version
+    of this License or the recipients' rights hereunder.  You may
+    choose to offer, and to charge a fee for, warranty, support,
+    indemnity or liability obligations to one or more recipients of
+    Covered Software.  However, you may do so only on Your own behalf,
+    and not on behalf of the Initial Developer or any Contributor.
+    You must make it absolutely clear that any such warranty, support,
+    indemnity or liability obligation is offered by You alone, and You
+    hereby agree to indemnify the Initial Developer and every
+    Contributor for any liability incurred by the Initial Developer or
+    such Contributor as a result of warranty, support, indemnity or
+    liability terms You offer.
+
+    3.5. Distribution of Executable Versions.
+
+    You may distribute the Executable form of the Covered Software
+    under the terms of this License or under the terms of a license of
+    Your choice, which may contain terms different from this License,
+    provided that You are in compliance with the terms of this License
+    and that the license for the Executable form does not attempt to
+    limit or alter the recipient's rights in the Source Code form from
+    the rights set forth in this License.  If You distribute the
+    Covered Software in Executable form under a different license, You
+    must make it absolutely clear that any terms which differ from
+    this License are offered by You alone, not by the Initial
+    Developer or Contributor.  You hereby agree to indemnify the
+    Initial Developer and every Contributor for any liability incurred
+    by the Initial Developer or such Contributor as a result of any
+    such terms You offer.
+
+    3.6. Larger Works.
+
+    You may create a Larger Work by combining Covered Software with
+    other code not governed by the terms of this License and
+    distribute the Larger Work as a single product.  In such a case,
+    You must make sure the requirements of this License are fulfilled
+    for the Covered Software.
+
+4. Versions of the License.
+
+    4.1. New Versions.
+
+    Sun Microsystems, Inc. is the initial license steward and may
+    publish revised and/or new versions of this License from time to
+    time.  Each version will be given a distinguishing version number.
+    Except as provided in Section 4.3, no one other than the license
+    steward has the right to modify this License.
+
+    4.2. Effect of New Versions.
+
+    You may always continue to use, distribute or otherwise make the
+    Covered Software available under the terms of the version of the
+    License under which You originally received the Covered Software.
+    If the Initial Developer includes a notice in the Original
+    Software prohibiting it from being distributed or otherwise made
+    available under any subsequent version of the License, You must
+    distribute and make the Covered Software available under the terms
+    of the version of the License under which You originally received
+    the Covered Software.  Otherwise, You may also choose to use,
+    distribute or otherwise make the Covered Software available under
+    the terms of any subsequent version of the License published by
+    the license steward.
+
+    4.3. Modified Versions.
+
+    When You are an Initial Developer and You want to create a new
+    license for Your Original Software, You may create and use a
+    modified version of this License if You: (a) rename the license
+    and remove any references to the name of the license steward
+    (except to note that the license differs from this License); and
+    (b) otherwise make it clear that the license contains terms which
+    differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+    COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
+    BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+    INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
+    SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
+    PURPOSE OR NON-INFRINGING.  THE ENTIRE RISK AS TO THE QUALITY AND
+    PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU.  SHOULD ANY
+    COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+    INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY
+    NECESSARY SERVICING, REPAIR OR CORRECTION.  THIS DISCLAIMER OF
+    WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.  NO USE OF
+    ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+    DISCLAIMER.
+
+6. TERMINATION.
+
+    6.1. This License and the rights granted hereunder will terminate
+    automatically if You fail to comply with terms herein and fail to
+    cure such breach within 30 days of becoming aware of the breach.
+    Provisions which, by their nature, must remain in effect beyond
+    the termination of this License shall survive.
+
+    6.2. If You assert a patent infringement claim (excluding
+    declaratory judgment actions) against Initial Developer or a
+    Contributor (the Initial Developer or Contributor against whom You
+    assert such claim is referred to as "Participant") alleging that
+    the Participant Software (meaning the Contributor Version where
+    the Participant is a Contributor or the Original Software where
+    the Participant is the Initial Developer) directly or indirectly
+    infringes any patent, then any and all rights granted directly or
+    indirectly to You by such Participant, the Initial Developer (if
+    the Initial Developer is not the Participant) and all Contributors
+    under Sections 2.1 and/or 2.2 of this License shall, upon 60 days
+    notice from Participant terminate prospectively and automatically
+    at the expiration of such 60 day notice period, unless if within
+    such 60 day period You withdraw Your claim with respect to the
+    Participant Software against such Participant either unilaterally
+    or pursuant to a written agreement with Participant.
+
+    6.3. In the event of termination under Sections 6.1 or 6.2 above,
+    all end user licenses that have been validly granted by You or any
+    distributor hereunder prior to termination (excluding licenses
+    granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+    UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+    (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+    INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+    COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+    LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+    CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+    LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
+    STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+    COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+    INFORMED OF THE POSSIBILITY OF SUCH DAMAGES.  THIS LIMITATION OF
+    LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+    INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+    APPLICABLE LAW PROHIBITS SUCH LIMITATION.  SOME JURISDICTIONS DO
+    NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
+    CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
+    APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+    The Covered Software is a "commercial item," as that term is
+    defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
+    computer software" (as that term is defined at 48
+    C.F.R. 252.227-7014(a)(1)) and "commercial computer software
+    documentation" as such terms are used in 48 C.F.R. 12.212
+    (Sept. 1995).  Consistent with 48 C.F.R. 12.212 and 48
+    C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all
+    U.S. Government End Users acquire Covered Software with only those
+    rights set forth herein.  This U.S. Government Rights clause is in
+    lieu of, and supersedes, any other FAR, DFAR, or other clause or
+    provision that addresses Government rights in computer software
+    under this License.
+
+9. MISCELLANEOUS.
+
+    This License represents the complete agreement concerning subject
+    matter hereof.  If any provision of this License is held to be
+    unenforceable, such provision shall be reformed only to the extent
+    necessary to make it enforceable.  This License shall be governed
+    by the law of the jurisdiction specified in a notice contained
+    within the Original Software (except to the extent applicable law,
+    if any, provides otherwise), excluding such jurisdiction's
+    conflict-of-law provisions.  Any litigation relating to this
+    License shall be subject to the jurisdiction of the courts located
+    in the jurisdiction and venue specified in a notice contained
+    within the Original Software, with the losing party responsible
+    for costs, including, without limitation, court costs and
+    reasonable attorneys' fees and expenses.  The application of the
+    United Nations Convention on Contracts for the International Sale
+    of Goods is expressly excluded.  Any law or regulation which
+    provides that the language of a contract shall be construed
+    against the drafter shall not apply to this License.  You agree
+    that You alone are responsible for compliance with the United
+    States export administration regulations (and the export control
+    laws and regulation of any other countries) when You use,
+    distribute or otherwise make available any Covered Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+    As between Initial Developer and the Contributors, each party is
+    responsible for claims and damages arising, directly or
+    indirectly, out of its utilization of rights under this License
+    and You agree to work with Initial Developer and Contributors to
+    distribute such responsibility on an equitable basis.  Nothing
+    herein is intended or shall be deemed to constitute any admission
+    of liability.
+
+--------------------------------------------------------------------
+
+NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND
+DISTRIBUTION LICENSE (CDDL)
+
+For Covered Software in this distribution, this License shall
+be governed by the laws of the State of California (excluding
+conflict-of-law provisions).
+
+Any litigation relating to this License shall be subject to the
+jurisdiction of the Federal Courts of the Northern District of
+California and the state courts of the State of California, with
+venue lying in Santa Clara County, California.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,39 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+SUBDIRS = src po data pixmaps help
+
+EXTRA_DIST = \
+	intltool-extract.in \
+	intltool-merge.in \
+	intltool-update.in \
+	xmldocs.make \
+	omf.make
+
+DISTCLEANFILES =	\
+	intltool-extract	\
+	intltool-merge		\
+	intltool-update	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/NEWS	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,9 @@
+fsexam-0.8.1: Mar-2008
+
+fsexam-0.4.2: May-2007
+
+fsexam-0.1:  20-April-2004
+	- first package for Cinnabar b08
+
+fsexam-0.1:  11-April-2004
+	- initial release.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/README	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,11 @@
+FSexam
+--------
+
+fxexam is one tool to help user migrate from legacy encoding to UTF8
+on your system. Given one directory, one tree view is displayed to
+list all files and subdirectories and the file name that isn't in 
+UTF8 encoding will be displayed as one sequence of question marks.
+
+The tool can use a list of encoding that is specified for the current
+language to do conversion, and rename the filename in legacy encoding
+with corresponding one in UTF8 on your system
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/TODO	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,51 @@
+* force convert for file content: bypass type check
+
+* preview in hex mode
+
+* Windows carriage return and line return (0x0a0d --> 0x0a)
+- don't ask me again
+	:used for cancel or for the first encoding.
+	:even click the last one, always apply the first encoding for later
+	 conversion.
+
+	 lack one way to communicate with internal code!!!!
+
+	 lack the communications between internal code and GUI!!
+	
+- error information for special type of file (compress/uncompress)
+  * Windows carriage return and line return (0x0a0d --> 0x0a)
+    MS-Windows \r\n
+    Unix       \n
+    Macintosh or mail boday \r
+    Default conversion can be changed by the preference dialog
+
+  * Enable user to remove and add encoding from encoding list
+
+- error information for special type of file (compress/uncompress)
+
+- Translation
+
+- progress bar
+
+- Speed 
+
+- shift+F12
+
+- Disable some UI such as peek when no possibility
+
+- integrate errno and fsexam_errno
+
+- pixbuf for icon (gsearch tool)
+
+- Refresh load the current directory or selected item
+
+- Code refactory
+
+- head file relationship
+
+- gnome/gtk options handling
+
+- verbose of the display msg
+
+- Peference setting:
+    only reset when we changed something
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/autogen.sh	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,164 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+set -e
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+PROJECT=fsexam
+TEST_TYPE=-f
+FILE=src/fsexam.c
+ACLOCAL=${ACLOCAL-aclocal}
+INTLTOOLIZE=${INTLTOOLIZE-intltoolize}
+LIBTOOLIZE=${LIBTOOLIZE-libtoolize}
+AUTOMAKE=${AUTOMAKE-automake}
+AUTOHEADER=${AUTOHEADER-autoheader}
+AUTOCONF=${AUTOCONF-autoconf}
+GNOMEDOCCOMMON=${GNOMEDOCCOMMON-gnome-doc-common}
+LIBTOOLIZE_FLAGS="--copy --force --automake"
+INTLTOOLIZE_FLAGS="--copy --force --automake"
+
+DIE=0
+
+have_intltool=false
+if $INTLTOOLIZE --version < /dev/null > /dev/null 2>&1 ; then
+    intltool_version=`$INTLTOOLIZE --version | sed 's/^[^0-9]*\([0-9].[0-9.]*\).*/\1/'`
+    if [ X${intltool_version} != "X" ]; then
+        have_intltool=true
+    fi
+fi
+
+if $have_intltool ; then : ; else
+    echo 
+    echo "You must have intltool installed to compile $PROJECT."
+    DIE=1
+fi
+
+have_libtool=false
+if $LIBTOOLIZE --version < /dev/null > /dev/null 2>&1 ; then
+	libtool_version=`$LIBTOOLIZE --version | sed 's/^[^0-9]*\([0-9].[0-9.]*\).*/\1/'`
+	case $libtool_version in
+	    1.4*|1.5*|1.6*|1.7*|2*)
+		have_libtool=true
+		;;
+	esac
+fi
+if $have_libtool ; then : ; else
+	echo
+	echo "You must have libtool 1.4 installed to compile $PROJECT."
+	echo "Install the appropriate package for your distribution,"
+	echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+	DIE=1
+fi
+
+($AUTOCONF --version) < /dev/null > /dev/null 2>&1 || {
+	echo
+	echo "You must have autoconf installed to compile $PROJECT."
+	echo "libtool the appropriate package for your distribution,"
+	echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+	DIE=1
+}
+
+have_automake=false
+need_libtoolize=true
+if $AUTOMAKE --version < /dev/null > /dev/null 2>&1 ; then
+	automake_version=`$AUTOMAKE --version | grep 'automake (GNU automake)' | sed 's/^[^0-9]*\(.*\)/\1/'`
+	case $automake_version in
+	   1.2*|1.3*|1.4) 
+		;;
+	   1.4*)
+	   	have_automake=true
+	        need_libtoolize=false
+		;;
+	   *)
+		have_automake=true
+		;;
+	esac
+fi
+if $have_automake ; then : ; else
+	echo
+	echo "You must have automake 1.4-p1 installed to compile $PROJECT."
+	echo "Get ftp://ftp.gnu.org/pub/gnu/automake/automake-1.4-p1.tar.gz"
+	echo "(or a newer version if it is available)"
+	DIE=1
+fi
+
+if test "$DIE" -eq 1; then
+	exit 1
+fi
+
+test $TEST_TYPE $FILE || {
+	echo "You must run this script in the top-level $PROJECT directory"
+	exit 1
+}
+
+if test -z "$AUTOGEN_SUBDIR_MODE"; then
+        if test -z "$*"; then
+                echo "I am going to run ./configure with no arguments - if you wish "
+                echo "to pass any to it, please specify them on the $0 command line."
+        fi
+fi
+
+echo Running $INTLTOOLIZE $INTLTOOLIZE_FLAGS
+$INTLTOOLIZE $INTLTOOLIZE_FLAGS
+
+case $need_libtoolize in
+   true)
+   	echo Running $LIBTOOLIZE $LIBTOOLIZE_FLAGS
+   	$LIBTOOLIZE $LIBTOOLIZE_FLAGS
+	;;
+esac
+
+echo Running $ACLOCAL $ACLOCAL_FLAGS
+$ACLOCAL $ACLOCAL_FLAGS
+
+# optionally run autoheader
+if $AUTOHEADER --version  < /dev/null > /dev/null 2>&1; then
+	echo Running $AUTOHEADER
+	$AUTOHEADER
+fi
+
+echo Running $GNOMEDOCCOMMON --copy
+$GNOMEDOCCOMMON --copy
+echo Running $AUTOMAKE -a -c -f $am_opt
+$AUTOMAKE -a -c -f $am_opt
+echo Running $AUTOCONF
+$AUTOCONF
+cd $ORIGDIR
+
+if test -z "$AUTOGEN_SUBDIR_MODE"; then
+	echo Running $srcdir/configure
+        $srcdir/configure --enable-maintainer-mode "$@"
+
+        echo 
+        echo "Now type 'make' to compile $PROJECT."
+fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/configure.in	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,147 @@
+-*- mode: autoconf -*-
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+AC_PREREQ(2.52)
+
+m4_define(fsexam_version, 0.8.1)
+m4_define(gnomevfs_minver, 2.0.0)
+m4_define(xft_minver, 2.0.0)
+m4_define(gtk_minver, 2.0.0)
+m4_define(libbonobo_minver, 2.0.0)
+m4_define(libgnomeui_minver, 2.1.90)
+
+AC_INIT([fsexam], [fsexam_version])
+AC_CONFIG_SRCDIR([src/fsexam.c])
+AM_CONFIG_HEADER(config.h)
+
+AM_INIT_AUTOMAKE(fsexam, fsexam_version)
+
+AC_PROG_CC
+AC_ISC_POSIX
+AC_HEADER_STDC
+
+AC_DISABLE_STATIC
+AC_PROG_LIBTOOL
+
+AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+
+ORBIT_IDL="`$PKG_CONFIG --variable=orbit_idl ORBit-2.0`"
+AC_SUBST(ORBIT_IDL)
+
+LIBBONOBO_IDL="`$PKG_CONFIG --variable=idldir libbonobo-2.0`"
+AC_SUBST(LIBBONOBO_IDL)
+
+BONOBO_ACTIVATION_IDL="`$PKG_CONFIG --variable=idldir bonobo-activation-2.0`"
+AC_SUBST(BONOBO_ACTIVATION_IDL)
+
+dnl get rid of the -export-dynamic stuff from the configure flags ...
+export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
+
+PKG_CHECK_MODULES(FSEXAM,
+        [gnome-desktop-2.0 >= 2.0 \
+        gnome-vfs-module-2.0 >= 2.0 \
+        eel-2.0 >= 2.2.3])
+
+PKG_CHECK_MODULES(DUMMY, 
+        [glib-2.0 >= 2.8], 
+        [],
+        [AC_DEFINE(HAVE_NO_GLIB_2_8, 
+                   [],
+                   [glib-2.0 version is higher than 2.8])])
+
+AC_SUBST(FSEXAM_CFLAGS)
+AC_SUBST(FSEXAM_LIBS)
+
+AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
+if test "x$GCONFTOOL" = xno; then
+  AC_MSG_ERROR([gconftool-2 executable not found.  Should be installed with GConf])
+fi
+AM_GCONF_SOURCE_2
+
+dnl Checks for i18n
+ALL_LINGUAS="cs de es fr hu it ja ko pl pt_BR ru sv zh_CN zh_HK zh_TW"
+GETTEXT_PACKAGE=fsexam
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",
+                   [domain used for gettext() calls])
+
+AM_GLIB_GNU_GETTEXT
+IT_PROG_INTLTOOL([0.35.0])
+if test "x${prefix}" = "xNONE"; then
+  AC_DEFINE_UNQUOTED(FSEXAM_LOCALEDIR, "${ac_default_prefix}/share/locale", [Locale directory])
+else
+  AC_DEFINE_UNQUOTED(FSEXAM_LOCALEDIR, "${prefix}/share/locale", [Locale directory])
+fi
+
+dnl Checks for auto_ef
+AC_CHECK_HEADERS([auto_ef.h], 
+        [AC_CHECK_LIB([auto_ef], auto_ef_file,
+            [AUTOEF_LIBS="-lauto_ef"],
+            AC_MSG_WARN([cannot find auto_ef library]))],
+        AC_MSG_WARN([cannot find auto_ef header]))
+
+AC_SUBST(AUTOEF_LIBS)
+
+dnl Checks for strlcpy and strlcat
+AC_CHECK_FUNCS([strlcpy])
+AC_CHECK_FUNCS([strlcat])
+
+dnl add debugging options ...
+changequote(,)dnl
+if test "x$GCC" = xyes; then
+  case " $CFLAGS " in
+  *[\	\ ]-Wall[\	\ ]*) ;;
+  *) CFLAGS="$CFLAGS -Wall" ;;
+  esac
+
+  case " $CFLAGS " in
+  *[\	\ ]-std=c9x[\	\ ]*) ;;
+  *) CFLAGS="$CFLAGS -std=c9x" ;;
+  esac
+fi
+changequote([,])dnl
+
+AC_OUTPUT([
+Makefile
+src/Makefile
+data/Makefile
+pixmaps/Makefile
+po/Makefile.in
+help/Makefile
+help/C/Makefile
+help/de/Makefile
+help/es/Makefile
+help/fr/Makefile
+help/it/Makefile
+help/ja/Makefile
+help/ko/Makefile
+help/pt_BR/Makefile
+help/sv/Makefile
+help/zh_CN/Makefile
+help/zh_HK/Makefile
+help/zh_TW/Makefile
+])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/data/GNOME_Fsexam.server.in	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,42 @@
+<oaf_info>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").  
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms. 
+
+-->
+  <oaf_server iid="OAFIID:GNOME_Fsexam_Factory" type="exe" location="fsexam">
+    <oaf_attribute name="repo_ids" type="stringv">
+      <item value="IDL:GNOME/GenericFactory:1.0"/>
+    </oaf_attribute>
+
+    <oaf_attribute name="name" type="string" value="Fsexam Factory"/>
+  </oaf_server>
+
+  <oaf_server iid="OAFIID:GNOME_Fsexam_Application" type="factory" location="OAFIID:GNOME_Fsexam_Factory">
+    <oaf_attribute name="repo_ids" type="stringv">
+      <item value="IDL:Bonobo/Unknown:1.0"/>
+      <item value="IDL:GNOME/Fsexam/Application:1.0"/>
+    </oaf_attribute>
+    <oaf_attribute name="name" type="string" value="Fsexam application"/>
+  </oaf_server>
+</oaf_info>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/data/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,66 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+desktopdir 	 = $(datadir)/applications
+desktop_in_files = fsexam.desktop.in
+desktop_DATA 	 = $(desktop_in_files:.desktop.in=.desktop)
+@INTLTOOL_DESKTOP_RULE@
+
+schemasdir	 = $(GCONF_SCHEMA_FILE_DIR)
+schemas_in_files = fsexam.schemas.in
+schemas_DATA 	 = $(schemas_in_files:.schemas.in=.schemas)
+@INTLTOOL_SCHEMAS_RULE@
+
+serverdir = $(libdir)/bonobo/servers
+server_in_files = GNOME_Fsexam.server.in
+server_DATA = $(server_in_files:.server.in=.server)
+@INTLTOOL_SERVER_RULE@
+
+#man_MANS = fsexam.1 fsexa.4
+
+if GCONF_SCHEMAS_INSTALL
+install-data-local:
+	        if test -z "$(DESTDIR)" ; then \
+	                for p in $(schemas_DATA) ; do \
+	                        GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(top_builddir)/data/$$p ; \
+	                done \
+	        fi
+else
+install-data-local:
+endif
+
+EXTRA_DIST = 				\
+	$(desktop_in_files)		\
+	$(schemas_in_files)		\
+	$(server_in_files)
+
+CLEANFILES =	 			\
+	$(desktop_DATA)			\
+	$(schemas_DATA)			\
+	$(server_DATA)
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/data/fsexam.desktop.in	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,35 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+[Desktop Entry]
+Encoding=UTF-8
+_Name=File Encoding Examiner
+_Comment=Help migrate from legacy encoding to Unicode(UTF8)
+Exec=fsexam %U
+Terminal=0
+Type=Application
+Icon=fsexam-icon.png
+Categories=GNOME;Application;System;
+StartupNotify=true
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/data/fsexam.schemas.in	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,163 @@
+<gconfschemafile>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").  
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms. 
+
+-->
+  <schemalist>
+    <schema>
+      <key>/schemas/apps/fsexam/auto_detect</key>
+      <applyto>/apps/fsexam/auto_detect</applyto>
+      <owner>fsexam</owner>
+      <type>bool</type>
+      <default>0</default>
+      <locale name="C">
+		<short>Encoding auto detection</short>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/fsexam/recur_mode</key>
+      <applyto>/apps/fsexam/recur_mode</applyto>
+      <owner>fsexam</owner>
+      <type>bool</type>
+      <default>0</default>
+      <locale name="C">
+		<short>recursive mode</short>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/fsexam/auto_mode</key>
+      <applyto>/apps/fsexam/auto_mode</applyto>
+      <owner>fsexam</owner>
+      <type>bool</type>
+      <default>0</default>
+      <locale name="C">
+		<short>automatic mode</short>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/fsexam/hidden</key>
+      <applyto>/apps/fsexam/hidden</applyto>
+      <owner>fsexam</owner>
+      <type>bool</type>
+      <default>0</default>
+      <locale name="C">
+		<short>Hidden file handling</short>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/fsexam/remote</key>
+      <applyto>/apps/fsexam/remote</applyto>
+      <owner>fsexam</owner>
+      <type>bool</type>
+      <default>0</default>
+      <locale name="C">
+		<short>NFS file handling</short>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/fsexam/follow</key>
+      <applyto>/apps/fsexam/follow</applyto>
+      <owner>fsexam</owner>
+      <type>bool</type>
+      <default>0</default>
+      <locale name="C">
+		<short>Follow symbolic link</short>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/fsexam/no_check_symlink_content</key>
+      <applyto>/apps/fsexam/no_check_symlink_content</applyto>
+      <owner>fsexam</owner>
+      <type>bool</type>
+      <default>0</default>
+      <locale name="C">
+		<short>Keep symbolic link and its reference consistent</short>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/fsexam/uselog</key>
+      <applyto>/apps/fsexam/uselog</applyto>
+      <owner>fsexam</owner>
+      <type>bool</type>
+      <default>0</default>
+      <locale name="C">
+		<short>Write log or not</short>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/fsexam/logfile</key>
+      <applyto>/apps/fsexam/logfile</applyto>
+      <owner>fsexam</owner>
+      <type>string</type>
+      <default></default>
+      <locale name="C">
+		<short>Log file name</short>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/fsexam/hist_len</key>
+      <applyto>/apps/fsexam/hist_len</applyto>
+      <owner>fsexam</owner>
+      <type>int</type>
+      <default>100</default>
+      <locale name="C">
+		<short>Hist length</short>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/fsexam/special</key>
+      <applyto>/apps/fsexam/special</applyto>
+      <owner>fsexam</owner>
+      <type>int</type>
+      <default>0</default>
+      <locale name="C">
+		<short>Special file type module</short>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/fsexam/encoding</key>
+      <applyto>/apps/fsexam/encoding</applyto>
+      <owner>fsexam</owner>
+      <type>list</type>
+      <list_type>string</list_type>
+      <default>[ISO8859-1]</default>
+      <locale name="C">
+      	<default>[ISO8859-1]</default>
+		<short>encoding list</short>
+      </locale>
+    </schema>
+
+  </schemalist>
+</gconfschemafile>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/C/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = C
+omffile = fsexam-C.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/C/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/C/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/C/fsexam-C.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>
+      Sun Java Desktop System Documentation Team
+    </creator>
+    <maintainer>
+      Sun Java Desktop System Documentation Team
+    </maintainer>
+    <title>
+      File Encoding Examiner
+    </title>    
+    <date>
+      2007-03-26
+    </date>
+    <version identifier="2.0" date="2007-03-26" description="Updated for Sun Java Desktop System Release 4"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>
+      User manual for the File Encoding Examiner desktop application. 
+    </description>
+    <type>
+      user's guide
+    </type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="C"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/C/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,29 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+## Process this file with automake to produce Makefile.in.
+
+SUBDIRS = C de es fr it ja ko pt_BR sv zh_CN zh_HK zh_TW
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/de/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = de
+omffile = fsexam-de.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/de/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/de/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/de/fsexam-de.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF8"?>  <!DOCTYPE omf PUBLIC "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" "http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd">
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>Sun Java Desktop System - Dokumentations-Team  </creator>
+    <maintainer>Sun Java Desktop System - Dokumentations-Team  </maintainer>
+    <title>Dateisystem-Prüfung  </title>    
+    <date>26.8.2004  </date>
+    <version identifier="2.0" date="2004-08-26" description="Updated for Sun Java Desktop System Release 3, program version 0.3"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>Benutzerhandbuch für die Desktop-Anwendung Dateisystem-Prüfung.  </description>
+    <type>Benutzerhandbuch </type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="de"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/de/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/es/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = es
+omffile = fsexam-es.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/es/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/es/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/es/fsexam-es.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF8"?>  <!DOCTYPE omf PUBLIC "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" "http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd">
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>Equipo de documentación de Sun Java Desktop System  </creator>
+    <maintainer>Equipo de documentación de Sun Java Desktop System  </maintainer>
+    <title>Examinador del sistema de archivos  </title>    
+    <date>26/08/2004  </date>
+    <version identifier="2.0" date="2004-08-26" description="Updated for Sun Java Desktop System Release 3, program version 0.3"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>Manual del usuario de la aplicación Examinador del sistema de archivos.  </description>
+    <type>guía del usuario </type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="es"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/es/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/fr/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = fr
+omffile = fsexam-fr.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/fr/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/fr/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/fr/fsexam-fr.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF8"?>  <!DOCTYPE omf PUBLIC "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" "http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd">
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>Équipe de documentation de Sun Java Desktop System  </creator>
+    <maintainer>Équipe de documentation de Sun Java Desktop System  </maintainer>
+    <title>Contrôleur de système de fichiers  </title>    
+    <date>28/06/2004  </date>
+    <version identifier="2.0" date="2004-08-26" description="Updated for Sun Java Desktop System Release 3, program version 0.3"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>Manuel de l'utilisateur de l'application de bureau Contrôleur de système de fichiers  </description>
+    <type>guide de l'utilisateur  </type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="fr"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/fr/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/it/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = it
+omffile = fsexam-it.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/it/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/it/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/it/fsexam-it.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF8"?>  <!DOCTYPE omf PUBLIC "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" "http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd">
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>Sun Java Desktop System Documentation Team  </creator>
+    <maintainer>Sun Java Desktop System Documentation Team  </maintainer>
+    <title>Analizzatore del file system  </title>    
+    <date>2004-08-26  </date>
+    <version identifier="2.0" date="2004-08-26" description="Updated for Sun Java Desktop System Release 3, program version 0.3"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>Manuale utente dell'applicazione del desktop Analizzatore del file system.  </description>
+    <type>user's guide </type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="it"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/it/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/ja/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = ja
+omffile = fsexam-ja.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/ja/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/ja/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/ja/fsexam-ja.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF8"?><!DOCTYPE omf PUBLIC "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" "http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd">
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>Sun Java Desktop System マニュアル制作チーム</creator>
+    <maintainer>Sun Java Desktop System マニュアル制作チーム</maintainer>
+    <title>ファイルシステム検査器</title>    
+    <date>2004 年 8 月 26 日</date>
+    <version identifier="2.0" date="2004-08-26" description="Updated for Sun Java Desktop System Release 3, program version 0.3"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>ファイルシステム検査器デスクトップアプリケーション用ユーザーマニュアル</description>
+    <type>ユーザーズガイド</type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="ja"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/ja/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/ko/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = ko
+omffile = fsexam-ko.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/ko/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/ko/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/ko/fsexam-ko.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF8"?>
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>Sun Java Desktop System 문서 팀</creator>
+    <maintainer>Sun Java Desktop System 문서 팀</maintainer>
+    <title>파일 시스템 검사기 </title>    
+    <date>2004년 8월 26일 </date>
+    <version identifier="2.0" date="2004-08-26" description="Updated for Sun Java Desktop System Release 3, program version 0.3"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>파일 시스템 검사기 데스크탑 응용프로그램의 사용자 설명서입니다. </description>
+    <type>사용자 설명서</type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="ko"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/ko/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/pt_BR/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = pt_BR
+omffile = fsexam-pt_BR.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/pt_BR/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/pt_BR/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/pt_BR/fsexam-pt_BR.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF8"?>  <!DOCTYPE omf PUBLIC "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" "http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd">
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>Equipe de documentação do Sun Java Desktop System  </creator>
+    <maintainer>Equipe de documentação do Sun Java Desktop System  </maintainer>
+    <title>Examinador do sistema de arquivos  </title>    
+    <date>26-08-2004  </date>
+    <version identifier="2.0" date="2004-08-26" description="Updated for Sun Java Desktop System Release 3, program version 0.3"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>Manual do usuário para o aplicativo de desktop Examinador do sistema de arquivos.  </description>
+    <type>guia do usuário </type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="pt_BR"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/pt_BR/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/sv/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = sv
+omffile = fsexam-sv.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/sv/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/sv/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/sv/fsexam-sv.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF8"?>  
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>Suns Java Desktop System-dokumentationsteam  </creator>
+    <maintainer>Suns Java Desktop System-dokumentationsteam  </maintainer>
+    <title>Undersökning av filsystem</title>    
+    <date>2004-08-26  </date>
+    <version identifier="2.0" date="2004-08-26" description="Updated for Sun Java Desktop System Release 3, program version 0.3"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>Användarhandbok för panelprogrammet Undersökning av filsystem.  </description>
+    <type>användarhandbok </type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="sv"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/sv/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/zh_CN/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = zh_CN
+omffile = fsexam-zh_CN.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/zh_CN/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/zh_CN/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/zh_CN/fsexam-zh_CN.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF8"?><!DOCTYPE omf PUBLIC "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" "http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd">
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>Sun Java Desktop System 文档小组</creator>
+    <maintainer>Sun Java Desktop System 文档小组</maintainer>
+    <title>文件系统检查器</title>    
+    <date>2004-08-26</date>
+    <version identifier="2.0" date="2004-08-26" description="Updated for Sun Java Desktop System Release 3, program version 0.3"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>文件系统检查器桌面应用程序用户手册。</description>
+    <type>用户指南</type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="zh_CN"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/zh_CN/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/zh_HK/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = zh_HK
+omffile = fsexam-zh_HK.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/zh_HK/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/zh_HK/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/zh_HK/fsexam-zh_HK.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF8"?>
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>Sun Java Desktop System 文件小組</creator>
+    <maintainer>Sun Java Desktop System 文件小組</maintainer>
+    <title>檔案系統檢查程式</title>    
+    <date>2004 年 8 月 26 日</date>
+    <version identifier="2.0" date="2004-08-26" description="Updated for Sun Java Desktop System Release 3, program version 0.3"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>檔案系統檢查程式桌面應用程式使用者手冊。</description>
+    <type>使用者手冊</type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="zh_TW"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/zh_HK/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/zh_TW/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+figdir = figures
+docname = fsexam
+lang = zh_TW
+omffile = fsexam-zh_TW.omf
+include $(top_srcdir)/xmldocs.make
+dist-hook: app-dist-hook
Binary file src/cmd/fsexam/help/zh_TW/figures/fsexam-pref.png has changed
Binary file src/cmd/fsexam/help/zh_TW/figures/fsexam.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/zh_TW/fsexam-zh_TW.omf	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF8"?>
+<omf>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+  <resource>
+    <creator>Sun Java Desktop System 文件小組</creator>
+    <maintainer>Sun Java Desktop System 文件小組</maintainer>
+    <title>檔案系統檢查程式</title>    
+    <date>2004 年 8 月 26 日</date>
+    <version identifier="2.0" date="2004-08-26" description="Updated for Sun Java Desktop System Release 3, program version 0.3"/>
+    <subject category="GNOME|Applications|System Tools"/>
+    <description>檔案系統檢查程式桌面應用程式使用者手冊。</description>
+    <type>使用者手冊</type>
+    <format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
+    <identifier url="fsexam.xml"/>
+    <language code="zh_TW"/>
+    <relation seriesid="844e0a76-d656-11d8-88f6-c813db71eddc"/>
+  </resource>        
+</omf>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/help/zh_TW/fsexam.xml	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,530 @@
+<?xml version="1.0"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
+"http://basil.ireland.sun.com:8080/docbook/docbookx.dtd" [
+  <!ENTITY author1 "Sun">
+  <!ENTITY author2 "Java Desktop System Documentation Team">
+  <!ENTITY publisher "Sun Microsystems, Inc.">
+  <!ENTITY appversion "0.8.0">
+  <!ENTITY manrevision "2.0">
+  <!ENTITY date "August 2007">
+  <!ENTITY app "<application>File Encoding Examiner</application>">
+  <!ENTITY appname "File Encoding Examiner">
+]>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms.
+-->
+
+<!-- =============Document Header ============================= -->
+<article id="index" lang="en">
+<!-- please do not change the id; for translations, change lang to -->
+<!-- appropriate code -->
+  <articleinfo> 
+	 <title>&appname;</title>
+	 <subtitle>&appname; Desktop Application Manual V&manrevision;</subtitle>
+	 <copyright> 
+		<year>2007</year>
+		<holder>&publisher;</holder> </copyright>
+
+	 <publisher> 
+		<publishername>&publisher;</publishername>
+	 </publisher>
+	 &legal; 
+	 <authorgroup> 
+		<author> 
+		  <firstname>&author1;</firstname>
+		  <surname>&author2;</surname> 
+		  <affiliation> 
+			 <orgname>&publisher;</orgname>
+		  </affiliation>
+		</author>
+
+<!-- This is appropriate place for other contributors: translators,
+      maintainers,  etc. Commented out by default.
+       <othercredit role="translator">
+        <firstname>Latin</firstname>
+        <surname>Translator 1</surname>
+        <affiliation>
+          <orgname>Latin Translation Team</orgname>
+          <address> <email>[email protected]</email> </address>
+        </affiliation>
+        <contrib>Latin translation</contrib>
+      </othercredit>
+-->
+
+	 </authorgroup>
+
+
+
+<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
+	 <revhistory>
+<!-- Remember to remove the &manrevision; entity from the revision entries other
+   than the current revision. -->
+   		<revision> 
+		  <revnumber>&appname; Desktop Application Manual V&manrevision;</revnumber>
+		  <date>&date;</date> 
+		  <revdescription> 
+			 <para role="author">&author1; &author2;</para>
+			 <para role="publisher">&publisher;</para>
+		  </revdescription>
+		</revision>
+	 </revhistory>
+	 <releaseinfo> This manual describes version &appversion; of &appname;.
+		</releaseinfo>
+	 <legalnotice> 
+		<title>Feedback</title>
+		<para>
+                  To send feedback, follow the directions in the <ulink url="ghelp:gnome-feedback" type="help">Feedback Page</ulink>.
+                </para>
+<!-- Translators may also add here feedback address for translations -->
+	 </legalnotice>
+  </articleinfo>
+  <indexterm><primary>fsexam command</primary></indexterm>
+  <indexterm><primary>&appname; desktop application</primary></indexterm>
+  
+
+<!-- ============= Document Body ============================= -->
+<!-- ============= Introduction ============================== -->
+  <sect1 id="fsexam-intro"> 
+    <title>Introduction</title>
+       <para>
+         &app; enables you to convert the name of a file, or the contents of a plain-text file, from a legacy character encoding to UTF-8 encoding. 
+       </para>
+       <para>
+         When converting file name, &app; processes regular file, folder file and symbolic link. When converting file content, it handles regular plain text file only. &app; support special file type also, curently &app; only support .tar, .tar.gz, .tar.bz2, .zip and .tar.Z compress or archive format.
+	    </para>
+        <para>
+         &app; will ignore most of non-plain text file such as binary file, office document and image file. It might produce unexpected result if convert these type of files forcibly. Internally &app; uses file(1) utility to determine whether one file is plain text file or not.
+        </para>
+
+       <note>
+        <para>
+         The default internal character encoding in the Sun Java Desktop System is UTF-8 encoding, and the default locale is the UTF-8 locale. If not converted, files with legacy character encoding are displayed as meaningless text. For more information about UTF-8, please visit http://www.unicode.org.
+	    </para>
+       </note>
+  </sect1>
+
+<!-- ============= Getting Started =========================== -->
+  <sect1 id="fsexam-getting-started"> 
+	 <title>Getting Started</title>
+
+<!-- ============= To Start fsexam ============================ -->
+	 <sect2 id="fsexam-to-start"> 
+		<title>To Start &appname;</title>
+                <para>You can start &app; in the following ways:</para>
+                <variablelist>
+                <varlistentry>
+                <term>Menu</term>
+                <listitem>
+                <para>Click <guibutton>Launch</guibutton>, then choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Utilities</guisubmenu><guimenuitem>File Encoding Examiner</guimenuitem></menuchoice>. </para>
+                </listitem>
+                </varlistentry>
+                <varlistentry>
+                <term>Command line</term>
+                <listitem>
+                <para>Execute the following command: <userinput>fsexam</userinput></para>
+                </listitem>
+                </varlistentry>
+                </variablelist>
+	</sect2>
+
+        <sect2 id="fsexam-when-you-start">
+
+                <title>When You Start &appname;</title>
+                <para>When you start &app;, the following window is displayed:</para>
+
+                <figure id="fsexam-window">
+                  <title>&appname; Window</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam main window.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+                <para>The &app; window contains the following elements: </para>
+                <variablelist>
+                  <varlistentry> <term>Menubar</term>
+                         <listitem>
+                                <para>The menus on the menubar contain all of the commands that you need to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Toolbar</term>
+                         <listitem>
+                                <para>The toolbar buttons on the toolbar contain commands that you frequently use to work with files in &app;.</para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>File tree</term>
+                         <listitem>
+                                <para> The files tree display the contents of the current directory. </para>
+                         </listitem>
+                  </varlistentry>
+                  
+                  <varlistentry> <term>Report area</term>
+                         <listitem>
+                                <para> The report area displays the conversion result or dry run result. </para>
+                         </listitem>
+                  </varlistentry>
+
+                  <varlistentry> <term>Statusbar</term>
+                         <listitem>
+                                <para>The statusbar displays information about current &app; activity. </para>
+                         </listitem>
+                  </varlistentry>
+                </variablelist>
+                <para>When you right-click in the &app; window, the application displays a popup menu. The popup menu contains the most common commands. </para>
+
+      <para>
+      This manual documents functionality from the menubar.
+      </para>
+         </sect2>
+  </sect1>
+
+<!-- ================ Usage ================================ -->
+  <sect1 id="fsexam-usage"> 
+	 <title>Usage</title>
+
+<!-- ============= To Open a File ======================== -->
+	 <sect2 id="fsexam-select"> 
+		<title>To Select a File or Directory</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open...</guimenuitem></menuchoice>, then select the file or directory whose character encoding you want to change.
+		 </para>
+		<para>
+			If you select a directory, all of the files and subdirectories in that directory are displayed in the file tree.
+		</para>
+	 </sect2>
+
+<!-- ============= To Search for Files ======================== -->
+	 <sect2 id="fsexam-search"> 
+		<title>To Search Files</title>
+		<para>
+			Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Search for files...</guimenuitem></menuchoice>, then input the search criterias to search according to them. To stop searching, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Stop Searching</guimenuitem></menuchoice>.
+		</para>
+        <para>
+            Internally &app; use find(1) utility to search files.
+        </para>
+	 </sect2>
+
+<!-- ============= To Convert ================================ -->
+	 <sect2 id="fsexam-convert"> 
+		<title>To Convert the Name or Content of Files</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Convert</guimenuitem></menuchoice>.
+                    </para>
+                    <para>If the current conversion mode is name conversion, the <guilabel>&appname; name conversion</guilabel> dialog is displayed. If the current conversion mode is content conversion mode, the <guilabel>&appname; content conversion</guilabel> dialog is displayed. For information on how to display or hide the <guilabel>File Encoding Examiner name conversion</guilabel> or <guilabel>File Encoding Examiner content conversion</guilabel> dialog, see <xref linkend="fsexam-prefs"/>. 
+                    </para>
+                    <para>The <guilabel>&appname; name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog displays a list of character encodings that &app; can use to convert the file name or content. 
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Select an encoding, then click <guibutton>OK</guibutton>. 
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			After &app; finish conversion, the report pane displays conversion information or any other error information, the statusbar displays display one summary report.
+		</para>
+        <note>
+            Please make sure the files' name are UTF-8 already before converting file content. If not, use name conversion mode to convert file name first.
+        </note>
+	 </sect2>
+
+<!-- ============== To Forcibly Convert ====================== -->
+	 <sect2 id="fsexam-forcibly-convert"> 
+		<title>To Forcibly Convert</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Forcibly Convert</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; convert selected files without detecting whether the file is UTF-8 already or not.
+		</para>
+	 </sect2>
+
+<!-- ============== To Dry run====================== -->
+	 <sect2 id="fsexam-dry-run"> 
+		<title>To Dry Run</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Dry Run</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; dry run convert selected files and don't modify any file name or content on the disk. The dry run result displays in <guilabel>Dryrun Result</guilabel> tab. Later you can perform scenario based conversion based on the dry run result. For more information about scenario based conversion, refer to <xref linend="fsexam-scenario-convert"/>.
+		</para>
+	 </sect2>
+
+<!-- ============== To Scenario Conversion====================== -->
+	 <sect2 id="fsexam-scenario-convert"> 
+		<title>To Scenario Based Conversion</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Perform dry run conversion as described in <xref linkend="fsexam-dry-run"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Scenario</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+		    Scenario based conversion use the first candidate in dry run result to convert file. If the first candidate is not what you want, you can delete the it and make the right candidate appear firstly. The dry run result is format sensitive, for more information about dry run format, please refer fsexam(4) man page.	
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Undo a Conversion  ====================== -->
+	 <sect2 id="fsexam-undo-conversion"> 
+		<title>To Undo the Last Action</title>
+		<para>
+			Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Undo</guimenuitem></menuchoice>.
+		</para>
+	 </sect2>
+
+
+<!-- ============== To Restore the Original File  ====================== -->
+	 <sect2 id="fsexam-restore-file"> 
+		<title>To Restore the Original File name or content</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>
+                        Select the file or directory as described in <xref linkend="fsexam-select"/>, or search files as described in <xref linkend="fsexam-search"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Restore</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			&app; restores the original file name in name conversion mode and restores file content in content conversion mode.
+		</para>
+        <note>
+        <para>
+            If you convert file content first, then convert file name, you may can't restore file content before you restore file name, as the name of file is changed.
+        </para>
+        </note>
+	 </sect2>
+
+<!-- ============== To Clear Search Results ====================== -->
+	 <sect2 id="fsexam-clear-search-result"> 
+		<title>To Clear Search Result</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Clear Search Result</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+    </sect2>
+
+<!-- ============== To Change Conversion Mode ====================== -->
+	 <sect2 id="fsexam-mode"> 
+		<title>To Change Conversion Mode</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                 <listitem>
+                    <para>
+                        To change the current conversion mode to name conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Name Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>
+                        To change the current conversion mode to content conversion, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Content Conversion Mode</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+
+                </orderedlist>
+    </sect2>
+
+
+<!-- ============= To Display Report Pane =================== -->
+	 <sect2 id="fsexam-report-pane"> 
+		<title>To Display the Report Pane</title>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Report Pane</guimenuitem></menuchoice>.
+                    </para>
+		<para>
+			The report pane displays the directory name, and a list of converted files with corresponding conversion information.
+		</para>
+     </sect2>
+
+<!-- ============= To Display Dry Run Result =================== -->
+	 <sect2 id="fsexam-dryrun-result"> 
+		<title>To Display the Dry Run Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Dry Run Result Pane</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+
+<!-- ============= To Display Search Result =================== -->
+	 <sect2 id="fsexam-search-result"> 
+		<title>To Display the Search Result</title>
+        <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Search Result</guimenuitem></menuchoice>.
+        </para>
+     </sect2>
+    
+<!-- ============= To Peek content  ================================ -->
+	 <sect2 id="fsexam-preview-contents"> 
+		<title>To Preview the Contents of a File</title>
+		<para>Perform the following steps:</para>
+                <orderedlist>
+                  <listitem>
+                    <para>Select one single file, as described in <xref linkend="fsexam-select"/>.
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para>Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Preview Content</guimenuitem></menuchoice>.
+                    </para>
+                  </listitem>
+                </orderedlist>
+		<para>
+			If &app; successfully previews the file contents, a popup window displays the first part of the file. Click on the popup window to close the window.
+		</para>
+		<para>
+			If the preview fails, the statusbar displays an error message.
+		</para>
+	 </sect2>
+
+  </sect1>
+
+
+<!-- ============= Preferences ============================= -->
+  <sect1 id="fsexam-prefs"> 
+	<title>Preferences</title>
+                
+	<para>To configure &app;, choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. The following <guilabel>&appname; Preferences</guilabel> dialog is displayed.
+	</para>
+                <figure id="fsexam--pref-dialog">
+                  <title>&appname; Preferences Dialog</title>
+                  <screenshot>
+                         <mediaobject>
+                                <imageobject>
+                                  <imagedata fileref="figures/fsexam-pref.png" format="PNG"/>
+                                         </imageobject>
+                                <textobject> <phrase>Shows fsexam preference dialog.</phrase>
+                                </textobject>
+                        </mediaobject>
+                  </screenshot>
+                </figure>
+
+        <para>The &app; preference dialog contains the following elements: </para>
+
+        <variablelist>
+          <varlistentry> 
+            <term><guilabel>Conversion Setting</guilabel> </term>
+            <listitem>
+                  <para>
+                        <guilabel>Auto Detection</guilabel>: Select this option to enable encoding automatic detection. &app; appends automatic detected encoding into the encoding list. Its priority is lower than the encodings in encoding list.
+                  </para>
+                  <note><para>Sometime &app; may produce wrong encoding, please use it with caution when the <guilabel>Auto Conversion</guilabel> is checked also.</para></note>
+            </listitem>
+            
+            <listitem>
+                  <para>
+                        <guilabel>Auto Conversion</guilabel>: Select this option to specify that &app; uses the first suitable legacy character encoding in the <guilabel>Encoding list</guilabel> to convert the name or content of files and subdirectories to UTF-8 encoding. If you do not select this option, &app; displays the <guilabel>File System Examiner name conversion</guilabel> dialog or <guilabel>&appname; content conversion</guilabel> dialog, as described in <xref linkend="fsexam-convert"/>.
+                  </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Recursive Mode</guilabel>: Select this option to convert the name or content of all files and subdirectories in the selected directory. </para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Hidden Files</guilabel>: Select this option to handle hidden files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Handle Remote Files</guilabel>: Select this option to handle non-local files, such as NFS files.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Follow Symbolic link</guilabel>: Select this option to follow symbolic link. If the target of symbolic link is directory and <guilabel>Recursive Mode</guilabel> is selected, files and subdirectories under this directory will be converted also.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Don't Check Symlink Content</guilabel>: By default, &app; re-create symbolic link after the target file name of the symbolic link is converted. Use this option if you know there is no symbolic link in the files which you want to convert.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Special File Handling</guilabel>: Select this option to enable special file type support. Currently &app; support compress or archive file only. </para>
+            </listitem>
+            
+            <listitem>
+                  <para><guilabel>Archive or Compress files</guilabel>: Select this option to files in the archive or compress file. Currently &app; support .tar, .tar.gz, .tar.bz2, .tar.Z and .zip file.</para>
+                  <note>As shown in the NOTES section of the tar(1) man page, if an archive is created that contains files whose names were created by processes running in multiple or different locales, a locale that uses a full 8-bit coding space, i.e., 0x0 to 0xff, such as en_US.ISO8859-1 should be used both to create the archive and to extract files from the archive. Due to that, when you specify COMPRESS module with -E option, fsexam(1) tries to use en_US.ISO8859-1, fr_FR.ISO8859-1, de_DE.ISO8859-1, es_ES.ISO8859-1,it_IT.ISO8859-1, or sv_SE.ISO8859-1 locales. If there is no such locale in the current system, use of this option is ignored and a warning message is issued.</note>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Use Log File</guilabel>: Select this option to specify &app; to write log information to specified log file. By default, &app; don't use log file, as it will display these information in Report Pane. Refer to <xref linkend="fsexam-report-pane"/> to display the report pane.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>Log File Name</guilabel>: Specify the name of log file.</para>
+            </listitem>
+
+            <listitem>
+                  <para><guilabel>History Length</guilabel>: Specify the length of history file. The minimal length is 30.</para>
+                  <note><para>Batch convert multiple files count as one in the history file.</para></note>
+            </listitem>
+          </varlistentry> 
+
+          <varlistentry> 
+            <term><guilabel>Encoding list</guilabel> </term>
+            <listitem>
+                  <para>Displays a list of legacy character encodings available for the current language. When installing &appname;, one predefined encoding list for each language which contains the most popular encodings used for this language will be installed also. </para>
+                  
+                  <para>Click <guibutton>Up</guibutton> to move an encoding up the list. Click <guibutton>Down</guibutton> to move an encoding down the list. Click <guibutton>Delete</guibutton> to delete an encoding from the list. Click <guibutton>Add</guibutton> to add encoding into the list. Click <guibutton>Save</guibutton> to save the current encoding list permanently. By default the changes in encoding list influence the current session only. &app; will restore to the last state after rerun it.</para>
+            </listitem>
+          </varlistentry> 
+        </variablelist>
+  </sect1>
+</article>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/pixmaps/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,30 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+appicondir = $(datadir)/pixmaps
+appicon_DATA = fsexam-icon.png
+
+EXTRA_DIST = \
+	$(appicon_DATA)
Binary file src/cmd/fsexam/pixmaps/fsexam-icon.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/ChangeLog	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,58 @@
+2004-10-25  Yong Sun <[email protected]>
+
+	* POTFILES.in: Add desktop.in file in POTFILES.in
+
+2004-10-11  Yong Sun <[email protected]>
+
+	* cs.po:
+	* de.po:
+	* es.po:
+	* fr.po:
+	* fsexam.pot:
+	* hu.po:
+	* it.po:
+	* ja.po:
+	* ko.po:
+	* pl.po:
+	* pt_BR.po:
+	* ru.po:
+	* sv.po:
+	* zh_CN.po:
+	* zh_HK.po:
+	* zh_TW.po:
+	update messages from cycle 8.
+
+2004-08-23  Yong Sun <[email protected]>
+
+	* Makefile.in.in: change localedir to use %{datadir}
+
+2004-05-25  Gavin Tu <[email protected]>
+
+	* ChangeLog:
+	* Makefile:
+	* Makefile.in:
+	* POTFILES:
+
+2004-05-25  Gavin Tu <[email protected]>
+
+	* ChangeLog:
+	* Makefile:
+	* Makefile.in:
+	* POTFILES:
+
+2004-05-25  Gavin Tu <[email protected]>
+
+	* ChangeLog:
+	* Makefile:
+	* Makefile.in:
+	* POTFILES:
+
+2004-05-25  Gavin Tu <[email protected]>
+
+	* Makefile:
+	* Makefile.in:
+	* POTFILES:
+
+2004-04-20  Federic Zhang <[email protected]>
+
+	* version 0.1 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/POTFILES.in	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,29 @@
+src/fsexam.glade2
+src/fsexam-application-server.c
+src/auto-detect.c
+src/callbacks.c
+src/encoding.c
+src/file-filter.c
+src/file-validate.c
+src/fsexam-convcontent.c
+src/fsexam-convname.c
+src/fsexam-debug.c
+src/fsexam-dialog.c
+src/fsexam-dnd.c
+src/fsexam-dryrun.c
+src/fsexam-encoding-dialog.c
+src/fsexam-error.c
+src/fsexam-helper.c
+src/fsexam-history.c
+src/fsexam-log.c
+src/fsexam-plaintext.c
+src/fsexam-pref.c
+src/fsexam-preference-dialog.c
+src/fsexam-setting.c
+src/fsexam-specialfile.c
+src/fsexam-tree.c
+src/fsexam-ui.c
+src/fsexam.c
+data/fsexam.schemas.in
+data/fsexam.desktop.in
+data/GNOME_Fsexam.server.in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/cs.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,1417 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2004-11-07 19:17+0100\n"
+"Last-Translator: \n"
+"Language-Team: Sun G11n <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:3
+#, fuzzy
+msgid "<b>Encoding List:</b>"
+msgstr "Seznam kódování"
+
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:8
+#, fuzzy
+msgid "<b>_Report Pane</b>"
+msgstr "Hláškové okno"
+
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:14
+#, fuzzy
+msgid "Content Conversion _Mode"
+msgstr "Obsah souboru - chyba konverze"
+
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:27
+#, fuzzy
+msgid "File Content _Mode"
+msgstr "Obsah souboru"
+
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+#, fuzzy
+msgid "File Encoding Examiner"
+msgstr "File System Examiner"
+
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:31
+#, fuzzy
+msgid "File content conversion mode"
+msgstr "Obsah souboru - chyba konverze"
+
+#: ../src/fsexam.glade2.h:32
+#, fuzzy
+msgid "File name conversion mode"
+msgstr "Jméno souboru - chyba konverze"
+
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr ""
+
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:74
+#, fuzzy
+msgid "_Auto Conversion"
+msgstr "Automatický převod"
+
+#: ../src/fsexam.glade2.h:75
+#, fuzzy
+msgid "_Auto Detection"
+msgstr "_Akce"
+
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "_Soubor"
+
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "Nápověda"
+
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:85
+#, fuzzy
+msgid "_Preview Content"
+msgstr "Náhled na obsah"
+
+#: ../src/fsexam.glade2.h:86
+#, fuzzy
+msgid "_Recursive Mode"
+msgstr "Rekurzivní režim"
+
+#: ../src/fsexam.glade2.h:87
+#, fuzzy
+msgid "_Report Pane"
+msgstr "Hláškové okno"
+
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "Náhled"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr ""
+
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+
+#: ../src/callbacks.c:124
+#, fuzzy
+msgid "No Selection"
+msgstr "Výběr adresáře"
+
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr ""
+
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr ""
+
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr ""
+
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr ""
+
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr ""
+
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr ""
+
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr ""
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr ""
+
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr ""
+
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr ""
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr ""
+
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr ""
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr ""
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr ""
+
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr ""
+
+#: ../src/fsexam-convname.c:973
+#, fuzzy, c-format
+msgid "Candidate list:\n"
+msgstr "Výběr kandidáta"
+
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr ""
+
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr ""
+
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr ""
+
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr ""
+
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr ""
+
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr ""
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:206
+#, fuzzy
+msgid "The supported encoding list:\n"
+msgstr "seznam kódování"
+
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+#, fuzzy
+msgid "_Description"
+msgstr "_Akce"
+
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+#, fuzzy
+msgid "_Encoding"
+msgstr "Seznam kódování"
+
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr ""
+
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+#, fuzzy
+msgid "File name is UTF-8 already"
+msgstr "Jméno souboru - již UTF8"
+
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+#, fuzzy
+msgid "File content is UTF-8 already"
+msgstr "Obsah souboru - již UTF8"
+
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr ""
+
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+#, fuzzy
+msgid "File doesn't exist"
+msgstr "Soubor ještě neexistuje"
+
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr ""
+
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr ""
+
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr ""
+
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr ""
+
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr ""
+
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr ""
+
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr ""
+
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+#, fuzzy
+msgid "Symlink target don't exist"
+msgstr "Adresář ještě neexistuje"
+
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr ""
+
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr ""
+
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+#, fuzzy
+msgid "No proper permission"
+msgstr "Chybí oprávnění pro čtení"
+
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr ""
+
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr ""
+
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr ""
+
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr ""
+
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr ""
+
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr ""
+
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr ""
+
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr ""
+
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr ""
+
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr ""
+
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr ""
+
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr ""
+
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr ""
+
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr ""
+
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr ""
+
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr ""
+
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr ""
+
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr ""
+
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr ""
+
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr ""
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr ""
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr ""
+
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, fuzzy, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "Chyba při zobrazování nápovědy: %s"
+
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "Chybí oprávnění pro čtení"
+
+#: ../src/fsexam-ui.c:785
+#, fuzzy
+msgid "No folder specified"
+msgstr "Adresář nespecifikován"
+
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr ""
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+#, fuzzy
+msgid "Symlink target doesn't exist"
+msgstr "Adresář ještě neexistuje"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+
+#: ../src/fsexam-ui.c:1316
+#, fuzzy
+msgid "Folder Selection"
+msgstr "Výběr kandidáta"
+
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr ""
+"fsexam pomáhá s migrací jména souboru a jeho obsahu ze starého kódování na "
+"UTF8"
+
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr ""
+
+#: ../src/fsexam-ui.c:2577
+#, fuzzy
+msgid "No selection"
+msgstr "Výběr adresáře"
+
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2696
+#, fuzzy
+msgid "Not plain text"
+msgstr "Textová data nebyla nalezena"
+
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr ""
+
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr ""
+
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr ""
+
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr ""
+
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr ""
+
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr ""
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr ""
+
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr ""
+
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr ""
+
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr ""
+
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr ""
+
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr ""
+
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr ""
+
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr ""
+
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr ""
+
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr ""
+
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:1
+#, fuzzy
+msgid "Encoding auto detection"
+msgstr "Výběr kandidáta"
+
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[ISO8859-1]"
+
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "automatický režim"
+
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "seznam kódování"
+
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "rekurzivní režim"
+
+#: ../data/fsexam.desktop.in.h:2
+#, fuzzy
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "Pomocník při převodu ze starého kódování na UTF8"
+
+#, fuzzy
+#~ msgid "Display help content"
+#~ msgstr "Obsah souboru"
+
+#, fuzzy
+#~ msgid "Preference setting"
+#~ msgstr "Nastavení"
+
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr ""
+#~ "Seznam přípon. Libovolný soubor s příponou ze seznamu bude fsexam "
+#~ "považovat jako soubor s obyčejným textem."
+
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "Aplikovatelné pouze pro konverzi jmen souborů! Rakurzivní režim, v němž "
+#~ "fsexam konvertuje jména souborů a adresářů rekurzivně."
+
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "Aplikovatelné pouze pro konverzi jmen souborů. Automatický režim, v němž "
+#~ "fsexam automaticky konvertuje s nejlepším výsledkem bez zásahu uživatele. "
+#~ "V opačném případě se při každém výskytu více vhodných kandidátů objeví "
+#~ "dialog a uživatel musí sám rozhodnout, který je nejlepší."
+
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "Seznam jmen původních kódování dostupných pro vybraný jazyk. Pořadí v "
+#~ "seznamu je významné. fsexam použije první vhodné."
+
+#~ msgid "suffix list"
+#~ msgstr "seznam přípon"
+
+#~ msgid "Directory already exists"
+#~ msgstr "Adresář již existuje"
+
+#~ msgid "File already exists"
+#~ msgstr "Soubor již existuje"
+
+#~ msgid "No permission to rename"
+#~ msgstr "Chybí oprávnění pro přejmenování"
+
+#~ msgid "File Hierarchy"
+#~ msgstr "Souborová hierarchie"
+
+#~ msgid "Null directory"
+#~ msgstr "Adresář NULL"
+
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+#~ msgid "Apply by name"
+#~ msgstr "Aplikovat podle jména"
+
+#~ msgid "Apply by content"
+#~ msgstr "Aplikovat podle obsahu"
+
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "Chyba při nahrávání ikony %s\n"
+
+#~ msgid "Welcome"
+#~ msgstr "Vítejte"
+
+#~ msgid "popen error, please try again!"
+#~ msgstr "chyba volání popen, zkuste znovu!"
+
+#~ msgid "File content candidate window"
+#~ msgstr "Obsah souboru: možnosti"
+
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "Sekvence bytů zatím nerozeznána"
+
+#~ msgid "File content - open failure"
+#~ msgstr "Obsah souboru - chyba při otvírání"
+
+#~ msgid "File content - write error"
+#~ msgstr "Obsah souboru - chyba při zápisu"
+
+#~ msgid "File content - successful conversion"
+#~ msgstr "Obsah souboru - úspěšná konverze"
+
+#~ msgid "Directory node"
+#~ msgstr "Adresářový uzel"
+
+#~ msgid "File content - successful undo"
+#~ msgstr "Obsah souboru - úspěšné zpět"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/de.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2488 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2008-03-05 11:53+0100\n"
+"Last-Translator: [email protected]\n"
+"Language-Team: [email protected]\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr "<b>Verfügbare Codierung:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr "<b>Umwandlungseinstellung:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr "<b>Codierungsliste:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr "<b>Gewählte Codierung:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr "<b>Suchergebnis</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr "<b>_Probelauf-Ergebnis</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr "<b>_Position:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr "<b>_Berichtsbereich</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr "Codierung hinzufügen oder entfernen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr "Dateien archivieren oder komprimieren"
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr "Suchergebnis löschen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr "Das Suchergebnis löschen"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr "Inhaltsumwandlung _Modus"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr "Umwandeln"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr ""
+"Dateiname oder Inhalt abhängig vom vorhergehenden Probelauf-Ergebnis "
+"umwandeln"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr ""
+"Datei anstelle der interaktiven Umwandlung unter Verwendung des ersten "
+"Kandidaten automatisch umwandeln"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr ""
+"Name oder Inhalt der gewählten Dateien entsprechend dem aktuellen Modus "
+"umwandeln"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr "Umwandeln ohne festzustellen, ob die Codierung UTF-8 ist oder nicht"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr "Daten geändert, mehr als:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr "Codierung des Dateinamens oder des Dateiinhalts automatisch erkennen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr "Symlink-Inhalt nicht überprüfen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr ""
+"Nicht versuchen, die Konsistenz zwischen der Datei der symbolischen "
+"Verknüpfung und ihrer Zieldatei beizubehalten"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr "Probelauf"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr ""
+"Probelauf ohne Änderung von Dateinamen oder Inhalten auf dem Datenträger"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr "Probelauf ohne Änderung von Dateien auf dem Datenträger"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr "Dateiinhalt _Modus"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr "Dateicodierungsprüfer"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr "Dateicodierungsprüfer-Präferenzen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr "Datei _Namen-Modus"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr "Dateiinhalt-Umwandlungsmodus"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr "Dateinamen-Umwandlungsmodus"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr "_Symbolischem Verweis folgen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr "Symbolischem Verweis folgen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr "Zwangsweise umwandeln"
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr "_Verborgene Dateien verarbeiten"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr "_Remote-Dateien verarbeiten"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr "Suchergebnis verbergen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr "Verlaufslänge:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr "Name der Protokolldatei:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr "In Ordner suchen:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr "Name enthält:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr "Datei öffnen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr "Eigentum von Gruppe:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr "Eigentum von Benutzer:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr "Verarbeitung von Archiv oder komprimierter Datei"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr "Verarbeitung von verborgener Datei"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr "Verarbeitung von nicht lokalen Dateien wie NFS-Dateien"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr "Verarbeitung von spezieller Datei"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr "Rekursive Verarbeitung von Dateien, die dem Ordner untergeordnet sind"
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr "Wiederherstellen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr ""
+"Name oder Inhalt der bereitgestellten Dateien entsprechend dem "
+"Umwandlungsmodus wiederherstellen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr "Name oder Inhalt der ausgewählten Dateien wiederherstellen"
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr "Szenario"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr "Suchergebnis"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr "Suche nach _Dateien ..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr "Suche nach Dateien"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr "Suche nach Dateien entsprechend den vom Benutzer angegebenen Kriterien"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr "Einen Ordner auswählen"
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr "Verarbeitung von spezieller Datei"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr "Status geändert, mehr als:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr "_Suche beenden"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr "Suche nach Dateien beenden"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+"Die Anzahl der Umwandlungen wird gespeichert. Die gleichzeitige Umwandlung "
+"mehrerer Dateien wird als einmalige Umwandlung gezählt."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr "Letzte Aktion rückgängig machen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr "Protokolldatei verwenden"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr "Protokolldatei verwenden"
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr "_Automatische Umwandlung"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr "_Automatische Erkennung"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr "_Inhalt"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr "_Umwandeln"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr "_Probelauf"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr "_Probelauf-Ergebnisfenster"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr "_Bearbeiten"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "_Datei"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr "_Zwangsweise umwandeln"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "_Hilfe"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr "_Namensumwandlungsmodus"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr "_Inhalt in Vorschau anzeigen"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "_Rekursiver Modus"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "_Berichtsfenster"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr "_Wiederherstellen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr "_Szenario"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "_Ansicht"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr "Eine Instanz von fsexam wird bereits ausgeführt.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+"Warnung: Umwandlung der Codierung %s in kanonische Codierungsnamen nicht "
+"möglich, wird ignoriert.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+"Keine Codierung vorhanden. Klicken Sie im Einstellungsdialogfeld auf die "
+"Schaltfläche 'Automatische Erkennung' oder fügen Sie über den Codierungs-"
+"Dialog eine Codierung hinzu.\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr "Keine Auswahl"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr "Es müssen keine Dateien verarbeitet werden"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr "Es muss nichts rückgängig gemacht werden"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr ""
+"Keine Ergebnisse. Im Berichtfenster finden Sie weitere Informationen.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr "Suche beenden ..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr "Das Suchergebnis wurde gelöscht."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+"%s ist kein unterstützter Codierungsname, 'fsexamc -l' verwenden, um eine "
+"Liste der unterstützten Codierungen anzuzeigen.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr ""
+"Ihr System unterstützt nicht die Umwandlung von '%s' in 'UTF-8', wird "
+"ignoriert.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr "Parameter von Suchen(1) sind leer.\n"
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr "Suchen ..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr "Suche beendet"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr "Fehler während der Ausführung des Suchbefehls."
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr "%d Dateien gefunden"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr "Suche gestoppt"
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr "[Inhalt] %s - >%s"
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr "Symbolische Verknüpfung wurde neu erstellt"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr "[Name] %s -> %s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr "Kandidatenliste:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr "\t[Nr.] Codierungsname\tUmwandlungsergebnis\n"
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr "Keine richtige Codierung.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr "Bitte Nr. auswählen ('s' zum Überspringen): "
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr "Bitte einen Kandidaten auswählen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr "Nicht erneut fragen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr "Traditionelles Chinesisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr "Traditionelles Chinesisch (Hongkong)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr "Mitteleuropäisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr "Kyrillisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr "Westlich"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr "Griechisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr "Türkisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr "Hebräisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr "Arabisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr "Baltisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr "Vietnamesisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr "Westeuropa"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr "Mitteleuropa"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr "Russisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr "Portugiesisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr "Isländisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr "Französisch (Kanada)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr "Nordisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr "Kyrillisch/Russisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr "Thai"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr "Japanisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr "Koreanisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr "Vereinfachtes Chinesisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr "Keltisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr "Rumänisch"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr "Südeuropäisch"
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr "Codierung \"%s\" wird nicht unterstützt.\n"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr "Die unterstützte Codierungsliste:\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr "_Beschreibung"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr "_Codierung"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr "Erfolg"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr "Dateiname ist bereits UTF-8-codiert"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr "Dateiinhalt ist bereits UTF-8-codiert"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr "Der neue Name ist derselbe wie der alte Name"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr "Datei nicht vorhanden"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr "Kein Speicher"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr "Ungültiger Codierungsindex"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr "Öffnen der Datei nicht möglich"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr "Umbenennen der Datei nicht möglich"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr "Schreiben der Datei nicht möglich"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr "Bereitgestellte Codierungsliste ist nicht geeignet"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr "Keine reguläre Datei"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr "Symlink-Ziel nicht vorhanden"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr "Umwandlung der bereitgestellten Datei nicht möglich"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr "Lesen der Datei nicht möglich"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr "Keine ausreichende Berechtigung"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr ""
+"Erneute Verknüpfung der symbolischen Verknüpfung nicht möglich; symbolische "
+"Verknüpfung wird dadurch unterbrochen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr ""
+"Datei der symbolischen Verknüpfung wurde gelöscht, kann aber nicht neu "
+"erstellt werden"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr "Probelauf-Dateiformat ist ungültig"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr "Abrufen des aktuellen Verzeichnisses nicht möglich"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr "Ändern des Verzeichnisses nicht möglich"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr "Keine Verlaufsinformationen für aktuelle Datei"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr ""
+"Keine bereitgestellten Dateien oder alle Dateien sind bereits UTF-8-codiert"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr ""
+"Datei mit demselben Namen vorhanden, \"utf-8\" wird als Suffix angefügt"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr "Verborgene Datei überspringen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr "Nicht lokale Datei überspringen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr "Leere Datei"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr "Keine Parameter"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr "Fehler während des Filterns"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr "Dieser Dateityp wird nicht unterstützt"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr "Pufferüberlauf"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr "Umwandlung wurde abgebrochen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr "Schreiben der Probelauf-Ergebnisdatei nicht möglich"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr "Öffnen der Probelauf-Ergebnisdatei nicht möglich"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr "Umwandlung des Dateinamens in URI nicht möglich"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr "Ein unbekannter Fehler ist aufgetreten"
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr "Codierung \"%s\" wird nicht unterstützt\n"
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr "Möchten Sie diese Codierungsliste permanent speichern?"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "Beim Anzeigen der Hilfe ist ein Fehler aufgetreten: %s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+"Grobzusammenfassung: %d bereitgestellt, %d gesamt, %d ignoriert, %d Fehler, %"
+"d Erfolg\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+"Ausführung des Befehls 'tar' nicht möglich aufgrund des Nichtvorhandenseins "
+"änderungsspezifischer Angaben (iso8859-1); weitere Informationen finden Sie "
+"in der Online-Dokumentation - fsexam(1)."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr "Dieser Dateityp wird nicht unterstützt"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+"Die Archivdatei ist leer oder besitzt einen absoluten Pfad. Daher können in "
+"dieser Archivdatei keine Dateien umgewandelt werden."
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "Kein Leserecht"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "Kein Ordner angegeben"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr "Datei nicht vorhanden oder keine Zugriffsberechtigung"
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr "Leerer Ordner"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr "Symlink-Ziel nicht vorhanden"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr "Die ausgewählte Datei ist nicht leer. Möchten Sie sie überschreiben?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+"Die ausgewählte Datei ist nicht UTF-8-codiert. Wir empfehlen Ihnen "
+"nachdrücklich, einen UTF-8-Dateinamen zu verwenden.\n"
+"\n"
+" Möchten Sie die Datei in UTF-8 umwandeln?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+"Umwandlung von %s in UTF-8 nicht möglich: %s.\n"
+"\n"
+"Beachten Sie bitte, dass eine teilweise Umwandlung durchgeführt worden sein "
+"kann.\n"
+" Aktualisieren Sie darum bitte Ihr Verzeichnis, und wählen Sie die Datei "
+"erneut aus."
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "Ordnerauswahl"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr ""
+"fsexam hilft dabei, Dateinamen und -inhalte von der alten Legacy-Codierung "
+"nach UTF8 zu konvertieren."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr "Die Datei \"%s\" ist nicht vorhanden."
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr "Keine Auswahl"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "Vorschau von mehreren ausgewählten Elementen nicht möglich"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr "Anzeigen des Ordnerinhalts in der Vorschau nicht möglich"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr "Zugriff nicht möglich"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr "Keine reguläre Datei"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "Kein Normaltext"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr ""
+"Eine andere Instanz von fsexam wird ausgeführt, wird in Kürze beendet\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr ""
+"Führen Sie 'fsexam --Hilfe' aus, um Informationen zur Verwendung zu "
+"erhalten.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr ""
+"Warnung: Die bereitgestellte Verlaufslänge ist zu kurz, Rücksetzung auf den "
+"Standardwert %d wird durchgeführt\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr "Geben Sie bitte den Dateinamen ein:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr ""
+"Fehler: Keine Codierung vorhanden und automatische Erkennung deaktiviert.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr "Öffnen der Probelauf-Datei %s nicht möglich\n"
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr "Verwendung:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr "    fsexam [OPTION] ... [Datei]\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+"\n"
+"Unterstützte Optionen:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr ""
+"    -a, --automatische Erkennung      Automatische Erkennung der Codierung "
+"aktivieren\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr "    -d Probelauf-Ergebnis      Probelauf-Ergebnisdatei angeben\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr ""
+"    -E Modulname         Verarbeitung von spezieller Datei aktivieren\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr "    -e Codierungsliste       Zusätzliche Codierungsliste angeben\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr "    -F, --Zwangsumwandlung    Zwangsumwandlungsmodus\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr "    -f 'Ausdruck'        Dateifilterkriterien angeben\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr ""
+"    -H, --verborgen           Verarbeitung von verborgener Datei aktivieren\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr "    -b, --automatische Umwandlung  Interaktiver Modus\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr ""
+"    -l, Codierungen auflisten       Alle unterstützten Codierungen "
+"auflisten\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr "    -k, --keine Überprüfung des Symlink-Inhalts\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+"                           Nicht auf Konsistenz prüfen zwischen\n"
+"                           symbolischer Verknüpfung und ihrem Zielnamen\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr "    -L Protokolldatei             Protokolldatei angeben\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr "    -n, --Probelauf          Probelauf-Modus\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr "    -P, --Codierungsliste anhängen\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Codierungsliste anhängen, die durch\n"
+"                           '-e' für die vordefinierte Codierungsliste "
+"angegeben ist\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr "    -p, --Codierungsliste voranstellen\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Codierungsliste voranstellen, die durch\n"
+"                           '-e' für die vordefinierte Codierungsliste "
+"angegeben ist\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr "    -R, --rekursiv        Recursiver Modus\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr "    -r, --entfernt           Verarbeitung von NFS-Dateien aktivieren\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr "    -S, --Codierungsliste speichern\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+"                           Codierungsliste permanent speichern, die durch\n"
+"                           \"-e\" angegeben ist\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+"    -s, --wiederherstellen          Den ursprünglichen Namen oder\n"
+"                           Inhalt für die angegebenen Dateien "
+"wiederherstellen\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+"    -t, --Inhalt umwandeln     Dateiinhalt anstelle des\n"
+"                           Dateinamens umwandeln\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr "    -w, --folgen           Symbolischem Verweis folgen\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr "    -V, --Version          Versionsinformation drucken\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr ""
+"    -?, --Hilfe             Diese Verwendungsinformationen für fsexam "
+"drucken\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr "Automatische Erkennung der Codierung"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr "Verarbeitung von verborgener Datei"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr "Verlaufslänge"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr "Konsistenz von symbolischer Verknüpfung und ihrem Verweis beibehalten"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr "Name der Protokolldatei"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr "Verarbeitung von NFS-Datei"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr "Modul für speziellen Dateityp"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr "Protokollieren oder nicht"
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr ""
+"[ISO8859-1,ISO8859-2,ISO8859-3,ISO8859-4,ISO8859-5,ISO8859-6,ISO8859-7,"
+"ISO8859-8,ISO8859-9,ISO8859-10]"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "automatischer Modus"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "Codierungsliste"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "rekursiver Modus"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "Hilfe für der Umstellung der bestehenden Codierung auf Unicode(UTF-8)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "*"
+#~ msgstr "*"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the dryrun result pane"
+#~ msgstr "Das Probelauf-Ergebnisfenster anzeigen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the report pane"
+#~ msgstr "Das Berichtfenster anzeigen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the search result window"
+#~ msgstr "Das Suchergebnisfenster anzeigen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preview plain text file content"
+#~ msgstr "Inhalt von Nur-Text-Datei in Vorschau anzeigen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Select A File"
+#~ msgstr "Eine Datei auswählen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "[Content] %s - >%s"
+#~ msgstr "[Inhalt] %s - >%s"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display help content"
+#~ msgstr "Hilfeinhalt anzeigen"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preference setting"
+#~ msgstr "Präferenzeinstellung"
+
+# SUN MESSAGE
+#~ msgid "File has been emptied, can not be restored!"
+#~ msgstr "Dateiinhalt wurde gelöscht -- Wiederherstellung nicht möglich!"
+
+# SUN MSG
+# SUN MESSAGE
+#~ msgid "Folder already exists"
+#~ msgstr "Ordner existiert bereits"
+
+# SUN MESSAGE
+#~ msgid "Folder doesn't exist yet"
+#~ msgstr "Ordner existiert noch nicht"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return"
+#~ msgstr "Wagenrücklauf hinzufügen"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Open..."
+#~ msgstr "_Öffnen..."
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Restore Original File"
+#~ msgstr "_Ursprüngliche Datei wiederherstellen"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Convert Content"
+#~ msgstr "Inhalt _konvertieren"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_About"
+#~ msgstr "_Info"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Sub-folder:"
+#~ msgstr "Unterordner:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "User intervention:"
+#~ msgstr "Benutzereingriff:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "text"
+#~ msgstr "Text"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore %s and add Carriage Return"
+#~ msgstr "%s wiederherstellen und Wagenrücklauf hinzufügen"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by adding Carriage Return"
+#~ msgstr "Wiederherstellen durch Hinzufügen von Wagenrücklauf"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8"
+#~ msgstr "UTF8 wiederherstellen"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner name conversion"
+#~ msgstr "Dateisystem-Prüfung - Umwandlung von Dateinamen"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return"
+#~ msgstr "Wagenrücklauf löschen"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return only"
+#~ msgstr "nur Wagenrücklauf löschen"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return only"
+#~ msgstr "nur Wagenrücklauf hinzufügen"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Preferences"
+#~ msgstr "_Einstellungen"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Encode list:"
+#~ msgstr "Codierliste:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner content conversion"
+#~ msgstr "Dateisystem-Prüfung - Umwandlung des Inhalts"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s"
+#~ msgstr "Dateiinhalt - konvertieren aus %s"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s and delete Carriage Return"
+#~ msgstr "Dateiinhalt - konvertieren aus %s und Wagenrücklauf löschen"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - delete Carriage Return only"
+#~ msgstr "Dateiinhalt - nur Wagenrücklauf löschen"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "%s doesn't exist yet"
+#~ msgstr "%s existiert noch nicht"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8 and delete Carriage Return"
+#~ msgstr "UTF8 wiederherstellen und Wagenrücklauf löschen"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by deleting Carriage Return"
+#~ msgstr "Wiederherstellen durch Löschen von Wagenrücklauf"
+
+# SUN MSG
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr ""
+#~ "Eine Liste von Namenserweiterungen. Alle Dateien, deren Namenserweiterung "
+#~ "in dieser Liste enthalten ist, werden von fsexam als normale Textdateien "
+#~ "behandelt."
+
+# SUN MSG
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "Nur relevant für die Umwandlung von Dateinamen. Im rekursiven Modus "
+#~ "konvertiert fsexam die Namen von Dateien nach UTF8 und verarbeitet dabei "
+#~ "auch rekursiv die Unterverzeichnisse."
+
+# SUN MSG
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "Nur relevant für die Umwandlung von Dateinamen. Im automatischen Modus "
+#~ "versucht fsexam, automatisch und ohne weitere Benutzereingriffe die "
+#~ "Umwandlung optimal durchzuführen. Ist der automatische Modus nicht "
+#~ "aktiviert, erscheint ein Dialogfeld mit verschiedenen "
+#~ "Konvertierungsoptionen, aus denen Sie die geeignete auswählen können."
+
+# SUN MSG
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "Die Liste der Legacy-Codierungen, die für die jeweilige Sprache verfügbar "
+#~ "sind. Bitte achten Sie auf die Reihenfolge innerhalb der Liste. fsexam "
+#~ "betrachtet die erste Codierung, aus der eine erfolgreiche Konvertierung "
+#~ "möglich ist, als beste Option."
+
+# SUN MSG
+#~ msgid "suffix list"
+#~ msgstr "Erweiterungsliste"
+
+# SUN MSG
+#~ msgid "Directory already exists"
+#~ msgstr "Verzeichnis existiert bereits"
+
+# SUN MSG
+#~ msgid "File already exists"
+#~ msgstr "Datei existiert bereits"
+
+# SUN MSG
+#~ msgid "Null directory"
+#~ msgstr "Verzeichnis NULL"
+
+# SUN MSG
+#~ msgid "Apply by name"
+#~ msgstr "Übernehmen nach Name"
+
+# SUN MSG
+#~ msgid "Apply by content"
+#~ msgstr "Übernehmen nach Inhalt"
+
+# SUN MSG
+#~ msgid "Peek content"
+#~ msgstr "Inhaltsvorschau"
+
+# SUN MSG
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "Fehler beim Laden von Symbol %s\n"
+
+# SUN MSG
+#~ msgid "popen error, please try again!"
+#~ msgstr "popen-Fehler. Bitte versuchen Sie es erneut."
+
+# SUN MSG
+#~ msgid "Not one plain text"
+#~ msgstr "Keine Normaltext-Dateien gefunden"
+
+# SUN MSG
+#~ msgid "File content candidate window"
+#~ msgstr "Dateiinhalt: Optionsfenster"
+
+# SUN MSG
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "Bytesequenz ist bislang unbekannt"
+
+# SUN MSG
+#~ msgid "File content - open failure"
+#~ msgstr "Dateiinhalt - Fehler beim Öffnen"
+
+# SUN MSG
+#~ msgid "File content - write error"
+#~ msgstr "Dateiinhalt - Fehler beim Schreiben"
+
+# SUN MSG
+#~ msgid "File content - successful conversion"
+#~ msgstr "Dateiinhalt - Konvertierung erfolgreich"
+
+# SUN MSG
+#~ msgid "File content - UTF8 alreay"
+#~ msgstr "Dateiinhalt - liegt bereits in UTF8 vor"
+
+# SUN MSG
+#~ msgid "Directory node"
+#~ msgstr "Verzeichnisknoten"
+
+# SUN MSG
+#~ msgid "File content - successful undo"
+#~ msgstr "Dateiinhalt - Rückgängigmachen erfolgreich"
+
+# SUN MESSAGE
+#~ msgid "No permission to rename"
+#~ msgstr "Umbenennen nicht möglich (unzureichende Benutzerrechte)"
+
+# SUN MESSAGE
+#~ msgid "File Hierarchy"
+#~ msgstr "Dateihierarchie"
+
+# SUN MESSAGE
+#~ msgid "No directory specified"
+#~ msgstr "Kein Verzeichnis angegeben"
+
+# SUN MESSAGE
+#~ msgid "Directory Selection"
+#~ msgstr "Verzeichnisauswahl"
+
+# SUN MESSAGE
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+# SUN MESSAGE
+#~ msgid "Report Pane"
+#~ msgstr "Berichtsfenster"
+
+# SUN MESSAGE
+#~ msgid "Welcome"
+#~ msgstr "Herzlich willkommen!"
+
+# SUN MESSAGE
+#~ msgid "Recursive Mode"
+#~ msgstr "Rekursiv"
+
+# SUN MESSAGE
+#~ msgid "Automatic Conversion"
+#~ msgstr "Automatische Konvertierung"
+
+# SUN MESSAGE
+#~ msgid "Conversion failure"
+#~ msgstr "Fehler beim Konvertieren"
+
+# SUN MESSAGE
+#~ msgid "UTF8 already"
+#~ msgstr "Liegt bereits in UTF8 vor"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/es.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2424 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2008-02-26 14:05+0100\n"
+"Last-Translator: [email protected]\n"
+"Language-Team: [email protected]\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr "<b>Codificación disponible:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr "<b>Opción de conversión:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr "<b>Lista de codificaciones:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr "<b>Codificación seleccionada:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr "<b>Resultado de la búsqueda</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr "<b>_Resultado de dryrun</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr "<b>_Ubicación:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr "<b>_Panel de informe</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr "Agregar o quitar codificación"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr "Archivar o comprimir archivos"
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr "Borrar resultado de l_a búsqueda"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr "Borra el resultado de la búsqueda"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr "_Modo de conversión del contenido"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr "Convertir"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr ""
+"Convertir contenido o nombre de archivo según resultado anterior de dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr ""
+"Convertir archivo mediante el primer candidato automáticamente en vez de "
+"usar la conversión interactiva"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr ""
+"Convertir contenido o nombre de archivos seleccionados según el modo actual"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr "Convertir sin detectar si la codificación es o no UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr "Fecha de modificación superior a:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr ""
+"Detectar automáticamente la codificación del nombre o contenido del archivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr "No comprobar c_ontenido de enlace simbólico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr ""
+"No intentar mantener la coherencia entre el archivo de enlace simbólico y su "
+"archivo de destino"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr "Dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr "Dryrun sin cambiar ningún contenido ni nombre de archivo del disco"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr "Dryrun sin cambiar archivos en disco"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr "_Modo de contenido del archivo"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr "Examinador de la codificación de archivos"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr "Preferencias del Examinador de la codificación de archivos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr "Modo _del nombre de archivo"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr "Modo de conversión del contenido de archivo"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr "Modo de conversión del nombre de archivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr "Seguir _enlace simbólico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr "Sigue el enlace simbólico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr "Convertir obligatoriamente"
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr "Controlar _archivos ocultos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr "Controlar _archivos remotos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr "Ocultar resultados de la búsqueda"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr "Longitud de historial:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr "Nombre del archivo de registro:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr "Buscar en carpeta:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr "El archivo se denomina:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr "Abrir archivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr "Grupo del archivo:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr "Dueño del archivo:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr "Procesando archivar o comprimir archivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr "Procesando archivo oculto"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr "Procesando archivos no locales como archivo NFS"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr "Procesando tipo especial de archivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr "Control recursivo de archivos en carpeta"
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr "Restaurar"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr ""
+"Restaurar contenido o nombre de los archivos conforme al modo de conversión"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr "Restaurar contenido o nombre de los archivos seleccionados"
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr "Situación"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr "Resultado de la búsqueda"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr "Buscar _archivos..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr "Buscar archivos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr "Busca archivos según criterios especificados por el usuario"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr "Seleccionar una carpeta"
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr "Control de archivos especiales"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr "Estado de modificación superior a:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr "Detener _búsqueda"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr "Detiene la búsqueda de archivos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+"Se almacena el número de conversiones. La conversión simultánea de varios "
+"archivos cuenta como 1 vez"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr "Deshacer la última acción"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr "Utilizar archivo de registro"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr "Utiliza el archivo de registro"
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr "_Conversión automática"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr "_Detección automática"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr "_Contenido"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr "_Convertir"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr "_Dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr "_Panel de resultados de dryrun"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr "_Editar"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "_Archivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr "_Convertir obligatoriamente"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "A_yuda"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr "_Modo de conversión del nombre"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr "_Previsualizar contenido"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "Modo _recursivo"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "_Panel de informe"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr "_Restaurar"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr "_Situación"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "_Ver"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr "Ya se está ejecutando una instancia de fsexam.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+"Advertencia: la codificación %s no se puede convertir a nombre de "
+"codificación canónica, se hará caso omiso.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+"No se proporciona codificación. En el cuadro de diálogo Preferencias, "
+"seleccione el botón \"Detección automática\" o agregue codificación mediante "
+"un cuadro de diálogo de codificación.\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr "No hay selección"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr "No hay archivos que controlar"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr "No hay que deshacer nada"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr ""
+"No hay resultados. Para obtener más información, consulte el panel del "
+"informe.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr "Detener la búsqueda..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr "Se ha borrado el resultado de la búsqueda."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+"%s es un nombre de codificación no admitido. Utilice \"fsexamc -l\" para ver "
+"la codificación admitida.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr ""
+"El sistema no permite convertir de '%s' a 'UTF-8', se hará caso omiso.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr "Los parámetros de buscar(1) están vacíos.\n"
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr "Buscando..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr "Ha finalizado la búsqueda"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr "Errores al ejecutar el comando de búsqueda."
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr "Se han encontrado %d archivos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr "La búsqueda se ha detenido"
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr "[Contenido] %s - >%s"
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr "El enlace simbólico se ha creado de nuevo correctamente"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr "[Nombre] %s -> %s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr "Lista de candidatos:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr "\t[Núm.] Nombre de codificación\tResultado de la conversión\n"
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr "No se dispone de la codificación adecuada.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr "Seleccione núm.(\"s\" que saltar): "
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr "Seleccione candidato"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr "No volver a preguntar"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr "Chino tradicional"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr "Chino tradicional(Hong Kong)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr "Europeo central"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr "Cirílico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr "Occidental"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr "Griego"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr "Turco"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr "Hebreo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr "Árabe"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr "Báltico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr "Vietnamita"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr "Europa Occidental"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr "Europa Central"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr "Ruso"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr "Portugués"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr "Islandés"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr "Francés canadiense"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr "Nórdico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr "Cirílico/Ruso"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr "Tailandés"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr "Japonés"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr "Coreano"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr "Chino simplificado"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr "Celta"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr "Rumano"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr "Europeo meridional"
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr "La codificación \"%s\" no se admite.\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr "La lista de codificaciones admitidas:\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr "_Descripción"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr "_Codificación"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr "Correcto"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr "El nombre del archivo ya es UTF-8"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr "El contenido del archivo ya es UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr "El nombre nuevo y el antiguo son el mismo"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr "El archivo no existe"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr "No hay memoria"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr "Índice de codificación no válido"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr "El archivo no se puede abrir"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr "No se puede cambiar el nombre del archivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr "No se puede escribir en el archivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr "La lista de codificaciones no es adecuada"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr "No es un archivo común"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr "El destino de enlace simbólico no existe"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr "El archivo indicado no se puede convertir"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr "El archivo no se puede leer"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr "No se dispone de los permisos adecuados"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr ""
+"El enlace simbólico no puede enlazarse de nuevo, dicho enlace se anulará"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr ""
+"El archivo de enlace simbólico se ha borrado, pero no puede volverse a crear"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr "El formato de archivo dryrun no es válido"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr "No se puede obtener el directorio actual"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr "No se puede cambiar el directorio"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr "No hay datos de historial de este archivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr "No hay ningún archivo que ya sea UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr "Existe el mismo nombre de archivo; \"utf-8\" se agregará como sufijo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr "Omitir archivo oculto"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr "Omitir archivo no local"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr "Archivo vacío"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr "No hay parámetros"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr "Error al filtrar"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr "Este tipo de archivo no se admite"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr "Desbordamiento de memoria intermedia"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr "La conversión se ha cancelado"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr "No se puede escribir en el archivo de resultados de dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr "No se puede abrir el archivo de resultados de dryrun"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr "El nombre de archivo no se puede convertir a URI"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr "Error desconocido"
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr "La codificación \"%s\" no se admite.\n"
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr "¿Desea guardar de modo permanente esta lista de codificaciones?"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "Error al mostrar la Ayuda: %s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+"Resumen preliminar: %d proporcionados, %d total, %d omitidos, %d erróneos, %"
+"d correctos\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+"El comando tar no se puede ejecutar por falta de la configuración regional "
+"iso8859-1; para obtener más información, consulte la página de comando man "
+"fsexam(1)."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr "Este tipo de archivo no se admite"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+"El contenedor está vacío o tiene una ruta absoluta. No se pueden convertir "
+"archivos de este archivo contenedor"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "No tiene permiso de lectura"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "No se ha especificado una carpeta"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr "El archivo no existe o se carece de permisos de acceso."
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr "Carpeta vacía"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr "El destino de enlace simbólico no existe"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr "El archivo seleccionado no está vacío. ¿Desea sobrescribirlo?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+"El archivo seleccionado no tiene la codificación UTF-8. Se recomienda "
+"encarecidamente usar un nombre de archivo UTF-8.\n"
+"\n"
+" ¿Desea convertirlo a UTF-8?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+"No se puede convertir %s a UTF8: %s.\n"
+"\n"
+"Quizá haya una conversión parcial.\n"
+" Por lo tanto, actualice el directorio y seleccione de nuevo el archivo."
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "Selección de carpeta"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr ""
+"fsexam sirve de ayuda para migrar nombres y contenidos de archivos de una "
+"codificación antigua a UTF8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr "Falta el archivo \"%s\"."
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr "No hay selección"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "No es posible abrir una vista previa de varias selecciones"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr "No se puede obtener una vista previa del contenido de la carpeta"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr "No se puede acceder"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr "No es un archivo normal"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "No texto sin formato"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr "Se está ejecutando otro fsexam, finalizará pronto\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr "Ejecute \"fsexam -help\" para obtener información sobre el uso.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr ""
+"Advertencia: la longitud de historial indicada es demasiado corta, se "
+"restablecerá el valor predeterminado %d\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr "Escriba el nombre del archivo: \n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr ""
+"Error: no hay codificación y se ha inhabilitado la detección automática.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr "El archivo dryrun %s no se puede abrir\n"
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr "Uso:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr "    fsexam [OPCIÓN] ... [archivo]\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+"\n"
+"Opciones admitidas:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr ""
+"    -a, --auto-detect      Habilitar detección automática de codificación\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr ""
+"    -d dry-run-result      Especificar el archivo de resultados de dryrun\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr "    -E module-name         Habilitar control de archivos especiales\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr ""
+"    -e encoding-list       Especificar lista de codificaciones adicionales\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr "    -F, --force-convert    Modo de conversión obligatoria\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr ""
+"    -f 'expression'        Especificar criterios de filtro de archivos\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr "    -H, --hidden           Activar control de archivos ocultos\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr "    -b, --auto-conversion  Modo interactivo\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr ""
+"    -l, list-encoding      Lista de todas las codificaciones admitidas\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr "    -k, --no-check-symlink-content\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+"                           No comprobar la coherencia entre\n"
+"                           enlace simbólico y su nombre de destino\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr "    -L logfile             Especificar archivo de registro\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr "    -n, --dry-run          Modo dryrun\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr "    -P, --append-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Agregar lista de codificaciones especificada por\n"
+"                           '-e' a lista de codificaciones predefinida\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr "    -p, --prepend-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Anteponer lista de codificaciones especificada "
+"por\n"
+"                           '-e' a lista de codificaciones predefinida\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr "    -R, --recursive        Modo recursivo\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr "    -r, --remote           Activar control de archivos nfs \n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr "    -S, --save-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+"                           Guardar lista de codificaciones especificada por\n"
+"                           '-e' permanentemente\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+"    -s, --restore          Restaurar el nombre original o\n"
+"                           contenido de los archivos indicados \n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+"    -t, --conv-content     Convertir contenido de archivo en lugar de\n"
+"                           nombre de archivo\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr "    -w, --follow           Seguir enlace simbólico\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr "    -V, --version          Imprimir la información de la versión\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr ""
+"    -?, --help             Imprimir la información sobre el uso de fsexam\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr "Detección automática de codificación"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr "Control de archivos ocultos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr "Longitud de historial"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr "Mantener enlace simbólico y la coherencia de sus referencias"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr "Nombre del archivo de registro"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr "Control de archivos NFS"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr "Módulo de tipo especial de archivos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr "Escribir registro o no"
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[ISO8859-1,ISO8859-8,ISO8859-9]"
+
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "modo automático"
+
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "lista de codificación"
+
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "modo recursivo"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "Ayudar a migrar de codificación antigua a Unicode(UTF-8)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "*"
+#~ msgstr "*"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the dryrun result pane"
+#~ msgstr "Mostrar el panel de resultados de dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the report pane"
+#~ msgstr "Mostrar el panel del informe"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the search result window"
+#~ msgstr "Mostrar la ventana de resultados de la búsqueda"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preview plain text file content"
+#~ msgstr "Vista previa de contenido de archivo de texto sin formato"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Select A File"
+#~ msgstr "Seleccionar un archivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "[Content] %s - >%s"
+#~ msgstr "[Contenido] %s - >%s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display help content"
+#~ msgstr "Mostrar contenido de la Ayuda"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preference setting"
+#~ msgstr "Valor de preferencias"
+
+# SUN MESSAGE
+#~ msgid "File has been emptied, can not be restored!"
+#~ msgstr "El archivo se ha vaciado, no es posible restaurarlo."
+
+# SUN MESSAGE
+#~ msgid "Folder already exists"
+#~ msgstr "La carpeta ya existe"
+
+# SUN MESSAGE
+#~ msgid "Folder doesn't exist yet"
+#~ msgstr "La carpeta todavía no existe"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return"
+#~ msgstr "agregar retorno de carro"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Open..."
+#~ msgstr "_Abrir..."
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Restore Original File"
+#~ msgstr "_Restaurar archivo original"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Convert Content"
+#~ msgstr "_Convertir contenido"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_About"
+#~ msgstr "_Acerca de"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Sub-folder:"
+#~ msgstr "Subcarpeta:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "User intervention:"
+#~ msgstr "Intervención de usuario:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "text"
+#~ msgstr "texto"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore %s and add Carriage Return"
+#~ msgstr "Restaurar %s y agregar retorno de carro"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by adding Carriage Return"
+#~ msgstr "Restaurar añadiendo retorno de carro"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8"
+#~ msgstr "Restaurar UTF8"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner name conversion"
+#~ msgstr "Conversión de nombres del Examinador del sistema de archivos"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return"
+#~ msgstr "borrar retorno de carro"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return only"
+#~ msgstr "borrar retorno de carro solamente"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return only"
+#~ msgstr "agregar retorno de carro solamente"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Preferences"
+#~ msgstr "_Preferencias"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Encode list:"
+#~ msgstr "Lista de codificación:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner content conversion"
+#~ msgstr "Conversión de contenido del Examinador del sistema de archivos"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s"
+#~ msgstr "Contenido de archivo - convertir de %s"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s and delete Carriage Return"
+#~ msgstr "Contenido de archivo - convertir de %s y borrar retorno de carro"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - delete Carriage Return only"
+#~ msgstr "Contenido de archivo - borrar retorno de carro solamente"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "%s doesn't exist yet"
+#~ msgstr "%s todavía no existe"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8 and delete Carriage Return"
+#~ msgstr "Restaurar UTF8 y borrar retorno de carro"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by deleting Carriage Return"
+#~ msgstr "Restaurar borrando retorno de carro"
+
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr ""
+#~ "Una lista de sufijos. Fsexam interpreta como archivo de texto cualquier "
+#~ "archivo cuyo sufijo pertenezca a la lista."
+
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "Sólo es aplicable para la conversión de los nombres de archivos. Es un "
+#~ "modo recursivo. Al habilitarlo, fsexam convertirá el nombre del archivo y "
+#~ "el subdirectorio en formato UTF8 de forma recursiva."
+
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "Sólo es aplicable para la conversión de los nombres de archivos. Es un "
+#~ "modo automático. Al habilitarlo, fsexam lo convertirá automáticamente con "
+#~ "la mejor conversión posible sin intervención del usuario. En caso de que "
+#~ "esto no fuera posible, un cuadro de diálogo informará de las "
+#~ "posibilidades de conversión y lo que necesita el usuario para decidir "
+#~ "entre ellas."
+
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "La lista de los nombres de codificación heredados disponibles para un "
+#~ "lenguaje específico. Nota: el orden de la lista es importante, ya que "
+#~ "fsexam considera como el mejor el primero que puede usar para una "
+#~ "conervsión satisfactoria."
+
+#~ msgid "suffix list"
+#~ msgstr "lista de sufijos"
+
+#~ msgid "Directory already exists"
+#~ msgstr "El directorio ya existe"
+
+#~ msgid "File already exists"
+#~ msgstr "El nombre del archivo ya existe."
+
+#~ msgid "Null directory"
+#~ msgstr "Directorio nulo"
+
+#~ msgid "Apply by name"
+#~ msgstr "Aplicar por nombre"
+
+#~ msgid "Apply by content"
+#~ msgstr "Aplicar por contenido"
+
+#~ msgid "Peek content"
+#~ msgstr "Examinar contenido"
+
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "Error al cargar el icono %s\n"
+
+#~ msgid "popen error, please try again!"
+#~ msgstr "error popen, inténtelo más tarde."
+
+#~ msgid "Not one plain text"
+#~ msgstr "No es texto sin formato"
+
+#~ msgid "File content candidate window"
+#~ msgstr "Ventana candidata de contenido de archivo"
+
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "Secuencia de byte todavía no reconocida"
+
+#~ msgid "File content - open failure"
+#~ msgstr "Contenido de archivo - fallo al abrir"
+
+#~ msgid "File content - write error"
+#~ msgstr "Contenido de archivo - error de escritura"
+
+#~ msgid "File content - successful conversion"
+#~ msgstr "Cotenido de archivo - conversión satisfactoria"
+
+#~ msgid "File content - UTF8 alreay"
+#~ msgstr "Contenido de archivo - ya es del tipo UTF8"
+
+#~ msgid "Directory node"
+#~ msgstr "Nodo de directorio"
+
+#~ msgid "File content - successful undo"
+#~ msgstr "Contenido de archivo - acción de deshacer satisfactoria"
+
+# SUN MESSAGE
+#~ msgid "No permission to rename"
+#~ msgstr "No tiene permiso para renombrar"
+
+# SUN MESSAGE
+#~ msgid "File Hierarchy"
+#~ msgstr "Jerarquía de archivos"
+
+# SUN MESSAGE
+#~ msgid "No directory specified"
+#~ msgstr "No se ha especificado un directorio"
+
+# SUN MESSAGE
+#~ msgid "Directory Selection"
+#~ msgstr "Selección de directorio"
+
+# SUN MESSAGE
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+# SUN MESSAGE
+#~ msgid "Report Pane"
+#~ msgstr "Panel de informe"
+
+# SUN MESSAGE
+#~ msgid "Welcome"
+#~ msgstr "Bienvenido"
+
+# SUN MESSAGE
+#~ msgid "Recursive Mode"
+#~ msgstr "Modo recursivo"
+
+# SUN MESSAGE
+#~ msgid "Automatic Conversion"
+#~ msgstr "Conversión automática"
+
+# SUN MESSAGE
+#~ msgid "Conversion failure"
+#~ msgstr "Error de conversión"
+
+# SUN MESSAGE
+#~ msgid "UTF8 already"
+#~ msgstr "Ya es UTF8"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/fr.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2432 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2008-03-05 12:27+0100\n"
+"Last-Translator: [email protected]\n"
+"Language-Team: [email protected]\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr "<b>Codage disponible :</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr "<b>Paramètre de conversion :</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr "<b>Liste de codages :</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr "<b>Codage sélectionné :</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr "<b>Résultat de la recherche</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr "<b>Résultat de la _simulation</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr "<b>_Emplacement :</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr "<b>_Volet du rapport</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr "Ajouter ou supprimer un codage"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr "Fichiers archives ou compressés"
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr "Effacer le résultat de la rec_herche"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr "Effacer le résultat de la recherche"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr "Mode _Conversion du contenu"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr "Convertir"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr ""
+"Convertir le nom ou le contenu du fichier en fonction du résultat de la "
+"simulation"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr ""
+"Convertir automatiquement le fichier à l'aide du premier candidat au lieu "
+"d'effectuer une conversion interactive"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr ""
+"Convertir le nom ou le contenu des fichiers sélectionnés en fonction du mode "
+"actuel"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr "Convertir sans essayer de détecter si le codage est UTF-8 ou non"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr "Données modifiées plus de :"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr "Détecter automatiquement le codage du nom ou du contenu du fichier"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr "Ne pas _vérifier le contenu du lien symbolique"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr ""
+"Ignorer la cohérence entre le fichier de lien symbolique et son fichier cible"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr "Simulation"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr ""
+"Simulation sans modification du nom ou du contenu du fichier sur le disque"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr "Simulation sans modification des fichiers sur le disque"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr "_Mode Contenu du fichier"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr "Contrôleur de codage de fichiers"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr "Préférences du contrôleur de codage de fichiers"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr "Mode _Nom de fichier"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr "Mode Conversion du contenu du fichier"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr "Mode Conversion du nom de fichier"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr "Suivre le lien _symbolique"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr "Suivre le lien symbolique"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr "Forcer la conversion"
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr "Gérer les fichiers cac_hés"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr "Gérer les fichiers _distants"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr "Masquer le résultat de la recherche"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr "Longueur de l'historique :"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr "Nom du fichier journal :"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr "Rechercher dans le dossier :"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr "Le nom contient :"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr "Ouvrir le fichier"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr "Appartient au groupe :"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr "Appartient à l'utilisateur :"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr "Traitement du fichier archive ou compressé"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr "Traitement du fichier caché"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr "Traitement de fichiers distants (du type NFS)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr "Traitement d'un type spécial de fichier"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr "Gérer les fichiers du dossier récursivement"
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr "Restaurer"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr ""
+"Restaurer le nom ou le contenu des fichiers sélectionnés selon le mode de "
+"conversion"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr "Restaurer le nom ou le contenu des fichiers sélectionnés"
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr "Scénario"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr "Résultat de la recherche"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr "Rechercher des _fichiers..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr "Rechercher des fichiers"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr "Rechercher des fichiers répondant aux critères de l'utilisateur"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr "Sélectionner un dossier"
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr "Gestion de fichiers spécifiques"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr "État modifié plus de :"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr "Arrêter la re_cherche"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr "Arrêter la recherche de fichiers"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+"Le nombre de conversions est stocké. La conversion de plusieurs fichiers "
+"d'un coup correspond à 1 fois."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr "Annulation de la dernière action"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr "Utiliser le fichier journal"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr "Utiliser le fichier journal"
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr "Conversion _automatique"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr "Détection _automatique"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr "_Contenu"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr "_Convertir"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr "_Simulation"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr "Volet de résultat de la _simulation"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr "_Édition"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "_Fichier"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr "_Forcer la conversion"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "_Aide"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr "Mode Conversion du _nom"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr "A_perçu du contenu"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "Mode _récursif"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "Volet du _rapport"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr "_Restaurer"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr "_Scénario"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "_Affichage"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr "Une instance de fsexam est déjà en cours d'exécution.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+"Avertissement : %s sera ignoré, car il ne peut pas être converti en nom de "
+"codage canonique.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+"Aucun codage fourni. Veuillez activer l'option Détection automatique dans la "
+"boîte de dialogue Préférences ou ajouter un codage par le biais de la boîte "
+"de dialogue Codage.\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr "Aucune sélection"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr "Aucun fichier à gérer"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr "Rien à annuler"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr ""
+"Aucun résultat. Pour plus d'informations, reportez-vous au volet du "
+"rapport.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr "Arrêter la recherche..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr "Le résultat de la recherche a été effacé."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+"%s n'est pas pris en charge. Exécutez fsexamc -l pour connaître la liste des "
+"codages pris en charge.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr ""
+"%s sera ignoré, car le système ne peut pas le convertir en codage UTF-8.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr "Il n'existe pas de paramètres pour find(1).\n"
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr "Recherche..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr "Recherche terminée"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr "Une erreur se produit lors de l'exécution de la commande de recherche."
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr "%d fichiers trouvés"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr "Recherche interrompue"
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr "[Contenu] %s - >%s"
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr "Recréation du lien symbolique réussie"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr "[Nom] %s -> %s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr "Liste de candidats :\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr "\t[N°] Nom de codage\tRésultat de la conversion\n"
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr "Aucun codage adéquat.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr "Sélectionnez un numéro ('s' pour ignorer) : "
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr "Sélectionnez un candidat"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr "Ne plus me demander"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr "Chinois traditionnel"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr "Chinois traditionnel(Hongkong)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr "Centro-européen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr "Cyrillique"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr "Occidental"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr "Grec"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr "Turc"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr "Hébreu"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr "Arabe"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr "Balte"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr "Vietnamien"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr "Europe occidentale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr "Europe centrale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr "Russe"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr "Portugais"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr "Islandais"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr "Français canadien"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr "Nordique"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr "Cyrillique/Russe"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr "Thaï"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr "Japonais"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr "Coréen"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr "Chinois simplifié"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr "Celtique"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr "Roumain"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr "Sud-européen"
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr "Le codage %s n'est pas pris en charge.\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr "Liste des codages pris en charge :\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr "_Description"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr "_Codage"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr "Opération réussie"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr "Nom du fichier déjà au format UTF-8"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr "Contenu du fichier déjà au format UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr "Le nouveau nom est identique à l'ancien"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr "Fichier inexistant"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr "Mémoire saturée"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr "Index de codage incorrect"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr "Impossible d'ouvrir le fichier"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr "Impossible de renommer le fichier"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr "Impossible d'écrire dans le fichier"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr "La liste de codages spécifiée est inadéquate"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr "N'est pas un fichier standard"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr "Cible du lien symbolique inexistante"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr "Impossible de convertir le fichier spécifié"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr "Impossible de lire le fichier"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr "Autorisation inadéquate"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr "Impossible de relier le lien symbolique. Ce lien sera rompu."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr ""
+"Le fichier de lien symbolique a été supprimé et ne peut pas être recréé."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr "Format du fichier de simulation incorrect"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr "Impossible d'atteindre le répertoire actuel"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr "Impossible de modifier le répertoire"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr "Aucune information d'historique pour le fichier actuel"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr "Aucun fichier spécifié ou tous les fichiers sont déjà au format UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr "Le suffixe utf-8 sera ajouté, car un fichier porte déjà ce nom."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr "Ignorer le fichier caché"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr "Ignorer le fichier distant"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr "Fichier vide"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr "Aucun paramètre"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr "Une erreur s'est produite lors du filtrage"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr "Type de fichier non pris en charge"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr "Dépassement de tampon"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr "Conversion annulée"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr "Impossible d'écrire dans le fichier de résultat de la simulation"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr "Impossible d'ouvrir le fichier de résultat de la simulation"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr "Impossible de convertir le nom de fichier au format URI"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr "Une erreur inconnue s'est produite"
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr "Le codage %s n'est pas pris en charge\n"
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr "Voulez-vous définitivement enregistrer cette liste de codages ?"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "Erreur lors de l'affichage de l'aide : %s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+"Bref résumé : spécifié : %d, total : %d, ignoré : %d, échec : %d, réussite : "
+"%d\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+"Impossible d'exécuter la commande tar en raison de l'absence de la variable "
+"locale iso8859-1. Reportez-vous à la page de manuel fsexam(1) pour plus "
+"d'informations."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr "Type de fichier non pris en charge"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+"Impossible de convertir les fichiers de ce fichier archive, car celui-ci est "
+"vide ou ne comporte pas de chemin absolu."
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "Lecture non autorisée"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "Vous devez indiquer un dossier"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr "Fichier inexistant ou accès non autorisé."
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr "Dossier vide"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr "Cible du lien symbolique inexistante"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr "Le fichier sélectionné n'est pas vide. Voulez-vous le remplacer ?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+"Le fichier sélectionné n'est pas codé au format UTF-8. Il est vivement "
+"recommandé de lui attribuer un nom à ce format.\n"
+"\n"
+" Voulez-vous le convertir au format UTF-8 ?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+"Impossible de convertir %s au format UTF-8 : %s.\n"
+"\n"
+"Une conversion partielle a peut-être été effectuée.\n"
+" Rafraîchissez le répertoire et sélectionnez de nouveau le fichier."
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "Sélection du dossier"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr ""
+"fsexam facilite la migration du nom et du contenu des fichiers de l'encodage "
+"existant vers UTF8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr "Le fichier \"%s\"est manquant."
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr "Aucune sélection"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "Impossible de prévisualiser plusieurs sélections"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr "Impossible de prévisualiser le contenu du dossier"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr "Accès impossible"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr "Fichier non standard"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "Pas en texte simple"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr ""
+"Une autre commande fsexam est en cours d'exécution. Fermeture imminente.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr "Pour obtenir des informations de syntaxe, exécutez fsexam --help.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr ""
+"Avertissement : la longueur d'historique spécifiée est trop petite. La "
+"valeur par défaut (%d) sera rétablie.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr "Entrez le nom du fichier :\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr "Erreur : aucun codage spécifié et détection automatique désactivée.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr "Impossible d'ouvrir le fichier de simulation %s\n"
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr "Syntaxe :\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr "    fsexam [OPTION] ... [fichier]\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+"\n"
+"Options prises en charge :\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr ""
+"    -a, --auto-detect      Activer la détection automatique du codage\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr ""
+"    -d dry-run-result      Spécifier le fichier de résultat de la "
+"simulation\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr ""
+"    -E module-name         Activer la gestion de fichiers spécifiques\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr ""
+"    -e encoding-list       Spécifier une liste de codages supplémentaire\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr "    -F, --force-convert    Mode de conversion forcée\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr ""
+"    -f 'expression'        Spécifier les critères de filtrage de fichiers\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr "    -H, --hidden           Activer la gestion de fichiers cachés\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr "    -b, --auto-conversion  Mode interactif\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr ""
+"    -l, list-encoding      Répertorier tous les codages pris en charge\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr "    -k, --no-check-symlink-content\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+"                           Ignorer la cohérence entre\n"
+"                           le lien symbolique et son nom cible\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr "    -L logfile             Spécifier le fichier journal\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr "    -n, --dry-run          Mode de simulation\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr "    -P, --append-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Ajouter la liste de codages spécifiée par\n"
+"                           '-e' à la fin de la liste de codages prédéfinis\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr "    -p, --prepend-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Ajouter la liste de codages spécifiée par\n"
+"                           '-e' au début de la liste de codages prédéfinis\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr "    -R, --recursive          Mode récursif\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr "    -r, --remote           Activer la gestion de fichiers NFS\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr "    -S, --save-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+"                           Enregistrer définitivement la liste de codages "
+"spécifiée par\n"
+"                           '-e' \n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+"    -s, --restore          Restaurer le nom ou\n"
+"                           le contenu d'origine des fichiers spécifiés\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+"    -t, --conv-content     Convertir le contenu du fichier au lieu de\n"
+"                           son nom\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr "    -w, --follow           Suivre le lien symbolique\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr "    -V, --version          Imprimer les informations sur la version\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr ""
+"    -?, --help             Imprimer ces informations de syntaxe pour la "
+"commande fsexam\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr "Détection automatique du codage"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr "Gestion de fichiers cachés"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr "Longueur de l'historique"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr "Cohérence du lien symbolique avec sa référence"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr "Nom du fichier journal"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr "Gestion de fichiers NFS"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr "Module du type de fichier spécifique"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr "Écrire le journal ou non"
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[ISO8859-1,ISO8859-3,ISO8859-5,ISo8859-8,ISO8859-9,ISO8859-10]"
+
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "mode automatique"
+
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "liste de codage"
+
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "mode récursif"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "Aide à la migration d'un codage hérité vers un codage Unicode (UTF-8)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "*"
+#~ msgstr "*"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the dryrun result pane"
+#~ msgstr "Afficher le volet de résultat de la simulation"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the report pane"
+#~ msgstr "Afficher le volet du rapport"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the search result window"
+#~ msgstr "Afficher la fenêtre de résultat de la recherche"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preview plain text file content"
+#~ msgstr "Prévisualiser le contenu du fichier en texte brut"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Select A File"
+#~ msgstr "Sélectionner un fichier"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "[Content] %s - >%s"
+#~ msgstr "[Contenu] %s - >%s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display help content"
+#~ msgstr "Afficher le contenu d'aide"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preference setting"
+#~ msgstr "Paramètre de préférence"
+
+# SUN MESSAGE
+#~ msgid "File has been emptied, can not be restored!"
+#~ msgstr "Le fichier a été vidé, mais ne peut pas être restauré."
+
+# SUN MESSAGE
+#~ msgid "Folder already exists"
+#~ msgstr "Ce dossier existe déjà"
+
+# SUN MESSAGE
+#~ msgid "Folder doesn't exist yet"
+#~ msgstr "Ce dossier n'existe pas"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return"
+#~ msgstr "ajouter un retour chariot"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Open..."
+#~ msgstr "_Ouvrir..."
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_\tal File"
+#~ msgstr "_Restaurer le fichier d'origine"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Convert Content"
+#~ msgstr "_Convertir le contenu"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_About"
+#~ msgstr "_À propos de"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Sub-folder:"
+#~ msgstr "Sous-dossier :"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "User intervention:"
+#~ msgstr "Intervention de l'utilisateur :"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "text"
+#~ msgstr "texte"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore %s and add Carriage Return"
+#~ msgstr "Restaurer %s et ajouter un retour chariot"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by adding Carriage Return"
+#~ msgstr "Restaurer en ajoutant un retour chariot"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8"
+#~ msgstr "Restaurer le format UTF8"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner name conversion"
+#~ msgstr "Conversion du nom du contrôleur de système de fichiers"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return"
+#~ msgstr "supprimer le retour chariot"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return only"
+#~ msgstr "supprimer le retour chariot uniquement"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return only"
+#~ msgstr "ajouter un retour chariot uniquement"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Preferences"
+#~ msgstr "_Préférences"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Encode list:"
+#~ msgstr "Liste de codages :"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner content conversion"
+#~ msgstr "Conversion du contenu du contrôleur de système de fichiers"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s"
+#~ msgstr "Contenu du fichier : convertir depuis %s"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s and delete Carriage Return"
+#~ msgstr ""
+#~ "Contenu du fichier : convertir depuis %s et supprimer le retour chariot"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - delete Carriage Return only"
+#~ msgstr "Contenu du fichier : supprimer le retour chariot uniquement"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "%s doesn't exist yet"
+#~ msgstr "%s n'existe pas"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8 and delete Carriage Return"
+#~ msgstr "Restaurer le format UTF8 et supprimer le retour chariot"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by deleting Carriage Return"
+#~ msgstr "Restaurer en supprimant le retour chariot"
+
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr ""
+#~ "Liste de suffixes. Tout fichier dont le suffixe appartient à la liste est "
+#~ "pris en charge par fsexam en tant que fichier texte simple."
+
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "Valable uniquement pour la conversion du nom du fichier. Mode récursif : "
+#~ "si vous l'activez, fsexam convertira récursivement le nom du fichier et "
+#~ "le sous-répertoire en UTF8."
+
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "Valable uniquement pour la conversion du nom du fichier. Mode "
+#~ "automatique : si vous l'activez, fsexam effectuera  automatiquement une "
+#~ "conversion optimale sans intervention de l'utilisateur. Autrement, une "
+#~ "boîte de dialogue propose plusieurs solutions de conversion parmi "
+#~ "lesquelles l'utilisateur doit choisir la meilleure."
+
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "Liste des noms de codages disponibles pour la langue spécifique. Notez "
+#~ "que l'ordre de la liste est important. fsexam considère le premier "
+#~ "élément comme le plus indiqué pour réussir la conversion."
+
+#~ msgid "suffix list"
+#~ msgstr "liste de suffixes"
+
+#~ msgid "Directory already exists"
+#~ msgstr "Un répertoire de ce nom existe déjà"
+
+#~ msgid "File already exists"
+#~ msgstr "Un fichier de ce nom existe déjà"
+
+#~ msgid "Null directory"
+#~ msgstr "Répertoire null"
+
+#~ msgid "Apply by name"
+#~ msgstr "Appliquer par nom"
+
+#~ msgid "Apply by content"
+#~ msgstr "Appliquer par contenu"
+
+#~ msgid "Peek content"
+#~ msgstr "Examiner le contenu"
+
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "Erreur lors du chargement de l'icône %s\n"
+
+#~ msgid "popen error, please try again!"
+#~ msgstr "Erreur popen, réessayez."
+
+#~ msgid "Not one plain text"
+#~ msgstr "Texte non simple"
+
+#~ msgid "File content candidate window"
+#~ msgstr "Fenêtre des candidats du contenu du fichier"
+
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "Séquence d'octets pas encore reconnue"
+
+#~ msgid "File content - open failure"
+#~ msgstr "Contenu du fichier - échec de l'ouverture"
+
+#~ msgid "File content - write error"
+#~ msgstr "Contenu du fichier - échec de l'enregistrement"
+
+#~ msgid "File content - successful conversion"
+#~ msgstr "Contenu du fichier - conversion réussie"
+
+#~ msgid "File content - UTF8 alreay"
+#~ msgstr "Contenu du fichier - déjà UTF8"
+
+#~ msgid "Directory node"
+#~ msgstr "Noeud du répertoire"
+
+#~ msgid "File content - successful undo"
+#~ msgstr "Contenu du fichier - annulation réussie"
+
+# SUN MESSAGE
+#~ msgid "No permission to rename"
+#~ msgstr "Renommage non autorisé"
+
+# SUN MESSAGE
+#~ msgid "File Hierarchy"
+#~ msgstr "Hiérarchie des fichiers"
+
+# SUN MESSAGE
+#~ msgid "No directory specified"
+#~ msgstr "Aucun répertoire n'est spécifié"
+
+# SUN MESSAGE
+#~ msgid "Directory Selection"
+#~ msgstr "Sélection du répertoire"
+
+# SUN MESSAGE
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+# SUN MESSAGE
+#~ msgid "Report Pane"
+#~ msgstr "Sous fenêtre Rapport"
+
+# SUN MESSAGE
+#~ msgid "Welcome"
+#~ msgstr "Bienvenue"
+
+# SUN MESSAGE
+#~ msgid "Recursive Mode"
+#~ msgstr "Mode récursif"
+
+# SUN MESSAGE
+#~ msgid "Automatic Conversion"
+#~ msgstr "Conversion automatique"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Restore Original File"
+#~ msgstr "_Restaurer le fichier d'origine"
+
+# SUN MESSAGE
+#~ msgid "Conversion failure"
+#~ msgstr "Échec de conversion"
+
+# SUN MESSAGE
+#~ msgid "UTF8 already"
+#~ msgstr "Déjà en UTF8"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/hu.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,1426 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: new_fsexam.po\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2004-05-31 17:29+0200\n"
+"Last-Translator: INBUSS Kft <[email protected]>\n"
+"Language-Team: Hungarian <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:3
+#, fuzzy
+msgid "<b>Encoding List:</b>"
+msgstr "Kódolások listája"
+
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:8
+#, fuzzy
+msgid "<b>_Report Pane</b>"
+msgstr "Jelentés mező"
+
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:14
+#, fuzzy
+msgid "Content Conversion _Mode"
+msgstr "Fájltartalom - konverziós hiba"
+
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:27
+#, fuzzy
+msgid "File Content _Mode"
+msgstr "Fájltartalom"
+
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+#, fuzzy
+msgid "File Encoding Examiner"
+msgstr "Fájlrendszer vizsgáló"
+
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:31
+#, fuzzy
+msgid "File content conversion mode"
+msgstr "Fájltartalom - konverziós hiba"
+
+#: ../src/fsexam.glade2.h:32
+#, fuzzy
+msgid "File name conversion mode"
+msgstr "Fájlnév - konverziós hiba"
+
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr ""
+
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:74
+#, fuzzy
+msgid "_Auto Conversion"
+msgstr "Automatikus konverzió"
+
+#: ../src/fsexam.glade2.h:75
+#, fuzzy
+msgid "_Auto Detection"
+msgstr "_Művelet"
+
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "_Fájl"
+
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "_Súgó"
+
+#: ../src/fsexam.glade2.h:84
+#, fuzzy
+msgid "_Name Conversion Mode"
+msgstr "Konverziós hiba"
+
+#: ../src/fsexam.glade2.h:85
+#, fuzzy
+msgid "_Preview Content"
+msgstr "Tartalom előnézet"
+
+#: ../src/fsexam.glade2.h:86
+#, fuzzy
+msgid "_Recursive Mode"
+msgstr "Rekurzív mód"
+
+#: ../src/fsexam.glade2.h:87
+#, fuzzy
+msgid "_Report Pane"
+msgstr "Jelentés mező"
+
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "_Nézet"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr ""
+
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+
+#: ../src/callbacks.c:124
+#, fuzzy
+msgid "No Selection"
+msgstr "Könyvtár kiválasztás"
+
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr ""
+
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr ""
+
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr ""
+
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr ""
+
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr ""
+
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr ""
+
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr ""
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr ""
+
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr ""
+
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr ""
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr ""
+
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr ""
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr ""
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr ""
+
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr ""
+
+#: ../src/fsexam-convname.c:973
+#, fuzzy, c-format
+msgid "Candidate list:\n"
+msgstr "Lehetséges jelöltek"
+
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr ""
+
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr ""
+
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr ""
+
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr ""
+
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr ""
+
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr ""
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:206
+#, fuzzy
+msgid "The supported encoding list:\n"
+msgstr "kódolás lista"
+
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+#, fuzzy
+msgid "_Description"
+msgstr "_Művelet"
+
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+#, fuzzy
+msgid "_Encoding"
+msgstr "Kódolások listája"
+
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr ""
+
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+#, fuzzy
+msgid "File name is UTF-8 already"
+msgstr "Fájlnév - már UTF8"
+
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+#, fuzzy
+msgid "File content is UTF-8 already"
+msgstr "Fájltartalom - már UTF8"
+
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr ""
+
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+#, fuzzy
+msgid "File doesn't exist"
+msgstr "A fájl még nem létezik"
+
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr ""
+
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr ""
+
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr ""
+
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr ""
+
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr ""
+
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr ""
+
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr ""
+
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+#, fuzzy
+msgid "Symlink target don't exist"
+msgstr "A könyvtár még nem létezik"
+
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+#, fuzzy
+msgid "Can't convert given file"
+msgstr "Konverziós hiba"
+
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr ""
+
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+#, fuzzy
+msgid "No proper permission"
+msgstr "Nincsen olvasási jog"
+
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr ""
+
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr ""
+
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr ""
+
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr ""
+
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr ""
+
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr ""
+
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr ""
+
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr ""
+
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr ""
+
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr ""
+
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr ""
+
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr ""
+
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr ""
+
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr ""
+
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr ""
+
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr ""
+
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr ""
+
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr ""
+
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr ""
+
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr ""
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr ""
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr ""
+
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, fuzzy, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "Hiba történt a súgó megjelenítése közben: %s"
+
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "Nincsen olvasási jog"
+
+#: ../src/fsexam-ui.c:785
+#, fuzzy
+msgid "No folder specified"
+msgstr "Nincsen könyvtár beállítva"
+
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr ""
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+#, fuzzy
+msgid "Symlink target doesn't exist"
+msgstr "A könyvtár még nem létezik"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+
+#: ../src/fsexam-ui.c:1316
+#, fuzzy
+msgid "Folder Selection"
+msgstr "Lehetséges jelöltek"
+
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr ""
+"Az fsexam elősegíti a fájl nevének és tartalmának UTF8 kódolásúvá való "
+"átalakítását"
+
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr ""
+
+#: ../src/fsexam-ui.c:2577
+#, fuzzy
+msgid "No selection"
+msgstr "Könyvtár kiválasztás"
+
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2696
+#, fuzzy
+msgid "Not plain text"
+msgstr "Nincs egyszerű szöveg"
+
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr ""
+
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr ""
+
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr ""
+
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr ""
+
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr ""
+
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr ""
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr ""
+
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr ""
+
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr ""
+
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr ""
+
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr ""
+
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr ""
+
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr ""
+
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr ""
+
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr ""
+
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr ""
+
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:1
+#, fuzzy
+msgid "Encoding auto detection"
+msgstr "Lehetséges jelöltek"
+
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[ISO8859-1]"
+
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "automatikus üzemmód"
+
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "kódolás lista"
+
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "rekurzív mód"
+
+#: ../data/fsexam.desktop.in.h:2
+#, fuzzy
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "UTF8 adat és fájlnév konverziót lehetővé tevő program"
+
+#, fuzzy
+#~ msgid "Display help content"
+#~ msgstr "Fájltartalom"
+
+#, fuzzy
+#~ msgid "Preference setting"
+#~ msgstr "Beállítások módosítása"
+
+#~ msgid "No permission to rename"
+#~ msgstr "Nincs engedélye az átnevezéshez"
+
+#~ msgid "UTF8 already"
+#~ msgstr "Már eleve UTF8-as"
+
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+#~ msgid "Welcome"
+#~ msgstr "Üdvözlöm"
+
+#~ msgid "File Hierarchy"
+#~ msgstr "Fájl hierarchia"
+
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr ""
+#~ "Utótagok listája. Minden olyan fájl, melynek neve a lista valamelyik "
+#~ "tagjára végződik, egyszerű szöveges állományként kerül feldolgozásra."
+
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "Csak fájlnév konverzió esetére. A rekurzió bekapcsolása esetén az fsexam "
+#~ "a fájlok és almappák neveit is UTF8-ra konvertálja."
+
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "Csak fájlnév konverzió esetére. Az automatikus üzemmód bekapcsolás esetén "
+#~ "az fsexam automatikusan a legjobb konverziós módszert alkalmazza a "
+#~ "felhasználó megkérdezése nélkül. Kikapcsolva minden esetben egy "
+#~ "párbeszédablak jelenik meg, melyből a felhasználó választhatja ki a "
+#~ "megfelelő konverziót. "
+
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "A nyelvhez elérhető kódolási eljárások nevei. A sorrend jelzi az egyes "
+#~ "kódolások elterjedtségét. Az fsexam számára a legjobb a legkorábbi "
+#~ "kódolás amelyből a konverió sikeresen elvégezhető."
+
+#~ msgid "suffix list"
+#~ msgstr "utótag lista"
+
+#~ msgid "Directory already exists"
+#~ msgstr "A mappa már létezik"
+
+#~ msgid "File already exists"
+#~ msgstr "A fájl már létezik"
+
+#~ msgid "Null directory"
+#~ msgstr "Üres mappa"
+
+#~ msgid "Apply by name"
+#~ msgstr "Név alapján"
+
+#~ msgid "Apply by content"
+#~ msgstr "Tartalom alapján"
+
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "Hiba az ikon (%s) betöltése közben\n"
+
+#~ msgid "popen error, please try again!"
+#~ msgstr "popen hiba, próbálja újra"
+
+#~ msgid "File content candidate window"
+#~ msgstr "Fájltartalom jelölt ablak"
+
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "Bájtsorozat még nem felismerhető"
+
+#~ msgid "File content - open failure"
+#~ msgstr "Fájltartalom - megnyitási hiba"
+
+#~ msgid "File content - write error"
+#~ msgstr "Fájltartalom - írási hiba"
+
+#~ msgid "File content - successful conversion"
+#~ msgstr "Fájltartalom - sikeres konverzió"
+
+#~ msgid "Directory node"
+#~ msgstr "Mappa pont"
+
+#~ msgid "File content - successful undo"
+#~ msgstr "Fájltartalom - sikeres visszavonás"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/it.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2477 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2008-02-26 18:32+0100\n"
+"Last-Translator: [email protected]\n"
+"Language-Team: [email protected]\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr "<b>Codifica disponibile:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr "<b>Impostazione di conversione:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr "<b>Elenco di codifica:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr "<b>Codifica selezionata:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr "<b>Risultati ricerca</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr "<b>Risultato _dryrun</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr "<b>_Posizione:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr "<b>_Riquadro rapporti</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr "Aggiungi o rimuovi codifica"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr "Archivia o comprimi file"
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr "Cancella i risultati ricerc_a"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr "Cancella i risultati ricerca"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr "_Modalità conversione contenuto"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr "Converti"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr ""
+"Converti il nome o il contenuto del file in base al risultato dryrun "
+"precedente"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr ""
+"Converti il file usando automaticamente il primo candidato anziché una "
+"conversione interattiva"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr ""
+"Converti i nomi o il contenuto dei file selezionati in base alla modalità "
+"corrente"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr "Converti senza rilevare se la codifica è UTF-8 o di tipo diverso"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr "Dati modificati superiori a:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr ""
+"Rileva automaticamente la codifica del nome del file o del contenuto del file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr "Non controllar_e il contenuto del collegamento simbolico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr ""
+"Non cercare di mantenere la coerenza tra il file di collegamento simbolico e "
+"il relativo file di destinazione"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr "Dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr ""
+"Esegui dryrun senza modificare il nome o il contenuto di alcun file del disco"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr "Esegui dryrun senza modificare i file su disco"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr "_Modalità Contenuto file"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr "Esaminatore di codifica file"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr "Preferenze dell'esaminatore di codifica file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr "Modalità _Nome file"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr "Modalità di conversione del contenuto del file"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr "Modalità di conversione del nome del file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr "Segui collegamento _simbolico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr "Segui collegamento simbolico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr "Conversione forzata"
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr "Gestisci file _nascosti"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr "Gestisci file _remoti"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr "Nascondi risultati ricerca"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr "Lunghezza cronologia:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr "Nome del file di log:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr "Cerca nella cartella:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr "Il nome contiene:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr "Apri file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr "Di proprietà del gruppo:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr "Di proprietà dell'utente:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr "Elaborazione archivio o compressione file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr "Elaborazione file nascosto"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr "Elaborazione di file non locali come file NFS"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr "Elaborazione di un tipo speciale di file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr "File di handle ricorsivi nella cartella"
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr "Ripristina"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr ""
+"Ripristina il nome o il contenuto dei file indicati in base alla modalità di "
+"conversione"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr "Ripristina il nome o il contenuto dei file selezionati"
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr "Scenario"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr "Risultati ricerca"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr "Ricerca _file..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr "Ricerca i file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr "Ricerca i file in base ai criteri indicati dall'utente"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr "Seleziona una cartella"
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr "Gestione file speciale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr "Stato modificato superiore a:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr "Interrompi _ricerca"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr "Interrompe la ricerca dei file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+"Il numero di conversione è stato memorizzato. La conversione simultanea di "
+"più file viene calcolata come 1 volta"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr "Annulla l'ultima azione"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr "Usa il file di log"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr "Usa il file di log"
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr "Conversione _automatica"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr "Riconoscimento _automatico"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr "_Contenuto"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr "_Converti"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr "_Dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr "Riquadro dei risultati _dryrun"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr "_Modifica"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "_File"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr "Conversione _forzata"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "_Guida"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr "Modalità di conversione del _nome"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr "_Anteprima contenuto"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "_Modalità ricorsiva"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "_Riquadro rapporto"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr "_Ripristina"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr "_Scenario"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "_Visualizza"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr "Un'istanza di fsexam è già in esecuzione.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+"Avvertenza: impossibile convertire la codifica %s in un nome di codifica "
+"canonico. Verrà ignorata.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+"Nessuna codifica fornita. Selezionare il pulsante Riconoscimento automatico "
+"nella finestra di dialogo delle preferenze, oppure aggiungere la codifica "
+"nella finestra di dialogo della codifica.\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr "Nessuna selezione"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr "Nessun file da gestire"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr "Nessuna azione da annullare"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr ""
+"Nessun risultato. Per ulteriori informazioni, consultare il riquadro "
+"rapporti.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr "Interruzione ricerca in corso..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr "I risultati della ricerca sono stati cancellati."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+"%s non è un nome di codifica supportato. Utilizzare \"fsexamc -l\" per "
+"elencare le codifiche supportate.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr ""
+"Il sistema in uso non supporta la conversione da \"%s\" a \"UTF-8\". "
+"L'operazione verrà ignorata.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr "I parametri della ricerca(1) sono vuoti.\n"
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr "Ricerca in corso..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr "Ricerca terminata"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr "Errore durante l'esecuzione del comando di ricerca."
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr "Trovati %d file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr "Ricerca interrotta"
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr "[Contenuto] %s - >%s"
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr "Nuova creazione del collegamento simbolico eseguita"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr "[Nome] %s - >%s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr "Elenco candidati:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr "\t[N.] Nome codifica\tRisultato conversione\n"
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr "Nessuna codifica valida.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr "Selezionare No (\"s\" per ignorare): "
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr "Selezionare un candidato"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr "Non visualizzare più questo messaggio"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr "Cinese tradizionale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr "Cinese tradizionale(Hong Kong)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr "Centroeuropeo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr "Cirillico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr "Occidentale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr "Greco"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr "Turco"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr "Ebraico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr "Arabo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr "Baltico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr "Vietnamita"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr "Europa occidentale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr "Europa centrale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr "Russo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr "Portoghese"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr "Islandese"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr "Francese canadese"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr "Nordico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr "Cirillico/Russo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr "Tailandese"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr "Giapponese"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr "Coreano"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr "Cinese semplificato"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr "Celtico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr "Rumeno"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr "Sud-europeo"
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr "La codifica \"%s\" non è supportata.\n"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr "Elenco di codifica supportato:\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr "_Descrizione"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr "_Codifica"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr "Operazione riuscita"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr "Il nome del file è già in formato UTF-8"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr "Il contenuto del file è già in formato UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr "Il nuovo nome è uguale al precedente"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr "Il file non esiste"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr "Nessuna memoria"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr "Indice di codifica non valido"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr "Impossibile aprire il file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr "Impossibile rinominare il file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr "Impossibile scrivere sul file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr "L'elenco di codifica fornito non è idoneo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr "Non è un file normale"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr "La destinazione del collegamento simbolico non esiste"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr "Impossibile convertire il file specificato"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr "Impossibile leggere il file"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr "Nessuna autorizzazione valida"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr ""
+"Impossibile ricollegare il collegamento simbolico che interromperà il "
+"collegamento simbolico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr ""
+"Il file del collegamento simbolico è stato eliminato. Impossibile ricrearlo."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr "Formato del file dryrun non valido"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr "Impossibile ottenere la directory attuale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr "Impossibile modificare la directory"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr "Nessuna informazione sulla cronologia del file corrente"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr "Non è indicato alcun file o tutti i file sono già in formato UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr "Nome file già esistente. Verrà aggiunto il suffisso \"utf-8\"."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr "Ignora file nascosto"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr "Ignora file non locale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr "File vuoto"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr "Nessun parametro"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr "Errore durante il filtraggio"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr "Tipo di file non supportato"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr "Overflow del buffer"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr "Conversione annullata"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr "Impossibile scrivere sul file di risultato dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr "Impossibile aprire il file di risultato dryrun"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr "Impossibile convertire il nome file in URI"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr "Si è verificato un errore sconosciuto"
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr "La codifica \"%s\" non è supportata\n"
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr "Salvare questo elenco di codifica definitivamente?"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "Errore durante la visualizzazione della guida: %s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+"Riepilogo approssimativo: %d specificati, %d totali, %d ignorati, %d non "
+"riusciti, %d riusciti\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+"Impossibile eseguire il comando tar perché le impostazioni internazionali "
+"iso 8859-1 non sono presenti. Per ulteriori informazioni consultare la man "
+"page fsexan(1)."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr "Tipo di file non supportato"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+"Il file di archivio è vuoto oppure si trova in un percorso assoluto, "
+"pertanto non è possibile convertire i file in questo file di archivio"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "Autorizzazioni di lettura mancanti"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "Nessuna cartella specificata"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr "Il file non esiste o non si dispone delle autorizzazioni di accesso."
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr "Cartella vuota"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr "La destinazione del collegamento simbolico non esiste"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr "Il file selezionato non è vuoto. Ignorarlo?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+"Il file selezionato non è in formato UTF-8; si consiglia di utilizzare un "
+"nome file di formato UTF-8.\n"
+"\n"
+" Convertirlo in UTF-8?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+"Impossibile convertire %s in UTF-8: %s.\n"
+"\n"
+"Potrebbe verificarsi una conversione parziale.\n"
+" Aggiornare la directory e selezionare nuovamente il file."
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "Selezione cartella"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr ""
+"fsexam consente di effettuare la migrazione dei nomi dei file e del loro "
+"contenuto dalla codifica precedente a UTF8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr "File \"%s\" mancante."
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr "Nessuna selezione"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "Impossibile eseguire l'anteprima di più selezioni"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr "Impossibile visualizzare l'anteprima del contenuto della cartella"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr "Impossibile accedere"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr "File non normale"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "Non è in formato testo normale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr "È in esecuzione un altro fsexam. Terminerà a breve\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr "Eseguire \"fsexam -help\" per informazioni sull'utilizzo.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr ""
+"Avvertenza: la cronologia specificata è troppo breve; verrà reimpostato il "
+"valore predefinito %d\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr "Immettere il nome del file:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr ""
+"Errore: nessuna codifica specificata e riconoscimento automatico "
+"disattivato.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr "Impossibile aprire il file dryrun %s\n"
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr "Utilizzo:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr "    fsexam [OPZIONE]... [file] \n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+"\n"
+"Opzioni supportate:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr ""
+"    -a, --riconoscimento-automatico      Abilita il riconoscimento "
+"automatico della codifica\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr "    -d risultato-dry-run      Specifica il file di risultato dryrun\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr "    -E nome-modulo         Abilita la gestione file speciale\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr ""
+"    -e elenco-codifica       Specifica l'elenco di codifica aggiuntivo\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr "    -F, --conversione-forzata    Modalità di conversione forzata\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr ""
+"    -f \"espressione\"        Specifica i criteri di filtraggio dei file\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr "    -H, --nascosto          Attiva la gestione dei file nascosti\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr "    -b, --conversione-automatica  Modalità interattiva\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr "    -l, codifica-elenco    Elenca tutte le codifiche supportate\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr "    -k, --nessun-controllo-contenuto-collegamento simbolico\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+"                           Nessun controllo di coerenza tra\n"
+"                           il collegamento simbolico e il relativo nome di "
+"destinazione\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr "    -L file di log             Specifica il file di log\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr "    -n, --dry-run          Modalità dryrun\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr "    -P, --aggiungi-elenco-codifica\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Aggiunge l'elenco di codifica specificato da\n"
+"                           \"-e\" all'elenco di codifica predefinito\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr "    -p, --anteponi-elenco-codifica\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Antepone l'elenco di codifica specificato da\n"
+"                           \"-e\" all'elenco di codifica predefinito\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr "    -R, --ricorsivo        Modalità ricorsiva\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr "    -r, --remoto           Attiva la gestione dei file NFS\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr "    -S, --salva-elenco-codifica\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+"                           Salva l'elenco di codifica specificato da\n"
+"                           \"-e\" definitivamente\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+"    -s, --ripristina       Ripristina il nome originale o\n"
+"                           il contenuto dei file specificati\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+"    -t, --conv-contenuto   Converte il contenuto anziché\n"
+"                           il nome del file\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr "    -w, --segui           Segue il collegamento simbolico\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr "    -V, --versione         Stampa le informazioni sulla versione\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr ""
+"    -?, --guida            Stampa queste informazioni sull'utilizzo di "
+"fsexam\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr "Riconoscimento automatico della codifica"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr "Gestione dei file nascosti"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr "Lunghezza cronologia"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr ""
+"Mantieni la coerenza tra il collegamento simbolico e il relativo riferimento"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr "Nome del file di log"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr "Gestione dei file NFS"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr "Modulo del tipo di file speciale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr "Scrivi/Non scrivere log"
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[ISO8859-1,ISO8859-3,ISO8859-5,ISO8859-8,ISO8859-9,ISO8859-10]"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "modalità automatica"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "elenco codifiche"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "modalità ricorsiva"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "Consenti la migrazione dalla codifica esistente a Unicode (UTF-8)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "*"
+#~ msgstr "*"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the dryrun result pane"
+#~ msgstr "Visualizza il riquadro dei risultati dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the report pane"
+#~ msgstr "Visualizza il riquadro rapporti"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the search result window"
+#~ msgstr "Visualizza la finestra dei risultati di ricerca"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preview plain text file content"
+#~ msgstr "Anteprima del contenuto file in formato di testo normale"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Select A File"
+#~ msgstr "Seleziona un file"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "[Content] %s - >%s"
+#~ msgstr "[Contenuto] %s - >%s"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display help content"
+#~ msgstr "Visualizza il contenuto della guida"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preference setting"
+#~ msgstr "Impostazione preferenze"
+
+# SUN MESSAGE
+#~ msgid "File has been emptied, can not be restored!"
+#~ msgstr "Il file è stato azzerato, impossibile ripristinarlo."
+
+# SUN MSG
+# SUN MESSAGE
+#~ msgid "Folder already exists"
+#~ msgstr "La cartella esiste già"
+
+# SUN MESSAGE
+#~ msgid "Folder doesn't exist yet"
+#~ msgstr "La cartella non esiste ancora"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return"
+#~ msgstr "aggiungi ritorno a capo"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Open..."
+#~ msgstr "_Apri..."
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Restore Original File"
+#~ msgstr "_Ripristina file originale"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Convert Content"
+#~ msgstr "_Converti contenuto"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_About"
+#~ msgstr "_Informazioni"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Sub-folder:"
+#~ msgstr "Sottocartella:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "User intervention:"
+#~ msgstr "Intervento dell'utente:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "text"
+#~ msgstr "testo"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore %s and add Carriage Return"
+#~ msgstr "Ripristina %s e aggiungi ritorno a capo"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by adding Carriage Return"
+#~ msgstr "Ripristina aggiungendo i ritorni a capo"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8"
+#~ msgstr "Ripristina UTF8"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner name conversion"
+#~ msgstr "Conversione dei nomi dell'Analizzatore del file system"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return"
+#~ msgstr "elimina ritorni a capo"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return only"
+#~ msgstr "elimina solo ritorni a capo"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return only"
+#~ msgstr "aggiungi solo ritorni a capo"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Preferences"
+#~ msgstr "_Preferenze"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Encode list:"
+#~ msgstr "Elenco di codifica:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner content conversion"
+#~ msgstr "Conversione del contenuto dell'Analizzatore del file system"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s"
+#~ msgstr "Contenuto del file - conversione da %s"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s and delete Carriage Return"
+#~ msgstr ""
+#~ "Contenuto del file - conversione da %s ed eliminazione dei ritorni a capo"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - delete Carriage Return only"
+#~ msgstr "Contenuto del file - eliminazione solo ritorni a capo"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "%s doesn't exist yet"
+#~ msgstr "%s non esiste ancora"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8 and delete Carriage Return"
+#~ msgstr "Ripristina UTF8 ed elimina i ritorni a capo"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by deleting Carriage Return"
+#~ msgstr "Ripristina eliminando i ritorni a capo"
+
+# SUN MSG
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr ""
+#~ "Un elenco di suffissi. Tutti i file il cui suffisso è incluso nell'elenco "
+#~ "vengono considerati da fsexam come file di testo normale."
+
+# SUN MSG
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "Applicabile solo per la conversione dei nomi dei file. Abilitando questa "
+#~ "modalità, fsexam convertirà i nomi dei file e delle sottodirectory in "
+#~ "modo ricorsivo."
+
+# SUN MSG
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "Applicabile solo per la conversione dei nomi dei file. Abilitando questa "
+#~ "modalità, fsexam eseguirà una conversione automatica senza richiedere "
+#~ "l'intervento dell'utente. Diversamente, una finestra di dialogo mostrerà "
+#~ "le possibili conversioni e l'utente dovrà scegliere quella più "
+#~ "appropriata."
+
+# SUN MSG
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "L'elenco delle codifiche di origine disponibili per la lingua in oggetto. "
+#~ "Si noti che l'ordine nell'elenco è importante. fsexam utilizzerà la prima "
+#~ "codifica che consente di eseguire correttamente la conversione."
+
+# SUN MSG
+#~ msgid "suffix list"
+#~ msgstr "elenco suffissi"
+
+# SUN MSG
+#~ msgid "Directory already exists"
+#~ msgstr "La directory esiste già"
+
+# SUN MSG
+#~ msgid "File already exists"
+#~ msgstr "Il file esiste già"
+
+# SUN MSG
+#~ msgid "Null directory"
+#~ msgstr "Directory nulla"
+
+# SUN MSG
+#~ msgid "Apply by name"
+#~ msgstr "Applica per nome"
+
+# SUN MSG
+#~ msgid "Apply by content"
+#~ msgstr "Applica per contenuto"
+
+# SUN MSG
+#~ msgid "Peek content"
+#~ msgstr "Analizza contenuto"
+
+# SUN MSG
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "Impossibile caricare l'icona %s\n"
+
+# SUN MSG
+#~ msgid "popen error, please try again!"
+#~ msgstr "Errore di popen, riprovare."
+
+# SUN MSG
+#~ msgid "Not one plain text"
+#~ msgstr "Non in formato testo normale"
+
+# SUN MSG
+#~ msgid "File content candidate window"
+#~ msgstr "Finestra dei possibili contenuti del file"
+
+# SUN MSG
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "Sequenza di byte non ancora riconosciuta"
+
+# SUN MSG
+#~ msgid "File content - open failure"
+#~ msgstr "Contenuto del file - errore di apertura"
+
+# SUN MSG
+#~ msgid "File content - write error"
+#~ msgstr "Contenuto del file - errore di scrittura"
+
+# SUN MSG
+#~ msgid "File content - successful conversion"
+#~ msgstr "Contenuto del file - conversione riuscita"
+
+# SUN MSG
+#~ msgid "File content - UTF8 alreay"
+#~ msgstr "Contenuto del file - già in formato UTF8"
+
+# SUN MSG
+#~ msgid "Directory node"
+#~ msgstr "Nodo directory"
+
+# SUN MSG
+#~ msgid "File content - successful undo"
+#~ msgstr "Contenuto del file - annullamento riuscito"
+
+# SUN MESSAGE
+#~ msgid "No permission to rename"
+#~ msgstr "Autorizzazioni insufficienti per rinominare"
+
+# SUN MESSAGE
+#~ msgid "File Hierarchy"
+#~ msgstr "Gerarchia di file"
+
+# SUN MESSAGE
+#~ msgid "No directory specified"
+#~ msgstr "Nessuna directory specificata"
+
+# SUN MESSAGE
+#~ msgid "Directory Selection"
+#~ msgstr "Selezione della directory"
+
+# SUN MESSAGE
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+# SUN MESSAGE
+#~ msgid "Report Pane"
+#~ msgstr "Riquadro rapporto"
+
+# SUN MESSAGE
+#~ msgid "Welcome"
+#~ msgstr "Benvenuto"
+
+# SUN MESSAGE
+#~ msgid "Recursive Mode"
+#~ msgstr "Modalità ricorsiva"
+
+# SUN MESSAGE
+#~ msgid "Automatic Conversion"
+#~ msgstr "Conversione automatica"
+
+# SUN MESSAGE
+#~ msgid "Conversion failure"
+#~ msgstr "Errore di conversione"
+
+# SUN MESSAGE
+#~ msgid "UTF8 already"
+#~ msgstr "Già in formato UTF8"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/ja.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2692 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2004-06-16 15:05+0900\n"
+"Last-Translator: [email protected]\n"
+"Language-Team: [email protected]\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr "<b>使用可能なエンコーディング:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr "<b>変換設定:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr "<b>エンコーディングリスト:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr "<b>選択されたエンコーディング:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr "<b>検索結果</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr "<b>ドライラン結果(_D)</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr "<b>場所(_L):</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr "<b>報告区画(_R)</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr "エンコーディングの追加または削除"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr "ファイルのアーカイブまたは圧縮"
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr "検索結果のクリアー(_H)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr "検索結果をクリアーする"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr "内容変換モード(_M)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr "変換"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr "前回のドライラン結果に基づいてファイルの名前または内容を変換する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr ""
+"対話形式による変換ではなく、最初の候補を自動的に使用してファイルを変換する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr "選択されたファイルの名前または内容を現在のモードに従って変換する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr "エンコーディングが UTF-8 であるかどうかを検出しないで変換する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr "データは次の回数を超えて変更されました:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr "ファイル名またはファイル内容のエンコーディングを自動的に検出する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr "シンボリックリンクの内容をチェックしない(_K)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr ""
+"シンボリックリンクファイルとそのターゲットファイルとの整合性を維持しない"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr "ドライラン"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr "ディスク内のファイルの名前または内容を変更しないでドライランする"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr "ディスク上のファイルを変更しないでドライランする"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr "ファイル内容モード(_M)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr "ファイルエンコーディング検査器"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr "ファイルエンコーディング検査器の設定"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr "ファイル名モード(_N)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr "ファイル内容変換モード"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr "ファイル名変換モード"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr "シンボリックリンクに従う(_S)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr "シンボリックリンクに従う"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr "強制変換"
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr "非表示のファイルを処理する(_H)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr "リモートファイルを処理する(_R)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr "検索結果を表示しない"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr "履歴の長さ:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr "ログファイル名:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr "検索するフォルダ:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr "名前に含まれる文字列:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr "ファイルを開く"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr "次のグループによって所有:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr "次のユーザーによって所有:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr "アーカイブまたは圧縮ファイルを処理しています"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr "非表示のファイルを処理しています"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr "ローカルではないファイル (NFS ファイルなど) を処理しています"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr "特殊なタイプのファイルを処理しています"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr "フォルダにあるファイルを再帰的に処理する"
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr "復元"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr "指定されたファイルの名前または内容を変換モードに従って復元する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr "選択されたファイルの名前または内容を復元する"
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr "シナリオ"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr "検索結果"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr "ファイルの検索(_F)..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr "ファイルを検索する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr "ユーザーが指定した条件に従ってファイルを検索する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr "フォルダの選択"
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr "特殊なファイルの処理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr "ステータスは次の回数を超えて変更されました:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr "検索の中止(_S)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr "ファイルの検索を中止する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+"変換の回数が保存されました。複数のファイルを一度に変換した場合のカウント数は "
+"1 です"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr "最後に行なった動作を元に戻す"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr "ログファイルの使用"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr "ログファイルを使用する"
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr "自動変換(_A)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr "自動検出(_A)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr "内容(_C)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr "変換(_C)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr "ドライラン(_D)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr "ドライラン結果区画(_D)"
+
+# SUN REVIEWED
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr "編集(_E)"
+
+# SUN REVIEWED
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "ファイル(_F)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr "強制変換(_F)"
+
+# SUN REVIEWED
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "ヘルプ(_H)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr "名前変換モード(_N)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr "内容をプレビュー(_P)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "再帰モード(_R)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "報告区画(_R)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr "復元(_R)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr "シナリオ(_S)"
+
+# SUN REVIEWED
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "表示(_V)"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr "fsexam の 1 つのインスタンスがすでに実行されています。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+"警告: エンコーディング %s は正規のエンコーディング名に変換できないため、無視"
+"されます。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+"エンコーディングが指定されていません。設定の変更ダイアログの「自動判別」ボタ"
+"ンをチェックするか、またはエンコーディングダイアログでエンコーディングを追加"
+"してください。\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr "選択なし"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr "処理の必要なファイルはありません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr "何も元に戻す必要はありません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr "結果はありません。詳細については、レポート区画を参照してください。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr "検索を中止しています..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr "検索結果はクリアーされました。"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+"%s はサポートされているエンコーディング名ではありません。'fsexamc -l'を使用す"
+"ると、サポートされているエンコーディングが一覧表示されます。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr ""
+"使用しているシステムは '%s' から 'UTF-8' への変換をサポートしていないため、無"
+"視されます。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr "find(1) のパラメータが空です。\n"
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr "検索しています..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr "検索が完了しました"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr "検索コマンドの実行中にエラーが発生しました。"
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr "%d 個のファイルが見つかりました"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr "検索は中止されました"
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr "[内容] %s -> %s"
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr "シンボリックリンクの再作成に成功しました"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr "[名前] %s -> %s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr "候補のリスト:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr "\t[番号] エンコーディング名\t変換結果\n"
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr "適切なエンコーディングがありません。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr "番号を選択してください (スキップする場合は 's'): "
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr "候補を選択してください"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr "今後、このメッセージを表示しない"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr "繁体字中国語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr "繁体字中国語 (香港)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr "中央ヨーロッパ言語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr "キリル言語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr "欧米"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr "ギリシャ語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr "トルコ語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr "ヘブライ語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr "アラビア語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr "バルト語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr "ベトナム語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr "西ヨーロッパ"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr "中央ヨーロッパ"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr "ロシア語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr "ポルトガル語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr "アイスランド語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr "フランス語 (カナダ)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr "ノルウェー語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr "キリル言語/ロシア語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr "タイ語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr "日本語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr "韓国語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr "簡体字中国語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr "ケルト語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr "ルーマニア語"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr "南ヨーロッパ言語"
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr "エンコーディング '%s' はサポートされていません。\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr "サポートするエンコーディングリスト:\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr "説明(_D)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr "エンコーディング(_E)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr "成功"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr "ファイル名はすでに UTF-8 になっています"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr "ファイルの内容はすでに UTF-8 になっています"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr "新しい名前が古い名前と同じです"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr "ファイルが存在しません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr "メモリー不足"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr "無効なエンコーディングインデックスです"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr "ファイルを開けません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr "ファイルの名前を変更できません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr "ファイルに書き込めません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr "指定されたエンコーディングリストが適切ではありません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr "通常ファイルではありません"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr "シンボリックリンクターゲットが存在しません"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr "指定されたファイルを変換できません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr "ファイルを読み取れません"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr "適切なアクセス権がありません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr ""
+"シンボリックリンクは再リンクできません。再リンクすると、シンボリックリンクが"
+"壊れます"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr ""
+"シンボリックリンクファイルを削除しましたが、再び作成することができません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr "ドライランファイル形式が無効です"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr "現在のディレクトリを取得できません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr "ディレクトリを変更できません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr "現在のファイルの履歴情報はありません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr ""
+"指定されたファイルは存在しないか、またはすべてのファイルがすでに UTF-8 です"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr ""
+"同じ名前のファイルが存在するため、サフィックスとして 'utf-8' が追加されます"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr "非表示のファイルをスキップする"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr "ローカルではないファイルをスキップする"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr "空のファイル"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr "パラメータなし"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr "フィルタリング中にエラーが発生しました"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr "この種類のファイルタイプはサポートしていません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr "バッファーオーバーフロー"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr "変換をキャンセルしました"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr "ドライラン結果ファイルに書き込めません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr "ドライラン結果ファイルを開けません"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr "ファイル名を URI に変換できません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr "不明なエラーが発生しました"
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr "エンコーディング '%s' はサポートされていません\n"
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr "このエンコーディングリストを永久保存しますか?"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "ヘルプの表示中にエラーが発生しました: %s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr "簡単な概要: 指定 %d、合計 %d、無視 %d、失敗 %d、成功 %d\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+"iso8859-1 ロケールがないため tar コマンドを実行できません。詳細については、"
+"fsexam(1) のマニュアルページを参照してください。"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr "このファイルタイプはサポートしていません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+"このアーカイブファイルは空か、絶対パスが設定されているため、このアーカイブ"
+"ファイル内のファイルは変換できません"
+
+# SUN REVIEWED
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "読み取り権がありません"
+
+# SUN REVIEWED
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "フォルダを指定していません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr "ファイルが存在しないか、アクセスが許可されていません。"
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr "空のフォルダ"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr "シンボリックリンクターゲットが存在しません"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr "選択されたファイルは空ではありません。上書きしますか?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+"選択されたファイルは UTF-8 でエンコードされていません。UTF-8 のファイル名を使"
+"用することを強くお勧めします。\n"
+"\n"
+"このファイルを UTF-8 に変換しますか?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+"%s を UTF8 に変換できません: %s。\n"
+"\n"
+"部分的に変換が実行されている場合があります。\n"
+"そのため、現在のディレクトリを更新してファイルを再度選択してください。"
+
+# SUN REVIEWED
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "フォルダの選択"
+
+# SUN REVIEWED
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr ""
+"fsexam は、ファイル名とファイルの内容を従来のエンコードから UTF8 に移行するの"
+"に役立ちます。"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr "ファイル \"%s\" が見つかりません。"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr "選択なし"
+
+# SUN REVIEWED
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "複数の選択項目をプレビューすることはできません"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr "フォルダの内容をプレビューできません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr "アクセスできません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr "通常ファイルではありません"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "プレーンテキストではありません"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr "別の fsexam が実行中のため、すぐに終了します\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr "使用法については、'fsexam --help' を実行してください。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr ""
+"警告: 指定された履歴の長さは短すぎるため、デフォルト値 %d にリセットされま"
+"す\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr "ファイル名を入力してください:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr ""
+"エラー: エンコーディングが指定されていないため、自動検出は無効になりまし"
+"た。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr "ドライランファイル %s を開けません\n"
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr "使用法:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr "    fsexam [オプション] ...[ファイル]\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+"\n"
+"サポートされているオプション:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr "    -a, --auto-detect      エンコーディングの自動検出を有効にします\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr "    -d dry-run-result      ドライラン結果ファイルを指定します\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr "    -E module-name         特殊なファイルの処理を有効にします\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr "    -e encoding-list       追加のエンコーディングリストを指定します\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr "    -F, --force-convert    強制変換モード\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr "    -f 'expression'        ファイルのフィルタ条件を指定します\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr "    -H, --hidden           非表示のファイルの処理をオンにします\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr "    -b, --auto-conversion  対話モード\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr ""
+"    -l, list-encoding      サポートされているすべてのエンコーディングを一覧表"
+"示します\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr "    -k, --no-check-symlink-content\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+"                           シンボリックリンクとそのターゲット名\n"
+"                           の整合性をチェックしません\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr "    -L logfile             ログファイルを指定します\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr "    -n, --dry-run          ドライランモード\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr "    -P, --append-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           '-e' で指定されたエンコーディングリストを、\n"
+"                           定義済みのエンコーディングリストに追加します\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr "    -p, --prepend-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           '-e' で指定されたエンコーディングリストを、\n"
+"                           定義済みのエンコーディングリストの先頭に追加しま"
+"す\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr "    -R, --recursive        再帰モード\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr "    -r, --remote           nfs ファイルの処理をオンにします\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr "    -S, --save-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+"                           '-e' で指定されたエンコーディング\n"
+"                           リストを永久保存します\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+"    -s, --restore          指定されたファイルの元の名前\n"
+"                           または内容を復元します\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+"    -t, --conv-content     ファイルの名前ではなくファイルの\n"
+"                           内容を変換します\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr "    -w, --follow           シンボリックリンクに従います\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr "    -V, --version          バージョン情報を表示します\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr ""
+"    -?, --help             fsexam の使用法に関するこの情報を表示します\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr "エンコーディングの自動検出"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr "非表示のファイルの処理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr "履歴の長さ"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr "シンボリックリンクとその参照の整合性を維持する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr "ログファイル名"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr "NFS ファイルの処理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr "特殊なファイルタイプのモジュール"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr "ログを書き込むかどうか"
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[EUC-JP,SJIS,ISO-2022-JP]"
+
+# SUN REVIEWED
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "自動モード"
+
+# SUN REVIEWED
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "エンコードリスト"
+
+# SUN REVIEWED
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "再帰モード"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "従来のエンコーディングから Unicode (UTF8) への移行を支援する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "*"
+#~ msgstr "*"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Display the dryrun result pane"
+#~ msgstr "ドライラン結果区画を表示する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Display the report pane"
+#~ msgstr "レポート区画を表示する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Display the search result window"
+#~ msgstr "検索結果ウィンドウを表示する"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Preview plain text file content"
+#~ msgstr "プレーンテキストファイルの内容をプレビューする"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Select A File"
+#~ msgstr "ファイルの選択"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "[Content] %s - >%s"
+#~ msgstr "[内容] %s - >%s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Display help content"
+#~ msgstr "ヘルプの目次の表示"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Preference setting"
+#~ msgstr "設定"
+
+#~ msgid "File has been emptied, can not be restored!"
+#~ msgstr "ファイルが空になりました。元に戻せません。"
+
+# SUN REVIEWED
+#~ msgid "Folder already exists"
+#~ msgstr "そのフォルダはすでに存在します"
+
+# SUN REVIEWED
+#~ msgid "delete Carriage Return"
+#~ msgstr "復帰改行を削除します"
+
+# SUN REVIEWED
+#~ msgid "delete Carriage Return only"
+#~ msgstr "復帰改行のみを削除します"
+
+# SUN REVIEWED
+#~ msgid "add Carriage Return"
+#~ msgstr "復帰改行を追加します"
+
+# SUN REVIEWED
+#~ msgid "add Carriage Return only"
+#~ msgstr "復帰改行のみを追加します"
+
+# SUN REVIEWED
+#~ msgid "Folder doesn't exist yet"
+#~ msgstr "そのフォルダはまだ存在していません"
+
+# SUN REVIEWED
+#~ msgid "File content - convert from %s and delete Carriage Return"
+#~ msgstr "ファイルの内容 - %s から変換して復帰改行を削除します"
+
+# SUN REVIEWED
+#~ msgid "File content - delete Carriage Return only"
+#~ msgstr "ファイルの内容 - 復帰改行のみを削除します"
+
+# SUN REVIEWED
+#~ msgid "Restore %s and add Carriage Return"
+#~ msgstr "%s を復元して復帰改行を追加します"
+
+# SUN REVIEWED
+#~ msgid "Restore by adding Carriage Return"
+#~ msgstr "復帰改行の追加によって復元します"
+
+# SUN REVIEWED
+#~ msgid "Restore UTF8"
+#~ msgstr "UTF8 を復元します"
+
+# SUN REVIEWED
+#~ msgid "Restore UTF8 and delete Carriage Return"
+#~ msgstr "UTF8 を復元して復帰改行を削除します"
+
+# SUN REVIEWED
+#~ msgid "Restore by deleting Carriage Return"
+#~ msgstr "復帰改行の削除によって復元します"
+
+# SUN REVIEWED
+#~ msgid "_Open..."
+#~ msgstr "開く(_O)..."
+
+# SUN REVIEWED
+#~ msgid "_Restore Original File"
+#~ msgstr "元のファイルに戻す(_R)"
+
+# SUN REVIEWED
+#~ msgid "_Convert Content"
+#~ msgstr "内容の変換(_C)"
+
+# SUN REVIEWED
+#~ msgid "_About"
+#~ msgstr "情報(_A)"
+
+# SUN REVIEWED
+#~ msgid "Sub-folder:"
+#~ msgstr "サブフォルダ:"
+
+# SUN REVIEWED
+#~ msgid "User intervention:"
+#~ msgstr "ユーザー介入:"
+
+# SUN REVIEWED
+#~ msgid "Restore %s encoding and add carriage return"
+#~ msgstr "%s エンコーディングを復元して復帰改行を追加します"
+
+# SUN REVIEWED
+#~ msgid "Restore by adding carriage return"
+#~ msgstr "復帰改行の追加によって復元します"
+
+# SUN REVIEWED
+#~ msgid "Restore UTF8 encoding"
+#~ msgstr "UTF8 エンコーディングを復元します"
+
+# SUN REVIEWED
+#~ msgid "Restore UTF8 encoding and delete carriage return"
+#~ msgstr "UTF8 エンコーディングを復元して復帰改行を削除します"
+
+# SUN REVIEWED
+#~ msgid "Restore by deleting carriage return"
+#~ msgstr "復帰改行の削除によって復元します"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File System Examiner name conversion"
+#~ msgstr "ファイルシステム検査器の名前変換"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content with carriage return remove"
+#~ msgstr "復帰改行付きのファイル内容を削除します"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content just carriage return remove"
+#~ msgstr "復帰改行のみのファイル内容を削除します"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "_Preferences"
+#~ msgstr "設定(_P)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Encode list:"
+#~ msgstr "エンコードリスト:"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File System Examiner content conversion"
+#~ msgstr "ファイルシステム検査器の内容変換"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - convert from %s"
+#~ msgstr "ファイルの内容 - %s から変換します"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - convert from %s and delete carriage return"
+#~ msgstr "ファイルの内容 - %s から変換して復帰改行を削除します"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - delete carriage return only"
+#~ msgstr "ファイルの内容 - 復帰改行のみを削除します"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "%s doesn't exist yet"
+#~ msgstr "%s がまだ存在しません"
+
+# SUN REVIEWED
+#~ msgid "No permission to rename"
+#~ msgstr "名前を変更するための権限がありません"
+
+# SUN REVIEWED
+#~ msgid "Conversion failure"
+#~ msgstr "変換に失敗しました"
+
+# SUN REVIEWED
+#~ msgid "UTF8 already"
+#~ msgstr "すでに UTF8 です"
+
+# SUN REVIEWED
+#~ msgid "No directory specified"
+#~ msgstr "ディレクトリを指定していません"
+
+# SUN REVIEWED
+#~ msgid "Directory Selection"
+#~ msgstr "ディレクトリの選択"
+
+# SUN REVIEWED
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+# SUN REVIEWED
+#~ msgid "Report Pane"
+#~ msgstr "報告区画"
+
+# SUN REVIEWED
+#~ msgid "Welcome"
+#~ msgstr "ようこそ"
+
+# SUN REVIEWED
+#~ msgid "File Hierarchy"
+#~ msgstr "ファイル階層"
+
+# SUN REVIEWED
+#~ msgid "Recursive Mode"
+#~ msgstr "再帰モード"
+
+# SUN REVIEWED
+#~ msgid "Automatic Conversion"
+#~ msgstr "自動変換"
+
+# SUN REVIEWED
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr ""
+#~ "拡張子のリスト。このリストに拡張子が登録されているファイルを、fsexam はプ"
+#~ "レーンテキストファイルであると想定します。"
+
+# SUN REVIEWED
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "ファイル名の変換だけに適用されます。再帰モードが有効である場合、fsexam は"
+#~ "ファイルとサブディレクトリの名前を再帰的に UTF8 に変換します。"
+
+# SUN REVIEWED
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "ファイル名の変換だけに適用されます。自動モードが有効である場合、fsexam が"
+#~ "最良の変換を自動的に行うため、ユーザーは何もしなくてもかまいません。自動"
+#~ "モードが有効でない場合、fsexam は変換の候補をダイアログに表示します。この"
+#~ "場合、ユーザーが最良の変換を選択する必要があります。"
+
+# SUN REVIEWED
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "特定の言語で利用できる従来のエンコード名のリスト。リスト内における順序は重"
+#~ "要です。ファイル名を変換するとき、fsexam はリストの一番上にあるエンコード"
+#~ "が最良であると想定します。"
+
+# SUN REVIEWED
+#~ msgid "suffix list"
+#~ msgstr "拡張子リスト"
+
+# SUN REVIEWED
+#~ msgid "Directory already exists"
+#~ msgstr "そのディレクトリはすでに存在します"
+
+# SUN REVIEWED
+#~ msgid "File already exists"
+#~ msgstr "そのファイルはすでに存在します"
+
+# SUN REVIEWED
+#~ msgid "Null directory"
+#~ msgstr "空のディレクトリ"
+
+# SUN REVIEWED
+#~ msgid "Apply by name"
+#~ msgstr "名前で適用"
+
+# SUN REVIEWED
+#~ msgid "Apply by content"
+#~ msgstr "内容で適用"
+
+# SUN REVIEWED
+#~ msgid "Peek content"
+#~ msgstr "内容を表示"
+
+# SUN REVIEWED
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "アイコン %s のロード中にエラーが発生しました\n"
+
+# SUN REVIEWED
+#~ msgid "popen error, please try again!"
+#~ msgstr "popen エラーが発生しました。もう一度やり直してください"
+
+# SUN REVIEWED
+#~ msgid "Not one plain text"
+#~ msgstr "プレーンテキストではありません"
+
+# SUN REVIEWED
+#~ msgid "File content candidate window"
+#~ msgstr "ファイルの内容候補ウィンドウ"
+
+# SUN REVIEWED
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "バイトシーケンスがまだ認識されていません"
+
+# SUN REVIEWED
+#~ msgid "File content - open failure"
+#~ msgstr "ファイルの内容 - 開くのに失敗しました"
+
+# SUN REVIEWED
+#~ msgid "File content - write error"
+#~ msgstr "ファイルの内容 - 書き込みに失敗しました"
+
+# SUN REVIEWED
+#~ msgid "File content - successful conversion"
+#~ msgstr "ファイルの内容 - 変換に成功しました"
+
+# SUN REVIEWED
+#~ msgid "File content - UTF8 alreay"
+#~ msgstr "ファイルの内容 - すでに UTF8 です"
+
+# SUN REVIEWED
+#~ msgid "Directory node"
+#~ msgstr "ディレクトリノード"
+
+# SUN REVIEWED
+#~ msgid "File content - successful undo"
+#~ msgstr "ファイルの内容 - 元に戻すのに成功しました"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/ko.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2486 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2004-06-16 15:05+0900\n"
+"Last-Translator: [email protected]\n"
+"Language-Team: [email protected]\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr "<b>사용 가능한 인코딩:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr "<b>변환 설정:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr "<b>인코딩 목록:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr "<b>선택한 인코딩:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr "<b>검색 결과</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr "<b>Dryrun 결과(_D)</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr "<b>위치(_L):</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr "<b>보고서 창(_R)</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr "인코딩 추가 또는 제거"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr "아카이브 또는 압축 파일"
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr "검색 결과 지우기(_H)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr "검색 결과 지우기"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr "컨텐트 변환 모드(_M)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr "변환"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr "이전 dryrun 결과에 따라 파일 이름 또는 컨텐트 변환"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr "대화식으로 변환하지 않고 첫번째 후보를 사용하여 파일 자동 변환"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr "현재 모드에 따라 선택된 파일 이름 또는 컨텐트 변환"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr "인코딩이 UTF-8인지 여부를 감지하지 않고 변환"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr "데이터가 다음보다 많이 수정됨:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr "파일 이름 또는 컨텐트 인코딩 자동 감지"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr "Symlink 컨텐트 확인하지 않음(_K)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr "심볼릭 링크 파일 및 해당 대상 파일 간에 일관성을 유지하지 않음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr "Dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr "디스크의 파일 이름 또는 컨텐트를 변경하지 않고 dryrun을 수행함"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr "디스크의 파일을 변경하지 않고 dryrun 수행"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr "파일 컨텐트 모드(_M)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr "파일 인코딩 검사기"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr "파일 인코딩 검사기 기본 설정"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr "파일 이름 모드(_N)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr "파일 컨텐트 변환 모드"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr "파일 이름 변환 모드"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr "심볼릭 링크 따르기(_S)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr "심볼릭 링크 따르기"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr "강제 변환"
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr "숨겨진 파일 처리(_H)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr "원격 파일 처리(_R)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr "검색 결과 숨기기"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr "내역 길이:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr "로그 파일 이름:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr "검색 폴더:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr "이름에 포함된 내용:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr "파일 열기"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr "다음 그룹에서 소유:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr "다음 사용자가 소유:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr "아카이브 또는 압축 파일 처리"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr "숨겨진 파일 처리"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr "NFS 파일과 같은 비로컬 파일 처리"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr "특수 파일 형식 처리"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr "폴더 내 파일 반복 처리"
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr "복원"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr "변환 모드에 따라 지정된 파일의 이름 또는 컨텐트 복원"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr "선택된 파일의 이름 또는 컨텐트 복원"
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr "시나리오"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr "검색 결과"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr "파일 검색(_F)..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr "파일 검색"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr "사용자가 지정한 기준에 따라 파일 검색"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr "폴더 선택"
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr "특수 파일 처리"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr "상태가 다음보다 많이 수정됨:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr "검색 중지(_S)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr "파일 검색 중지"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+"변환 횟수가 저장됩니다. 여러 파일이 한 번에 변환되는 경우 1회로 간주합니다."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr "마지막 작업 실행 취소"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr "로그 파일 사용"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr "로그 파일 사용"
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr "자동 변환(_A)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr "자동 감지(_A)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr "컨텐트(_C)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr "변환(_C)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr "Dryrun(_D)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr "Dryrun 결과 창(_D)"
+
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr "편집(_E)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "파일(_F)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr "강제 변환(_F)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "도움말(_H)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr "이름 변환 모드(_N)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr "컨텐트 미리 보기(_P)"
+
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "반복 모드(_R)"
+
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "보고서 창(_R)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr "복원(_R)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr "시나리오(_S)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "보기(_V)"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr "fsexam 인스턴스 하나가 이미 실행 중입니다.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+"경고: %s 인코딩을 정규적인 인코딩 이름으로 변환할 수 없으므로 무시됩니다.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+"제공된 인코딩이 없습니다. 기본 설정 대화 상자의 '자동 감지' 버튼을 선택하거"
+"나 인코딩 대화 상자를 통해 인코딩을 추가합니다.\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr "선택 사항 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr "처리해야 할 파일 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr "실행 취소할 작업이 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr "결과가 없습니다. 자세한 내용은 보고서 창을 참조하십시오.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr "검색 중지..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr "검색 결과가 지워졌습니다."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+"%s은(는) 지원되는 인코딩 이름이 아닙니다. 지원되는 인코딩을 나열하려면 "
+"'fsexamc -l'을 사용하십시오.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr "'%s'에서 'UTF-8'로의 변환은 시스템에서 지원되지 않으므로 무시됩니다.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr "find(1)의 매개 변수가 비어 있습니다.\n"
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr "검색 중..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr "검색 완료"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr "검색 명령을 실행하는 동안 오류가 발생했습니다."
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr "%d개의 파일이 검색됨"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr "검색 중지됨"
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr "[컨텐트] %s - >%s"
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr "심볼릭 링크 다시 만들기 성공"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr "[이름] %s -> %s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr "후보 목록:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr "\t[번호] 인코딩 이름\t변환 결과\n"
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr "적절한 인코딩이 없음.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr "번호를 선택하십시오(건너뛰려면 's'). "
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr "후보를 선택하십시오."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr "다시 묻지 않음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr "중국어 번체"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr "중국어 번체(홍콩)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr "중앙 유럽"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr "키릴 자모"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr "서유럽"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr "그리스어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr "터키어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr "히브리어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr "아랍어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr "발트어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr "베트남어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr "서유럽"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr "중앙 유럽"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr "러시아어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr "포르투갈어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr "아이슬란드어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr "캐나다 프랑스어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr "북유럽어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr "키릴 자모/러시아어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr "태국어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr "일본어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr "한국어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr "중국어 간체"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr "켈트어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr "루마니아어"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr "남부 유럽"
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr "'%s' 인코딩은 지원되지 않습니다.\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr "지원되는 인코딩 목록:\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr "설명(_D)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr "인코딩(_E)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr "성공"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr "파일 이름이 이미 UTF-8임"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr "파일 컨텐트가 이미 UTF-8임"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr "새 이름이 이전 이름과 같습니다."
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr "파일이 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr "메모리 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr "잘못된 인코딩 색인"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr "파일을 열 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr "파일 이름을 바꿀 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr "파일을 쓸 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr "지정된 인코딩 목록이 적합하지 않음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr "정규 파일이 아님"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr "Symlink 대상이 없음"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr "지정된 파일을 변환할 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr "파일을 읽을 수 없음"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr "적절한 권한이 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr "심볼릭 링크를 끊는 심볼릭 링크는 다시 링크할 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr "심볼릭 링크 파일이 삭제되었으나 다시 만들 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr "Dryrun 파일 형식이 잘못됨"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr "현재 디렉토리를 가져올 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr "디렉토리를 변경할 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr "현재 파일에 대한 내역 정보가 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr "지정된 파일이 없거나 모든 파일이 이미 UTF-8임"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr "같은 파일 이름이 있으므로 'utf-8'이 접미어로 추가됨"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr "숨겨진 파일 건너뛰기"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr "비로컬 파일 건너뛰기"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr "빈 파일"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr "매개 변수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr "필터링 중 오류 발생"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr "이 파일 형식을 지원하지 않음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr "버퍼 오버플로우"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr "변환이 취소됨"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr "Dryrun 결과 파일을 쓸 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr "Dryrun 결과 파일을 열 수 없음"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr "파일 이름을 URI로 변환할 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr "알 수 없는 오류가 발생함"
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr "'%s' 인코딩이 지원되지 않음\n"
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr "이 인코딩 목록을 영구 저장하시겠습니까?"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "다음 도움말이 표시될 때 오류가 발생했음 %s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr "개요: %d 지정, 총 %d, %d 무시, %d 실패, %d 성공\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+"iso8859-1 로케일이 없어 tar 명령을 실행할 수 없습니다. 자세한 내용은 fsexam"
+"(1) 매뉴얼 페이지를 참조하십시오."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr "이 파일 형식을 지원하지 않음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+"아카이브 파일이 비어 있거나 절대 경로가 포함되어 있으므로 이 아카이브 파일에 "
+"있는 파일을 변환할 수 없습니다."
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "읽기 권한이 없습니다."
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "폴더를 지정하지 않았습니다."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr "파일이 없거나 액세스 권한이 없습니다."
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr "빈 폴더"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr "Symlink 대상이 없음"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr "선택한 파일은 빈 파일이 아닙니다. 이 파일을 대체하시겠습니까?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+"선택한 파일은 UTF-8 인코딩되어 있지 않습니다. UTF-8 파일 이름을 사용하는 것"
+"이 좋습니다.\n"
+"\n"
+" UTF8로 변환하시겠습니까?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+"%s을(를) UTF8: %s(으)로 변환할 수 없습니다.\n"
+"\n"
+"부분 변환이 있을 수 있으므로\n"
+" 디렉토리를 새로 고친 다음 파일을 다시 선택하십시오."
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "폴더 선택"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr ""
+"fsexam은 파일 이름과 파일 내용의 기존 인코딩을 UTF8로 마이그레이션하는 것을 "
+"도와줍니다."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr "\"%s\" 파일이 누락되었습니다."
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr "선택 사항 없음"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "여러 선택 항목을 미리 볼 수 없습니다."
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr "폴더 내용을 미리 볼 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr "액세스할 수 없음"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr "정규 파일이 아님"
+
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "일반 텍스트가 아님"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr "다른 fsexam이 실행 중이며 곧 종료됩니다.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr "사용법에 대해 알아보려면 'fsexam --help'를 실행합니다.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr "경고: 지정된 내역 길이가 너무 짧아 기본값 %d(으)로 재설정됩니다.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr "파일 이름을 입력하십시오.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr "오류: 지정된 인코딩이 없으며 자동 감지를 사용할 수 없습니다.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr "Dryrun 파일 %s을(를) 열 수 없음\n"
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr "사용법:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr "    fsexam [옵션] ... [파일]\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+"\n"
+"지원되는 옵션:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr "    -a, --auto-detect      인코딩 자동 감지 사용\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr "    -d dry-run-result      dryrun 결과 파일 지정\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr "    -E module-name         특수 파일 처리 사용\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr "    -e encoding-list       추가 인코딩 목록 지정\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr "    -F, --force-convert    강제 변환 모드\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr "    -f 'expression'        파일 필터 기준 지정\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr "    -H, --hidden           숨겨진 파일 처리 사용\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr "    -b, --auto-conversion  대화식 모드\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr "    -l, list-encoding      지원되는 인코딩 모두 나열\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr "    -k, --no-check-symlink-content\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+"                           심볼릭 링크 및 그 대상 이름 사이의 일관성을\n"
+"                           확인하지 않음\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr "    -L logfile             로그 파일 지정\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr "    -n, --dry-run          Dryrun 모드\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr "    -P, --append-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           미리 정의된 인코딩 목록에\n"
+"                           '-e'로 지정된 인코딩 목록을 추가\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr "    -p, --prepend-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           미리 정의된 인코딩 목록에\n"
+"                           '-e'로 지정된 인코딩 목록을 미리 결정\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr "    -R, --recursive        반복 모드\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr "    -r, --remote           nfs 파일 처리 작동\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr "    -S, --save-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+"                           '-e'로 지정된 인코딩 목록을 영구\n"
+"                           저장\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+"    -s, --restore          지정된 파일의 원래 이름 또는 컨텐트\n"
+"                           복원\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+"    -t, --conv-content     파일 이름이 아닌 파일 컨텐트를\n"
+"                           변환\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr "    -w, --follow           심볼릭 링크 따르기\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr "    -V, --version          버전 정보 인쇄\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr "    -?, --help             fsexam의 이 사용법 정보를 인쇄\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr "인코딩 자동 감지"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr "숨겨진 파일 처리"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr "내역 길이"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr "심볼릭 링크 및 해당 참조 간에 일관성 유지"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr "로그 파일 이름"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr "NFS 파일 처리"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr "특수 파일 형식 모듈"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr "로그 쓰기 또는 쓰지 않기"
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[EUC-KR,ISO-2022-KR,JOHAB]"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "자동 모드"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "인코딩 목록"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "재귀 모드"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "레거시 인코딩 도움말을 유니코드(UTF8)로 마이그레이션"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "*"
+#~ msgstr "*"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the dryrun result pane"
+#~ msgstr "Dryrun 결과 창 표시"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the report pane"
+#~ msgstr "보고서 창 표시"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the search result window"
+#~ msgstr "검색 결과 창 표시"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preview plain text file content"
+#~ msgstr "일반 텍스트 파일 컨텐트 미리 보기"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Select A File"
+#~ msgstr "파일 선택"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "[Content] %s - >%s"
+#~ msgstr "[컨텐트] %s - >%s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Display help content"
+#~ msgstr "도움말 컨텐트 표시"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Preference setting"
+#~ msgstr "기본 설정"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File has been emptied, can not be restored!"
+#~ msgstr "파일이 비어 있어서 복원할 수 없습니다!"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Folder already exists"
+#~ msgstr "폴더가 이미 있습니다."
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "delete Carriage Return"
+#~ msgstr "캐리지 리턴 삭제"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "delete Carriage Return only"
+#~ msgstr "캐리지 리턴만 삭제"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "add Carriage Return"
+#~ msgstr "캐리지 리턴 추가"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "add Carriage Return only"
+#~ msgstr "캐리지 리턴만 추가"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Folder doesn't exist yet"
+#~ msgstr "폴더가 없습니다."
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - convert from %s and delete Carriage Return"
+#~ msgstr "파일 내용 - %s에서 변환한 다음 캐리지 리턴 삭제"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - delete Carriage Return only"
+#~ msgstr "파일 내용 - 캐리지 리턴만 삭제"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Restore %s and add Carriage Return"
+#~ msgstr "%s 복원 및 캐리지 리턴 추가"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Restore by adding Carriage Return"
+#~ msgstr "캐리지 리턴을 추가하여 복원"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Restore UTF8"
+#~ msgstr "UTF8 복원"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Restore UTF8 and delete Carriage Return"
+#~ msgstr "UTF8 복원 및 캐리지 리턴 삭제"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Restore by deleting Carriage Return"
+#~ msgstr "캐리지 리턴을 삭제하여 복원"
+
+#~ msgid "_Open..."
+#~ msgstr "열기(_O)..."
+
+#~ msgid "_Restore Original File"
+#~ msgstr "원본 파일 복원(_R)"
+
+#~ msgid "_Convert Content"
+#~ msgstr "컨텐트 변환(_C)"
+
+#~ msgid "_About"
+#~ msgstr "정보(_A)"
+
+#~ msgid "Sub-folder:"
+#~ msgstr "하위 폴더:"
+
+#~ msgid "User intervention:"
+#~ msgstr "사용자 개입:"
+
+#~ msgid "Restore %s encoding and add carriage return"
+#~ msgstr "%s 인코딩 복원 및 캐리지 리턴 추가"
+
+#~ msgid "Restore by adding carriage return"
+#~ msgstr "캐리지 리턴을 추가하여 복원"
+
+#~ msgid "Restore UTF8 encoding"
+#~ msgstr "UTF8 인코딩 복원"
+
+#~ msgid "Restore UTF8 encoding and delete carriage return"
+#~ msgstr "UTF8 인코딩 복원 및 캐리지 리턴 삭제"
+
+#~ msgid "Restore by deleting carriage return"
+#~ msgstr "캐리지 리턴을 삭제하여 복원"
+
+#~ msgid "File System Examiner name conversion"
+#~ msgstr "파일 시스템 검사기 이름 변환"
+
+#~ msgid "File content with carriage return remove"
+#~ msgstr "캐리지 리턴이 포함되어 있는 컨텐트 제거"
+
+#~ msgid "File content just carriage return remove"
+#~ msgstr "캐리지 리턴된 파일 컨텐트 제거"
+
+#~ msgid "_Preferences"
+#~ msgstr "환경 설정(_P)"
+
+#~ msgid "Encode list:"
+#~ msgstr "인코딩 목록:"
+
+#~ msgid "File System Examiner content conversion"
+#~ msgstr "파일 시스템 검사기 컨텐트 변환"
+
+#~ msgid "File content - convert from %s"
+#~ msgstr "파일 컨텐트 - %s에서 변환"
+
+#~ msgid "File content - convert from %s and delete carriage return"
+#~ msgstr "파일 컨텐트 - %s에서 변환한 다음 캐리지 리턴 삭제"
+
+#~ msgid "File content - delete carriage return only"
+#~ msgstr "파일 컨텐트 - 캐리지 리턴만 삭제"
+
+#~ msgid "%s doesn't exist yet"
+#~ msgstr "%s이(가) 없음"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr ""
+#~ "접미어 목록입니다. 목록에 속한 접미어를 가진 모든 파일은 fsexam에 의해 일"
+#~ "반 텍스트 파일로 간주됩니다."
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "파일 이름 변환에만 적용할 수 있습니다. 재귀 모드를 사용하면 fsexam에서 재"
+#~ "귀적으로 파일 및 하위 디렉토리 이름이 UTF8로 변환됩니다."
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "파일 이름 변환에만 적용할 수 있습니다. 자동 모드를 사용하면 fsexam에서 사"
+#~ "용자 개입 없이 자동으로 최상의 변환 결과를 얻도록 변환됩니다. 자동 모드를 "
+#~ "사용하지 않으면 몇 가지 변환 후보가 포함된 대화 상자가 표시되고 사용자가 "
+#~ "그 중에서 가장 적합한 것을 선택해야 합니다."
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "특정 언어에 사용할 수 있는 기존 인코딩 이름 목록입니다. 목록 내의 순서가 "
+#~ "중요합니다. fsexam에서 첫 번째 인코딩 이름이 가장 성공적으로 변환될 수 있"
+#~ "는 것으로 처리됩니다."
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "suffix list"
+#~ msgstr "접미어 목록"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File already exists"
+#~ msgstr "파일이 이미 있음"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Apply by name"
+#~ msgstr "이름별 적용"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Apply by content"
+#~ msgstr "내용별 적용"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Peek content"
+#~ msgstr "내용 살짝 보기"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "아이콘 %s을(를) 로드하는 중 오류가 발생했습니다.\n"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "popen error, please try again!"
+#~ msgstr "popen 오류입니다. 다시 시도하십시오!"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Not one plain text"
+#~ msgstr "일반 텍스트 아님"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content candidate window"
+#~ msgstr "파일 내용 후보 창"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "바이트 순서가 아직 인식되지 않음"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - open failure"
+#~ msgstr "파일 내용 - 열기 실패"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - write error"
+#~ msgstr "파일 내용 - 쓰기 오류"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - successful conversion"
+#~ msgstr "파일 내용 - 변환 성공"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - UTF8 alreay"
+#~ msgstr "파일 내용 - 이미 UTF8"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - successful undo"
+#~ msgstr "파일 내용 - 실행 취소 성공"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Directory already exists"
+#~ msgstr "디렉토리가 이미 있음"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Null directory"
+#~ msgstr "NULL 디렉토리"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Directory node"
+#~ msgstr "디렉토리 노드"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "No permission to rename"
+#~ msgstr "이름을 바꿀 권한이 없습니다."
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File Hierarchy"
+#~ msgstr "파일 계층 구조"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "No directory specified"
+#~ msgstr "디렉토리를 지정하지 않았습니다."
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Directory Selection"
+#~ msgstr "디렉토리 선택"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Report Pane"
+#~ msgstr "보고서 창"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Welcome"
+#~ msgstr "시작"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Recursive Mode"
+#~ msgstr "재귀 모드"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Automatic Conversion"
+#~ msgstr "자동 변환"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/pl.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,1288 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2004-06-16 15:05+0900\n"
+"Last-Translator: Sun G11n <[email protected]>\n"
+"Language-Team: Sun G11n <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr ""
+
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr ""
+
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr ""
+
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr ""
+
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr ""
+
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr ""
+
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr ""
+
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr ""
+
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr ""
+
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr ""
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr ""
+
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr ""
+
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr ""
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr ""
+
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr ""
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr ""
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr ""
+
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr ""
+
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr ""
+
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr ""
+
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr ""
+
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr ""
+
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr ""
+
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr ""
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr ""
+
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr ""
+
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr ""
+
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr ""
+
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr ""
+
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr ""
+
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr ""
+
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr ""
+
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr ""
+
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr ""
+
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr ""
+
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr ""
+
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr ""
+
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr ""
+
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr ""
+
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr ""
+
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr ""
+
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr ""
+
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr ""
+
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr ""
+
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr ""
+
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr ""
+
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr ""
+
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr ""
+
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr ""
+
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr ""
+
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr ""
+
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr ""
+
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr ""
+
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr ""
+
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr ""
+
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr ""
+
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr ""
+
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr ""
+
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr ""
+
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr ""
+
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr ""
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr ""
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr ""
+
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr ""
+
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr ""
+
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr ""
+
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr ""
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr ""
+
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr ""
+
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr ""
+
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr ""
+
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr ""
+
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr ""
+
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr ""
+
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr ""
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr ""
+
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr ""
+
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr ""
+
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr ""
+
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr ""
+
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr ""
+
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr ""
+
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr ""
+
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr ""
+
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr ""
+
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr ""
+
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/pt_BR.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2469 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2008-02-26 14:08+0100\n"
+"Last-Translator: [email protected]\n"
+"Language-Team: [email protected]\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr "<b>Codificação disponível:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr "<b>Configuração da conversão:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr "<b>Lista de codificação:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr "<b>Codificação selecionada:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr "<b>Resultado da pesquisa</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr "<b>_Resultado do dryrun</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr "<b>_Local:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr "<b>_Painel de relatórios</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr "Adicionar ou remover codificação"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr "Arquivamento ou arquivos compactados"
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr "Limpar resultado da pesquis_a"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr "Limpar o resultado da pesquisa"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr "_Modo de conversão de conteúdo"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr "Conversão"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr ""
+"Converter o nome do arquivo ou conteúdo com base no resultado prévio do "
+"dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr ""
+"Converter arquivo usando o primeiro candidato automaticamente em vez de a "
+"conversão interativa"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr ""
+"Converter nome ou conteúdo dos arquivos selecionados de acordo com o modo "
+"atual"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr "Converter sem detectar se a codificação é UTF-8 ou não"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr "Dados modificados mais de:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr "Detectar a codificação do nome ou conteúdo do arquivo automaticamente"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr "Não verifica_r o conteúdo Symlink"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr ""
+"Não tentar manter a consistência entre o arquivo de link simbólico e seu "
+"arquivo de destino"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr "Dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr "Fazer dryrun sem alterar o nome ou conteúdo do arquivo no disco"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr "Fazer dryrun sem modificar arquivos no disco"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr "_Modo do conteúdo do arquivo"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr "Examinador de codificação de arquivos"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr "Preferências do examinador de codificação de arquivos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr "Modo do _nome do arquivo"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr "Modo de conversão do conteúdo de arquivos"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr "Modo de conversão do nome de arquivos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr "Seguir link _simbólico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr "Seguir link simbólico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr "Conversão forçada"
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr "Tratar arquivos _ocultos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr "Tratar arquivos _remotos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr "Ocultar resultado da pesquisa"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr "Comprimento do histórico:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr "Nome do arquivo de log:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr "Procurar na pasta:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr "O nome contém:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr "Abrir arquivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr "Pertencente ao grupo:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr "Pertencente ao usuário:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr "Processando arquivamento ou arquivo compactado"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr "Processando arquivo oculto"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr "Processando arquivo não locais, como arquivo NFS"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr "Processando tipo especial de arquivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr "Tratamento recursivo de arquivos na pasta"
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr "Restaurar"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr ""
+"Restaurar nome ou conteúdo de arquivos dados de acordo com o modo de "
+"conversão"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr "Restaurar nome ou conteúdo de arquivos selecionados"
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr "Cenário"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr "Resultado da pesquisa"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr "Pesquisar _arquivos..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr "Pesquisar arquivos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr "Pesquisar arquivos de acordo com o critério do usuário"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr "Selecionar uma pasta"
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr "Tratamento especial de arquivos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr "Status modificado mais de:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr "Interromper _pesquisa"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr "Interromper a pesquisa de arquivos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+"O número da conversão é armazenado. A conversão de diversos arquivos de uma "
+"única vez conta como 1 vez"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr "Desfazer a última ação"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr "Usar arquivo de log"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr "Usar arquivo de log"
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr "_Conversão automática"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr "_Detecção automática"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr "_Conteúdo"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr "_Converter"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr "_Dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr "Painel de resultados de _dryrun"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr "_Editar"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "_Arquivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr "Conversão _forçada"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "_Ajuda"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr "_Modo de conversão de nomes"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr "_Visualização do conteúdo"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "Modo _recursivo"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "Painel de _relatório"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr "_Restaurar"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr "_Cenário"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "_Exibir"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr "Uma instância de fsexam já está em execução.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+"Aviso: não é possível converter a codificação %s para o nome da codificação "
+"canônica, ignorará isso.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+"Codificação não fornecida. Marque o botão \"Detectar automaticamente\" na "
+"caixa de diálogo de preferências ou adicione a codificação mediante a caixa "
+"de diálogo de codificação.\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr "Sem seleção"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr "Não é necessário tratar nenhum arquivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr "Não há nada que deva ser desfeito"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr ""
+"Nenhum resultado. Consulte o painel de relatórios para obter mais "
+"informações.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr "Interromper a pesquisa..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr "O resultado da pesquisa foi limpo."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+"%s não é um nome de codificação suportado, use 'fsexamc -l' para listar as "
+"codificações suportadas.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr ""
+"Seu sistema não suporta a conversão de '%s' para 'UTF-8',ignorará isto.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr "Os parâmetros de pesquisa(1) está vazio.\n"
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr "Pesquisando..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr "Pesquisa terminada"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr "Ocorreu um erro durante a execução do comando de pesquisa."
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr "%d arquivos encontrados"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr "Pesquisa interrompida"
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr "[Conteúdo] %s - >%s"
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr "Sucesso ao recriar link simbólico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr "[Nome] %s -> %s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr "Lista de candidatos:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr "\t[Não.] Nome da conversão\tResultado da conversão\n"
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr "Codificação não apropriada.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr "Selecione Não.('s' para ignorar): "
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr "Selecione candidato"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr "Não perguntar novamente"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr "Chinês (Tradicional)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr "Chinês Traditional (Hong Kong)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr "Europa Central"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr "Cirílico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr "Ocidental"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr "Grego"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr "Turco"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr "Hebreu"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr "Árabe"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr "Báltico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr "Vietnamita"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr "Europa Ocidental"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr "Europa Central"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr "Russo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr "Português"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr "Islandês"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr "Francês canadense"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr "Nórdico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr "Cirílico/Russo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr "Tailandês"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr "Japonês"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr "Coreano"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr "Chinês (Simplificado)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr "Céltico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr "Romeno"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr "Europa do Sul"
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr "A codificação '%s' não é suportada.\n"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr "A lista de codificação suportada:\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr "_Descrição"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr "_Codificação"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr "Sucesso"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr "O nome do arquivo já está em UTF-8"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr "O conteúdo do arquivo já está em UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr "O novo nome é idêntico ao anterior"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr "O arquivo não existe"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr "Sem memória"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr "Índice de codificação inválido"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr "Não é possível abrir o arquivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr "Não é possível renomear o arquivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr "Não é possível gravar o arquivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr "A lista de codificação dada não é apropriada"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr "Não é um arquivo regular"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr "O destino symlink não existe"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr "Não é possível converter arquivo dado"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr "Não é possível ler o arquivo"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr "Permissão não apropriada"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr ""
+"Não é possível refazer o link do link simbólico que quebrará o link simbólico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr ""
+"O arquivo do link simbólico foi excluído, mas não foi possível recriá-lo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr "O formato do arquivo de dryrun é inválido"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr "Não é possível obter o diretório atual"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr "Não é possível modificar o diretório"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr "Não existe informações de histórico para o arquivo atual"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr "Não há arquivos dados ou todos os arquivos já são UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr ""
+"Já existe um arquivo com o mesmo nome, \"utf-8\" será adicionado como sufixo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr "Ignorar arquivo oculto"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr "Ignorar arquivo não local"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr "Arquivo vazio"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr "Sem parâmetros"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr "Ocorreu um erro durante a filtragem"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr "Este tipo de arquivo não é suportado"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr "Estouro de buffer"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr "Conversão cancelada"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr "Não é possível gravar o arquivo de resultados de dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr "Não é possível abrir o arquivo de resultados de dryrun"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr "Não é possível converter o nome do arquivo para URI"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr "Ocorreu um erro desconhecido"
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr "A codificação '%s' não é suportada\n"
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr "Deseja salvar esta lista de codificação permanentemente?"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "Ocorreu um erro ao exibir a Ajuda: %s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+"Resumo preliminar: %d dado, %d total, %d ignorar, %d falha, %d sucesso\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+"Não é possível executar o comando tar por causa da ausência da localidade "
+"iso8859-1, consulte a página manual do fsexam(1) para obter mais informações."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr "Este tipo de arquivo não é suportado"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+"O arquivo está vazio ou tem um caminho absoluto, por isso, não é possível "
+"converter arquivos neste arquivo"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "Sem permissão para leitura"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "Nenhuma pasta especificada"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr "O arquivo não existe ou não há permissão de acesso."
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr "Pasta vazia"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr "O destino symlink não existe"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr "O arquivo selecionado não está vazio, deseja substituí-lo?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+"O arquivo selecionado não está codificado como UTF-8, recomenda-se usar o "
+"nome de arquivo UTF-8.\n"
+"\n"
+" Deseja convertê-lo para UTF8?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+"Não é possível converter %s para UTF8: %s.\n"
+"\n"
+"Observe que pode existir conversão parcial.\n"
+" Por isso, atualize o diretório e selecione o arquivo novamente."
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "Seleção de pasta"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr ""
+"fsexam serve para ajudar na migração do nome e do conteúdo do arquivo da "
+"codificação legada para UTF8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr "O arquivo \"%s\" está ausente."
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr "Sem seleção"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "Não é possível visualizar várias seleções"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr "Não é possível visualizar o conteúdo da pasta"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr "Não é possível acessar"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr "Arquivo não regular"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "Não é um texto simples"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr "Outro fsexam está sendo executado, encerrará em breve\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr "Executar 'fsexam --ajuda' para obter informações de uso.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr ""
+"Aviso: O comprimento do histórico dado é muito curto, será redefinido para o "
+"valor padrão %d\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr "Insira o nome do arquivo:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr "Erro: Sem codificação dada e detecção automática desativada.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr "Não é possível abrir o arquivo de dryrun %s\n"
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr "Uso:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr "    fsexam [OPTION] ... [file]\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+"\n"
+"Opções suportadas:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr "    -a, --auto-detect      Ativar detecção automática da codificação\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr ""
+"    -d dry-run-result      Especificar o arquivo de resultados de dryrun\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr "    -E module-name         Ativar o tratamento de arquivo especial\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr ""
+"    -e encoding-list       Especificar a lista de codificação adicional\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr "    -F, --force-convert    Modo de conversão forçada\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr ""
+"    -f 'expression'        Especificar o critério de filtro de arquivos\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr "    -H, --hidden           Ativar o tratamento de arquivos ocultos\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr "    -b, --auto-conversion  Modo interativo\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr "    -l, list-encoding      Listar todas as codificações suportadas\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr "    -k, --no-check-symlink-content\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+"                           Não verificar a consistência entre\n"
+"                           o link simbólico e seu nome de destino\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr "    -L logfile             Especificar o arquivo de log\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr "    -n, --dry-run          Modo dryrun\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr "    -P, --append-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Anexar lista de codificação especificada por\n"
+"                           '-e' à lista de codificação predefinida\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr "    -p, --prepend-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Antepor a lista de codificação especificada por\n"
+"                           '-e' à lista de codificação predefinida\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr "    -R, --recursive        Modo recursivo\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr "    -r, --remote           Ativar tratamento de arquivos nfs\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr "    -S, --save-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+"                           Salvar a lista de codificação especificada por\n"
+"                           '-e' permanentemente\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+"    -s, --restore          Restaurar o nome ou\n"
+"                           conteúdo original para os arquivos dados\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+"    -t, --conv-content     Converter o conteúdo do arquivo em vez de\n"
+"                           nome de arquivo\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr "    -w, --follow           Seguir o link simbólico\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr "    -V, --version          Imprimir as informações de versão\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr ""
+"    -?, --help             Imprimir esta informação de uso para fsexam\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr "Detecção automática da codificação"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr "Tratamento de arquivos ocultos"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr "Comprimento do histórico"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr "Manter o link simbólico e sua consistência de referência"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr "Nome do arquivo de log"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr "Tratamento de arquivos NFS"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr "Módulo do tipo de arquivo especial"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr "Gravar log ou não"
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[ISO8859-1,ISO8859-3,ISO8859-5,ISO8859-8,ISO8859-9]"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "modo automático"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "lista de codificação"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "modo recursivo"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "Ajudar a migrar da codificação legada à Unicode (UTF8)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "*"
+#~ msgstr "*"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the dryrun result pane"
+#~ msgstr "Exibir o painel de resultados de dryrun"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the report pane"
+#~ msgstr "Exibir o painel de relatórios"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the search result window"
+#~ msgstr "Exibir a janela de resultados da pesquisa"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preview plain text file content"
+#~ msgstr "Visualizar conteúdo do arquivo de texto simples"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Select A File"
+#~ msgstr "Selecionar um arquivo"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "[Content] %s - >%s"
+#~ msgstr "[Conteúdo] %s - >%s"
+
+# SUN MSG
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display help content"
+#~ msgstr "Exibição do conteúdo da Ajuda"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preference setting"
+#~ msgstr "Configuração preferencial"
+
+# SUN MESSAGE
+#~ msgid "File has been emptied, can not be restored!"
+#~ msgstr "O arquivo foi esvaziado, não pode ser restaurado!"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return"
+#~ msgstr "adicionar Retorno de carro"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Open..."
+#~ msgstr "A_brir..."
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Restore Original File"
+#~ msgstr "_Restaurar arquivo original"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Convert Content"
+#~ msgstr "_Converter conteúdo"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_About"
+#~ msgstr "_Sobre"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Sub-folder:"
+#~ msgstr "Subpasta:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "User intervention:"
+#~ msgstr "Intervenção de usuário:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "text"
+#~ msgstr "texto"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore %s and add Carriage Return"
+#~ msgstr "Restaurar %s e adicionar Retorno de carro"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by adding Carriage Return"
+#~ msgstr "Restaurar ao adicionar Retorno de carro"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8"
+#~ msgstr "Restaurar UTF8"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner name conversion"
+#~ msgstr "Conversão de nome do Examinador do sistema de arquivos"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Folder already exists"
+#~ msgstr "A pasta já existe"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return"
+#~ msgstr "excluir Retorno de carro"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return only"
+#~ msgstr "excluir Retorno de carro somente"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return only"
+#~ msgstr "adicionar Retorno de carro somente"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Folder doesn't exist yet"
+#~ msgstr "A pasta ainda não existe"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Preferences"
+#~ msgstr "_Preferências"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Encode list:"
+#~ msgstr "Lista de codificação:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner content conversion"
+#~ msgstr "Conversão de conteúdo do Examinador do sistema de arquivos"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s"
+#~ msgstr "Conteúdo do arquivo - converter de %s"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s and delete Carriage Return"
+#~ msgstr "Conteúdo do arquivo - converter de %s e excluir o Retorno de carro"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - delete Carriage Return only"
+#~ msgstr "Conteúdo do arquivo - excluir Retorno de carro somente"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "%s doesn't exist yet"
+#~ msgstr "%s ainda não existe"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8 and delete Carriage Return"
+#~ msgstr "Restaurar UTF8 e excluir Retorno de carro"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by deleting Carriage Return"
+#~ msgstr "Restaurar ao excluir o Retorno de carro"
+
+# SUN MSG
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr ""
+#~ "Uma lista de sufixos. Qualquer arquivo cujo sufixo pertença à lista é "
+#~ "considerado pelo fsexam como arquivo de texto simples."
+
+# SUN MSG
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "Aplicável apenas para conversão de nome de arquivo. Modo recursivo. Ao "
+#~ "habilitá-lo, o fsexam converterá o nome do arquivo e o subdiretório em "
+#~ "UTF8 recursivamente."
+
+# SUN MSG
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "Aplicável apenas para conversão de nome de arquivo. Modo automático. Ao "
+#~ "habilitá-lo, o fsexam automaticamente fará a conversão com o melhor "
+#~ "resultado sem a interferência do usuário. Caso contrário, será exibida "
+#~ "uma caixa de diálogo com várias opções de conversão e o usuário deverá "
+#~ "decidir qual é a melhor."
+
+# SUN MSG
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "A lista de nomes de codificação legada para a linguagem específica. "
+#~ "Observe que a ordem na lista é significativa. O fsexam considera a melhor "
+#~ "opção a primeira, da qual a conversão pode ser realizada com sucesso."
+
+# SUN MSG
+#~ msgid "suffix list"
+#~ msgstr "lista de sufixos"
+
+# SUN MSG
+#~ msgid "Directory already exists"
+#~ msgstr "O diretório já existe"
+
+# SUN MSG
+#~ msgid "File already exists"
+#~ msgstr "O arquivo já existe"
+
+# SUN MSG
+#~ msgid "Null directory"
+#~ msgstr "Diretório nulo"
+
+# SUN MSG
+#~ msgid "Apply by name"
+#~ msgstr "Aplicar por nome"
+
+# SUN MSG
+#~ msgid "Apply by content"
+#~ msgstr "Aplicar por conteúdo"
+
+# SUN MSG
+#~ msgid "Peek content"
+#~ msgstr "Conteúdo de pico"
+
+# SUN MSG
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "Erro ao carregar ícone %s\n"
+
+# SUN MSG
+#~ msgid "popen error, please try again!"
+#~ msgstr "Erro de popen, tente novamente!"
+
+# SUN MSG
+#~ msgid "Not one plain text"
+#~ msgstr "Não é um texto simples"
+
+# SUN MSG
+#~ msgid "File content candidate window"
+#~ msgstr "Janela de opção de conteúdo de arquivo"
+
+# SUN MSG
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "Seqüência de bytes ainda não reconhecida"
+
+# SUN MSG
+#~ msgid "File content - open failure"
+#~ msgstr "Conteúdo do arquivo - falha ao abrir"
+
+# SUN MSG
+#~ msgid "File content - write error"
+#~ msgstr "Conteúdo do arquivo - erro de gravação"
+
+# SUN MSG
+#~ msgid "File content - successful conversion"
+#~ msgstr "Conteúdo do arquivo - conversão realizada com êxito"
+
+# SUN MSG
+#~ msgid "File content - UTF8 alreay"
+#~ msgstr "Conteúdo do arquivo - já é UTF8"
+
+# SUN MSG
+#~ msgid "Directory node"
+#~ msgstr "Nó de diretório"
+
+# SUN MSG
+#~ msgid "File content - successful undo"
+#~ msgstr "Conteúdo do arquivo - ação desfeita com êxito"
+
+# SUN MESSAGE
+#~ msgid "No permission to rename"
+#~ msgstr "Sem permissão para renomear"
+
+# SUN MESSAGE
+#~ msgid "File Hierarchy"
+#~ msgstr "Hierarquia de arquivos"
+
+# SUN MESSAGE
+#~ msgid "No directory specified"
+#~ msgstr "Nenhum diretório especificado"
+
+# SUN MESSAGE
+#~ msgid "Directory Selection"
+#~ msgstr "Seleção de diretório"
+
+# SUN MESSAGE
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+# SUN MESSAGE
+#~ msgid "Report Pane"
+#~ msgstr "Painel de relatório"
+
+# SUN MESSAGE
+#~ msgid "Welcome"
+#~ msgstr "Bem-vindo"
+
+# SUN MESSAGE
+#~ msgid "Recursive Mode"
+#~ msgstr "Modo recursivo"
+
+# SUN MESSAGE
+#~ msgid "Automatic Conversion"
+#~ msgstr "Conversão automática"
+
+# SUN MESSAGE
+#~ msgid "Conversion failure"
+#~ msgstr "Falha na conversão"
+
+# SUN MESSAGE
+#~ msgid "UTF8 already"
+#~ msgstr "Já é UTF8"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/ru.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2138 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2008-03-04 17:45+0100\n"
+"Last-Translator: [email protected]\n"
+"Language-Team: [email protected]\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr "<b>Доступные кодировки:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr "<b>Настройка преобразования:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr "<b>Список кодировок:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr "<b>Выбранная кодировка:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr "<b>Результат поиска</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr "<b>_Результат пробного прогона</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr "<b>_Расположение:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr "<b>_Панель отчетов</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr "Добавление или удаление кодировки"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr "Архивация или сжатие файлов"
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr "Сброс результата _поиска"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr "Сброс результата поиска"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr "_Режим преобразования содержимого"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr "Преобразовать"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr ""
+"Преобразование имени или содержимого файла на основании результата "
+"предыдущего пробного прогона"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr ""
+"Преобразование файла с автоматическим использованием первого кандидата "
+"вместо интерактивного преобразования"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr ""
+"Преобразование имен или содержимого выбранных файлов в соответствии с "
+"текущим режимом"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr "Преобразование без определения использования кодировки UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr "Данные изменены более чем:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr "Автоматическое определение кодировки имени или содержимого файла"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr "Не проверять содержимое символических ссылок"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr ""
+"Не пытаться поддерживать непротиворечивость между файлом символьной ссылки и "
+"целевым файлом"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr "Пробный прогон"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr "Пробный прогон без изменения имен или содержимого файлов на диске"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr "Пробный прогон без изменения файлов на диске"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr "_Режим содержимого файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr "Анализатор кодировки файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr "Параметры настройки анализатора кодировки файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr "_Режим имен файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr "Режим преобразования содержимого файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr "Режим преобразования имен файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr "Переход по _символьной ссылке"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr "Переход по символьной ссылке"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr "Принудительное преобразование"
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr "Обработка _скрытых файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr "Обработка _удаленных файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr "Скрыть результаты поиска"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr "Длина истории:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr "Имя файла журнала:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr "Поиск в папке:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr "Имя содержит:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr "Открыть файл"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr "Принадлежит группе:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr "Принадлежит пользователю:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr "Обработка архива или сжатие файла"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr "Обработка скрытого файла"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr "Обработка нелокальных файлов, например, файлов NFS"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr "Обработка файла особого типа"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr "Рекурсивная обработка файлов в папке"
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr "Восстановить"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr ""
+"Восстановление имен или содержимого данных файлов в соответствии с режимом "
+"преобразования"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr "Восстановление имен или содержимого выбранных файлов"
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr "Сценарий"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr "Результат поиска"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr "Поиск _файлов..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr "Поиск файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr "Поиск файлов в соответствии с пользовательскими критериями"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr "Выберите папку"
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr "Обработка специальных файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr "Состояние изменено более чем:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr "Остановить _поиск"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr "Остановить поиск файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+"Число преобразований сохраняется. Преобразование нескольких файлов в один "
+"прием считается за 1 раз"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr "Отмена последнего действия"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr "Использовать файл журнала"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr "Использовать файл журнала"
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr "_Автоматическое преобразование"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr "_Автоматическое определение"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr "_Содержимое"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr "_Преобразовать"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr "_Пробный прогон"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr "_Панель результатов пробного прогона"
+
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr "_Принудительное преобразование"
+
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr "_Режим преобразования имен"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr "_Предварительный просмотр содержимого"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "_Рекурсивный режим"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "_Панель отчетов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr "_Восстановить"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr "_Сценарий"
+
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr "Один экземпляр fsexam уже выполняется.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+"Предупреждение: невозможно преобразовать кодировку %s в каноническое имя "
+"кодировки, значение будет проигнорировано.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+"Кодировка не указана. Установите флажок \"Автоматическое определение\" в "
+"диалоге настроек или добавьте кодировку через диалоговое окно кодировок.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr "Не выбрано"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr "Отсутствуют файлы для обработки"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr "Отсутствуют действия для отмены"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr ""
+"Результаты отсутствуют. Для получения дополнительной информации обратитесь к "
+"панели отчетов.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr "Остановка поиска..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr "Результаты поиска сброшены."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+"Кодировка с именем %s не поддерживается; список поддерживаемых кодировок "
+"выводится по команде 'fsexamc -l'.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr ""
+"В системе не поддерживается преобразование из '%s' в 'UTF-8', операция будет "
+"проигнорирована.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr "Параметры find(1) не указаны.\n"
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr "Поиск..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr "Поиск закончен"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr "Ошибка во время выполнения команды поиска."
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr "найдено %d файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr "Поиск остановлен"
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr "[Содержимое] %s -> %s"
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr "Символьная ссылка успешно воссоздана"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr "[Имя] %s -> %s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr "Список кандидатов:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr "\t[№] Имя кодировки\tРезультат преобразования\n"
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr "Не указана правильная кодировка\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr "Выберите номер ('s' - пропустить): "
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr "Выберите кандидат"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr "Не спрашивать повторно"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr "Китайский традиционный"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr "Китайский традиционный (Гонконг)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr "Центральноевропейская"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr "Кириллица"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr "Западная"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr "Греческий"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr "Турецкий"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr "Иврит"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr "Арабский"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr "Балтийская"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr "Вьетнамский"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr "Западноевропейская"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr "Центральная Европа"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr "Русский"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr "Португальский"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr "Исландский"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr "Франко-канадская"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr "Скандинавская"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr "Кириллица/Русский"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr "Тайский"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr "Японский"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr "Корейский"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr "Китайский упрощенный"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr "Кельтская"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr "Румынский"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr "Южноевропейская"
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr "Кодировка '%s' не поддерживается.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr "Список поддерживаемых кодировок:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr "_Описание"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr "_Кодировка"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr "Успех"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr "Имя файла уже в UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr "Содержимое файла уже в UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr "Новое имя совпадает со старым"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr "Файл не существует"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr "Не хватает памяти"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr "Недопустимый индекс кодировки"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr "Невозможно открыть файл"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr "Невозможно переименовать файл"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr "Невозможно записать файл"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr "Указанный список кодировок непригоден"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr "Файл не является стандартным"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr "Адресат символьной ссылки не существует"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr "Невозможно преобразовать данный файл"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr "Чтение файла невозможно"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr "Отсутствуют соответствующие полномочия"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr ""
+"Невозможно повторно создать символьную ссылку с нарушением целостности "
+"символьной ссылки"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr "Файл символьной ссылки удален, но его восстановление невозможно"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr "Недопустимый формат файла пробного прогона"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr "Невозможно получить текущий каталог"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr "Невозможно изменить каталог"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr "Отсутствует историческая информация для текущего файла"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr "Отсутствуют файлы для обработки или все файлы уже в UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr ""
+"Файл с тем же именем уже существует, к имени будет добавлен суффикс 'utf-8'"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr "Пропустить скрытый файл"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr "Пропустить нелокальный файл"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr "Пустой файл"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr "Отсутствуют параметры"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr "Ошибка в ходе фильтрации"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr "Данный тип файла не поддерживается"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr "Переполнение буфера"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr "Преобразование отменено"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr "Невозможно записать файл результатов пробного прогона"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr "Невозможно открыть файл результатов пробного прогона"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr "Невозможно преобразовать имя файла в URI"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr "Неизвестная ошибка"
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr "Кодировка '%s' не поддерживается\n"
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr "Требуется ли сохранить этот список кодировок на постоянной основе?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "Ошибка при отображении справки: %s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+"Приблизительная сводка: %d дано, %d всего, %d проигнорировано, %d отказов, %"
+"d успешно\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+"Невозможно выполнить команду tar вследствие отсутствия локали iso8859-1; "
+"дополнительную информацию см. на справочной странице fsexam(1)."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr "Не поддерживать этот тип файла"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+"Архивный файл пуст или имеет абсолютный путь, поэтому преобразовать файлы в "
+"этом архиве невозможно"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "Отсутствуют полномочия на чтение"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "Не указана папка"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr "Файл не существует или отсутствуют полномочия на доступ."
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr "Пустая папка"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr "Адресат символьной ссылки не существует"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr "Выбранный файл не пуст, перезаписать его?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+"В выбранном файле не используется кодировка UTF-8; настоятельно "
+"рекомендуется использовать имя файла в кодировке UTF-8.\n"
+"\n"
+" Преобразовать в UTF8?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+"Невозможно преобразовать %s в UTF8: %s.\n"
+"\n"
+"Обратите внимание на возможность частичного преобразования.\n"
+" Обновите каталог и снова выберите файл."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "Выбор папки"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr ""
+"fsexam используется для перевода имен и содержимого файлов из устаревших "
+"кодировок в UTF8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr "Файл \"%s\" отсутствует."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr "Не выбрано"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "Предварительный просмотр нескольких выбранных элементов невозможен"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr "Предварительный просмотр содержимого папки невозможен"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr "Доступ невозможен"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr "Файл не является стандартным"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "Не простой текст"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr "Запущен другой экземпляр fsexam, который скоро завершит работу\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr ""
+"Для получения информации по использованию выполните команду 'fsexam --"
+"help'.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr ""
+"Предупреждение: Данная длина истории недостаточна, возврат к значению по "
+"умолчанию %d\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr "Введите имя файла:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr "Ошибка: Не указана кодировка и отключено автоматическое определение.\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr "Невозможно открыть файл пробного прогона %s\n"
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr "Использование:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr "    fsexam [ПАРАМЕТР] ... [файл]\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+"\n"
+"Поддерживаемые параметры:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr ""
+"    -a, --auto-detect      Включить автоматическое определение кодировки\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr "    -d dry-run-result      Указать файл результатов пробного прогона\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr "    -E module-name         Включить обработку специальных файлов\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr "    -e encoding-list       Указать дополнительный список кодировок\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr "    -F, --force-convert    Режим принудительного преобразования\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr "    -f 'выражение'        Указать критерии фильтра файлов\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr "    -H, --hidden           Включить обработку скрытых файлов\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr "    -b, --auto-conversion  Интерактивный режим\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr ""
+"    -l, list-encoding      Вывод списка всех поддерживаемых кодировок\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr "    -k, --no-check-symlink-content\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+"                           Не пытаться поддерживать непротиворечивость между "
+"файлом символьной ссылки и именем целевого файла\n"
+"                          \n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr "    -L файл_журнала             Указать файл журнала\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr "    -n, --dry-run          Режим пробного прогона\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr "    -P, --append-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Добавить список кодировок, указанный параметром '-"
+"e', в конец предопределенного списка кодировок\n"
+"                          \n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr "    -p, --prepend-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           Добавить список кодировок, указанный параметром '-"
+"e', в начало предопределенного списка кодировок\n"
+"                          \n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr "    -R, --recursive        Рекурсивный режим\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr "    -r, --remote           Включить обработку файлов NFS\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr "    -S, --save-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+"                           Сохранить список кодировок, указанный параметром "
+"'-e', на постоянной основе\n"
+"                          \n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+"    -s, --restore          Восстановить исходное имя или содержимое для "
+"указанных файлов\n"
+"                          \n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+"    -t, --conv-content     Преобразовать содержимое файла, а не его имя\n"
+"                          \n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr "    -w, --follow           Переход по символьной ссылке\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr "    -V, --version          Вывод информации о версии\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr ""
+"    -?, --help             Вывод данной информации по использованию fsexam\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr "Автоматическое определение кодировки"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr "Обработка скрытых файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr "Длина истории:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr "Поддержание непротиворечивости символьной ссылки и ее целевого файла"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr "Имя файла журнала"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr "Обработка файлов NFS"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr "Модуль специальных типов файлов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr "Включение/отключение записи в журнал"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[ISO8859-1]"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "автоматический режим"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "список кодировок"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "рекурсивный режим"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "Переход от устаревших кодировок к Unicode (UTF8)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "*"
+#~ msgstr "*"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display help content"
+#~ msgstr "Вывод содержания справки"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the dryrun result pane"
+#~ msgstr "Вывод панели результатов пробного прогона"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the report pane"
+#~ msgstr "Вывод панели отчетов"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the search result window"
+#~ msgstr "Вывод окна результатов поиска"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preference setting"
+#~ msgstr "Значения параметров"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preview plain text file content"
+#~ msgstr "Предварительный просмотр содержимого файла простого текста"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Select A File"
+#~ msgstr "Выберите файл"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "[Content] %s - >%s"
+#~ msgstr "[Содержимое] %s - >%s"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/sv.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,1722 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+# SUN MESSAGE
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2004-06-16 15:05+0900\n"
+"Last-Translator: Sun G11n <[email protected]>\n"
+"Language-Team: Sun G11n <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr ""
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:3
+#, fuzzy
+msgid "<b>Encoding List:</b>"
+msgstr "Kodningslista"
+
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr ""
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:7
+#, fuzzy
+msgid "<b>_Location:</b>"
+msgstr "Plats:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:8
+#, fuzzy
+msgid "<b>_Report Pane</b>"
+msgstr "_Rapportfönster"
+
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr ""
+
+# SUN MSG
+#: ../src/fsexam.glade2.h:14
+#, fuzzy
+msgid "Content Conversion _Mode"
+msgstr "Filinnehåll - konverteringsfel"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:15
+#, fuzzy
+msgid "Convert"
+msgstr "_Innehåll"
+
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr ""
+
+# SUN MSG
+#: ../src/fsexam.glade2.h:27
+#, fuzzy
+msgid "File Content _Mode"
+msgstr "Filinnehåll"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+#, fuzzy
+msgid "File Encoding Examiner"
+msgstr "Undersökning av filsystem"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:29
+#, fuzzy
+msgid "File Encoding Examiner Preferences"
+msgstr "Inställningar för File System Examiner"
+
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr ""
+
+# SUN MSG
+#: ../src/fsexam.glade2.h:31
+#, fuzzy
+msgid "File content conversion mode"
+msgstr "Filinnehåll - konverteringsfel"
+
+# SUN MSG
+#: ../src/fsexam.glade2.h:32
+#, fuzzy
+msgid "File name conversion mode"
+msgstr "Filnamn - konverteringsfel"
+
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:53
+#, fuzzy
+msgid "Restore"
+msgstr "Återställ %s"
+
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr ""
+
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:74
+#, fuzzy
+msgid "_Auto Conversion"
+msgstr "_Automatisk konvertering"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:75
+#, fuzzy
+msgid "_Auto Detection"
+msgstr "_Åtgärd"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:76
+#, fuzzy
+msgid "_Content"
+msgstr "_Innehåll"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:77
+#, fuzzy
+msgid "_Convert"
+msgstr "_Innehåll"
+
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr ""
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr "_Redigera"
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "_Arkiv"
+
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr ""
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "_Hjälp"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:84
+#, fuzzy
+msgid "_Name Conversion Mode"
+msgstr "_Automatisk konvertering"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:85
+#, fuzzy
+msgid "_Preview Content"
+msgstr "_Förhandsgranska innehåll"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "_Rekursivt läge"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "_Rapportfönster"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:88
+#, fuzzy
+msgid "_Restore"
+msgstr "Återställ %s"
+
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr ""
+
+# SUN MESSAGE
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "_Visa"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr ""
+
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr ""
+
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/callbacks.c:124
+#, fuzzy
+msgid "No Selection"
+msgstr "Välj mapp"
+
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr ""
+
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr ""
+
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr ""
+
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr ""
+
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr ""
+
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr ""
+
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr ""
+
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr ""
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr ""
+
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr ""
+
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr ""
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr ""
+
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr ""
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr ""
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr ""
+
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr ""
+
+# SUN MESSAGE
+#: ../src/fsexam-convname.c:973
+#, fuzzy, c-format
+msgid "Candidate list:\n"
+msgstr "Välj kandidat"
+
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr ""
+
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr ""
+
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr ""
+
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr ""
+
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr ""
+
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr ""
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr ""
+
+# SUN MSG
+#: ../src/fsexam-encoding-dialog.c:206
+#, fuzzy
+msgid "The supported encoding list:\n"
+msgstr "kodningslista"
+
+# SUN MESSAGE
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+#, fuzzy
+msgid "_Description"
+msgstr "_Åtgärd"
+
+# SUN MESSAGE
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+#, fuzzy
+msgid "_Encoding"
+msgstr "Kodningslista"
+
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr ""
+
+# SUN MSG
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+#, fuzzy
+msgid "File name is UTF-8 already"
+msgstr "Filnamn - är redan UTF8"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+#, fuzzy
+msgid "File content is UTF-8 already"
+msgstr "Filinnehåll - redan UTF8"
+
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr ""
+
+# SUN MESSAGE
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+#, fuzzy
+msgid "File doesn't exist"
+msgstr "Filen finns inte än"
+
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr ""
+
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr ""
+
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr ""
+
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr ""
+
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr ""
+
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr ""
+
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr ""
+
+# SUN MESSAGE
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+#, fuzzy
+msgid "Symlink target don't exist"
+msgstr "Katalogen finns inte än"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+#, fuzzy
+msgid "Can't convert given file"
+msgstr "Det går inte att konvertera innehållet i mappen"
+
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr ""
+
+# SUN MESSAGE
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+#, fuzzy
+msgid "No proper permission"
+msgstr "Ingen läsbehörighet"
+
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr ""
+
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr ""
+
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr ""
+
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr ""
+
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr ""
+
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr ""
+
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr ""
+
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr ""
+
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr ""
+
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr ""
+
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr ""
+
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr ""
+
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr ""
+
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr ""
+
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr ""
+
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr ""
+
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr ""
+
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr ""
+
+# SUN REVIEWED
+# SUN MESSAGE
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+#, fuzzy
+msgid "Can't convert filename to URI"
+msgstr "Konvertera _filnamn"
+
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr ""
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr ""
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr ""
+
+# SUN MESSAGE
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, fuzzy, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "Det uppstod ett fel då hjälpen skulle visas: %s"
+
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr ""
+
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr ""
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "Ingen läsbehörighet"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "Ingen mapp har angetts"
+
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr ""
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1009
+#, fuzzy
+msgid "Empty folder"
+msgstr "Null-mapp"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+#, fuzzy
+msgid "Symlink target doesn't exist"
+msgstr "Katalogen finns inte än"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "Välj mapp"
+
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr "fsexam används för att konvertera filnamn och innehåll till UTF8"
+
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr ""
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2577
+#, fuzzy
+msgid "No selection"
+msgstr "Välj mapp"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "Det går inte att förhandsgranska flera objekt samtidigt"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2597
+#, fuzzy
+msgid "Cannot preview contents of folder"
+msgstr "Det går inte att konvertera innehållet i mappen"
+
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr ""
+
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr ""
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "Inte klartext"
+
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr ""
+
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr ""
+
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr ""
+
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr ""
+
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr ""
+
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr ""
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr ""
+
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr ""
+
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr ""
+
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr ""
+
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr ""
+
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr ""
+
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr ""
+
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr ""
+
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr ""
+
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr ""
+
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr ""
+
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr ""
+
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr ""
+
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr ""
+
+# SUN MESSAGE
+#: ../data/fsexam.schemas.in.h:1
+#, fuzzy
+msgid "Encoding auto detection"
+msgstr "Välj kandidat"
+
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr ""
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr ""
+"[ISO8859-1,ISO8859-4,ISO8859-5,ISO8859-6,ISO8859-7,ISO8859-8,ISO8859-9]"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "automatiskt läge"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "kodningslista"
+
+# SUN MSG
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "rekursivt läge"
+
+# SUN MSG
+#: ../data/fsexam.desktop.in.h:2
+#, fuzzy
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "Hjälp till att byta från den gamla kodningen till UTF8"
+
+# SUN MSG
+#, fuzzy
+#~ msgid "Display help content"
+#~ msgstr "Filinnehåll"
+
+# SUN MESSAGE
+#, fuzzy
+#~ msgid "Preference setting"
+#~ msgstr "Inställningar"
+
+# SUN MESSAGE
+#~ msgid "File has been emptied, can not be restored!"
+#~ msgstr "Filen har tömts och kan inte återställas."
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return"
+#~ msgstr "lägg till vagnretur"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Open..."
+#~ msgstr "_Öppna..."
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Restore Original File"
+#~ msgstr "_Återställ originalfil"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Convert Content"
+#~ msgstr "Konvertera i_nnehåll"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_About"
+#~ msgstr "_Om"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Sub-folder:"
+#~ msgstr "Undermapp:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "User intervention:"
+#~ msgstr "Användaråtgärd:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "text"
+#~ msgstr "text"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore %s and add Carriage Return"
+#~ msgstr "Återställ %s och lägg till vagnretur"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by adding Carriage Return"
+#~ msgstr "Återställ genom att lägga till vagnretur"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8"
+#~ msgstr "Återställ UTF8"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner name conversion"
+#~ msgstr "File System Examiner namnkonvertering"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Folder already exists"
+#~ msgstr "Mappen finns redan"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return"
+#~ msgstr "ta bort vagnretur"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "delete Carriage Return only"
+#~ msgstr "ta endast bort vagnretur"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "add Carriage Return only"
+#~ msgstr "lägg endast till vagnretur"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Folder doesn't exist yet"
+#~ msgstr "Mappen finns inte än"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "_Preferences"
+#~ msgstr "_Inställningar"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Encode list:"
+#~ msgstr "Kodningslista:"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File System Examiner content conversion"
+#~ msgstr "File System Examiner innehållskonvertering"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s"
+#~ msgstr "Filinnehåll - konvertera från %s"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - convert from %s and delete Carriage Return"
+#~ msgstr "Filinnehåll - konvertera från %s och ta bort vagnretur"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "File content - delete Carriage Return only"
+#~ msgstr "Filinnehåll - ta endast bort vagnretur"
+
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "%s doesn't exist yet"
+#~ msgstr "%s finns inte än"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore UTF8 and delete Carriage Return"
+#~ msgstr "Återställ UTF8 och ta bort vagnretur"
+
+# SUN MSG
+# SUN REVIEWED
+# SUN MESSAGE
+#~ msgid "Restore by deleting Carriage Return"
+#~ msgstr "Återställ genom att ta bort vagnretur"
+
+# SUN MSG
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr ""
+#~ "En lista med suffix. En fil vars suffix tillhör listan antas vara en "
+#~ "vanlig textfil av fsexam."
+
+# SUN MSG
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "Gäller endast filnamnskonvertering! Det är rekursivt läge, genom att "
+#~ "aktivera det kommer fsexam att konvertera namn på fil - och "
+#~ "underbiblioteket till UTF8 rekursivt."
+
+# SUN MSG
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "Gäller endast filnamnskonvertering. Det är automatiskt läge, genom att "
+#~ "aktivera det kommer fsexam att konvertera med bästa konverteringsresultat "
+#~ "utan användarinblandning. Annars visas ett dialogfönster som visar flera "
+#~ "konverteringsförslag och användaren måste välja vilket som är bäst."
+
+# SUN MSG
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "Listan med gamla kodningsnamn är tillgänglig för det specifika språket. "
+#~ "Lägg märke till att den inbördes ordningen i listan är ointressant. "
+#~ "fsexam anser att den bästa är den konvertering som först leder till en "
+#~ "lyckad konvertering."
+
+# SUN MSG
+#~ msgid "suffix list"
+#~ msgstr "suffixlista"
+
+# SUN MSG
+#~ msgid "Directory already exists"
+#~ msgstr "Katalogen finns redan"
+
+# SUN MSG
+#~ msgid "File already exists"
+#~ msgstr "Filen finns redan"
+
+# SUN MSG
+#~ msgid "Null directory"
+#~ msgstr "Nullkatalog"
+
+# SUN MSG
+#~ msgid "Apply by name"
+#~ msgstr "Använd efter namn"
+
+# SUN MSG
+#~ msgid "Apply by content"
+#~ msgstr "Använd efter innehåll"
+
+# SUN MSG
+#~ msgid "Peek content"
+#~ msgstr "Peek-innehåll"
+
+# SUN MSG
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "Fel vid inläsning av ikonen %s\n"
+
+# SUN MSG
+#~ msgid "popen error, please try again!"
+#~ msgstr "popen-fel, försök igen."
+
+# SUN MSG
+#~ msgid "Not one plain text"
+#~ msgstr "Inte en vanlig text"
+
+# SUN MSG
+#~ msgid "File content candidate window"
+#~ msgstr "Kandidatfönster för filinnehåll"
+
+# SUN MSG
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "Bytesekvensen känns inte igen ännu"
+
+# SUN MSG
+#~ msgid "File content - open failure"
+#~ msgstr "Filinnehåll - öppningsfel"
+
+# SUN MSG
+#~ msgid "File content - write error"
+#~ msgstr "Filinnehåll -  skrivfel"
+
+# SUN MSG
+#~ msgid "File content - successful conversion"
+#~ msgstr "Filinnehåll - konverteringen lyckades"
+
+# SUN MSG
+#~ msgid "File content - UTF8 alreay"
+#~ msgstr "Filinnehåll - är redan UTF8"
+
+# SUN MSG
+#~ msgid "Directory node"
+#~ msgstr "Katalognod"
+
+# SUN MSG
+#~ msgid "File content - successful undo"
+#~ msgstr "Filinnehåll - det gick att ångra"
+
+# SUN MESSAGE
+#~ msgid "No permission to rename"
+#~ msgstr "Ingen behörighet att ändra namn"
+
+# SUN MESSAGE
+#~ msgid "File Hierarchy"
+#~ msgstr "Filhierarki"
+
+# SUN MESSAGE
+#~ msgid "No directory specified"
+#~ msgstr "Ingen katalog har angetts"
+
+# SUN MESSAGE
+#~ msgid "Directory Selection"
+#~ msgstr "Välj katalog"
+
+# SUN MESSAGE
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+# SUN MESSAGE
+#~ msgid "Report Pane"
+#~ msgstr "Rapportfönster"
+
+# SUN MESSAGE
+#~ msgid "Welcome"
+#~ msgstr "Välkommen"
+
+# SUN MESSAGE
+#~ msgid "Recursive Mode"
+#~ msgstr "Rekursivt läge"
+
+# SUN MESSAGE
+#~ msgid "Automatic Conversion"
+#~ msgstr "Automatisk konvertering"
+
+# SUN MESSAGE
+#~ msgid "Conversion failure"
+#~ msgstr "Konverteringsfel"
+
+# SUN MESSAGE
+#~ msgid "UTF8 already"
+#~ msgstr "Redan UTF8"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/zh_CN.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2387 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexam 0.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:10+0800\n"
+"PO-Revision-Date: 2004-05-17 09:34+0000\n"
+"Last-Translator: [email protected]\n"
+"Language-Team: [email protected]\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr "<b>可用编码:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr "<b>转换设置:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr "<b>编码列表:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr "<b>选定的编码:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr "<b>搜索结果</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr "<b>模拟运行结果(_D)</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr "<b>位置(_L):</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr "<b>报告窗格(_R)</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr "添加或删除编码"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr "归档或压缩文件"
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr "清除搜索结果(_H)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr "清除搜索结果"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr "内容转换模式(_M)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr "转换"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr "根据以前的模拟运行结果转换文件名或内容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr "自动使用第一个候选项转换文件而不是进行交互式转换"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr "根据当前模式转换选定文件的名称或内容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr "转换而不检测编码是否为 UTF-8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr "修改的数据多于:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr "自动检测文件名或文件内容的编码"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr "不检查符号链接内容(_K)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr "不尝试在符号链接文件及其目标文件之间保持一致性"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr "模拟运行"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr "模拟运行而不更改磁盘中的任何文件名或文件内容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr "模拟运行而不更改磁盘中的文件"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr "文件内容模式(_M)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr "文件编码检查器"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr "文件编码检查器首选项"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr "文件名模式(_N)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr "文件内容转换模式"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr "文件名转换模式"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr "跟随符号链接(_S)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr "跟随符号链接"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr "强制转换"
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr "处理隐藏文件(_H)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr "处理远程文件(_R)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr "隐藏搜索结果"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr "历史记录长度:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr "日志文件名:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr "在文件夹中查找:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr "名称包含:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr "打开文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr "所属组:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr "所属用户:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr "正在处理归档或压缩文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr "正在处理隐藏文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr "正在处理非本地文件(如 NFS 文件)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr "正在处理特殊类型的文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr "递归处理文件夹中的文件"
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr "恢复"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr "根据转换模式恢复给定文件的名称或内容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr "恢复选定文件的名称或内容"
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr "方案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr "搜索结果"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr "搜索文件(_F)..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr "搜索文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr "根据用户给定的条件搜索文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr "选择文件夹"
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr "特殊文件处理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr "修改的状态多于:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr "停止搜索(_S)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr "停止搜索文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr "已存储转换次数。一次转换多个文件计为 1 次"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr "撤消上一操作"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr "使用日志文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr "使用日志文件"
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr "自动转换(_A)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr "自动检测(_A)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr "内容(_C)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr "转换(_C)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr "模拟运行(_D)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr "模拟运行结果窗格(_D)"
+
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr "编辑(_E)"
+
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "文件(_F)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr "强制转换(_F)"
+
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "帮助(_H)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr "名称转换模式(_N)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr "预览内容(_P)"
+
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "递归模式(_R)"
+
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "报告面板(_R)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr "恢复(_R)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr "方案(_S)"
+
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "显示(_V)"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr "fsexam 的一个实例已经在运行。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr "警告:无法将编码 %s 转换为标准的编码名称,将忽略该转换。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+"未提供编码。请在首选项对话框中选中“自动检测”按钮或通过编码对话框添加编码。\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr "无选择"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr "没有需要处理的文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr "无需撤消任何操作"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr "无结果。有关更多信息,请参见报告窗格。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr "停止搜索..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr "已清除搜索结果。"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr "%s 不是受支持的编码名称,请使用 'fsexamc -l' 列出受支持的编码。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr "您的系统不支持从 '%s' 到 'UTF-8' 的转换,将忽略该转换。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr "find(1) 的参数为空。\n"
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr "正在搜索..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr "搜索已完成"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr "执行搜索命令时出错。"
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr "找到 %d 个文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr "搜索已停止"
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr "[内容] %s - >%s"
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr "重新创建符号链接成功"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr "[名称] %s -> %s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr "候选列表:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr "\t[编号] 编码名称\t转换结果\n"
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr "没有正确的编码。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr "请选择编号('s' 以跳过): "
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr "请选择候选项"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr "不再询问"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr "繁体中文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr "繁体中文(中国香港特别行政区)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr "中欧"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr "西里尔文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr "西欧"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr "希腊文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr "土耳其文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr "希伯来文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr "阿拉伯文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr "波罗的海文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr "越南文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr "西欧"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr "中欧"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr "俄文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr "葡萄牙文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr "冰岛文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr "加拿大法文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr "北欧"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr "西里尔文/俄文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr "泰文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr "日文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr "韩文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr "简体中文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr "凯尔特文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr "罗马尼亚文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr "南欧"
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr "不支持编码 '%s'。\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr "支持的编码列表:\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr "说明(_D)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr "编码(_E)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr "成功"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr "文件名已经采用 UTF-8 编码"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr "文件内容已经采用 UTF-8 编码"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr "新名称与旧名称相同"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr "文件不存在"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr "无内存"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr "编码索引无效"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr "无法打开文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr "无法重命名文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr "无法写入文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr "给定的编码列表不合适"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr "不是正规文件"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr "符号链接目标不存在"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr "无法转换给定的文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr "无法读取文件"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr "没有适当的权限"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr "无法重新链接符号链接,这将破坏符号链接"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr "已删除符号链接文件,但无法重新创建该文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr "模拟运行文件格式无效"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr "无法获取当前目录"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr "无法更改目录"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr "没有当前文件的历史记录信息"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr "没有给定的文件或所有文件都已采用 UTF-8 编码"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr "存在同名文件,将附加 'utf-8' 作为后缀"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr "跳过隐藏文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr "跳过非本地文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr "空文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr "无参数"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr "过滤期间出错"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr "不支持此文件类型"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr "缓冲区溢出"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr "已取消转换"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr "无法写入模拟运行结果文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr "无法打开模拟运行结果文件"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr "无法将文件名转换为 URI"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr "出现未知错误"
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr "不支持编码 '%s'\n"
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr "是否要永久保存此编码列表?"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "显示帮助时出错:%s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr "大致摘要:给定 %d,总数 %d,忽略 %d,失败 %d,成功 %d\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+"由于缺少 iso8859-1 语言环境,无法运行 tar 命令。有关更多信息,请参见 fsexam"
+"(1) 手册页。"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr "不支持此文件类型"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr "归档文件为空或具有绝对路径,因此无法转换此归档文件中的文件"
+
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "没有读权限"
+
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "未指定文件夹"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr "文件不存在或没有访问权限。"
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr "文件夹为空"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr "符号链接目标不存在"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr "选定文件不为空,是否要将其覆盖?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+"选定文件未采用 UTF-8 编码,强烈建议您使用 UTF-8文件名。\n"
+"\n"
+"是否要将其转换为 UTF8?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+"无法将 %s 转换为 UTF8:%s。\n"
+"\n"
+"请注意,可能存在部分转换。\n"
+"所以请刷新目录,然后再次选择文件。"
+
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "选择文件夹"
+
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr "fsexam帮助用户移植传统编码的文件名和文件内容编码到UTF8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr "缺少文件 \"%s\"。"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr "无选择"
+
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "无法预览多项选择"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr "无法预览文件夹的内容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr "无法访问"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr "不是正规文件"
+
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "非文本文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr "另一个 fsexam 正在运行,将立即退出\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr "运行 'fsexam --help' 以了解用法信息。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr "警告:给定的历史记录长度太短,将重置为缺省值 %d\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr "请输入文件名:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr "错误:未给定任何编码,已禁用自动检测。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr "无法打开模拟运行文件 %s\n"
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr "用法:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr "    fsexam [选项] ...[文件]\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+"\n"
+"支持的选项:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr "    -a, --auto-detect      启用编码自动检测\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr "    -d 模拟运行结果      指定模拟运行结果文件\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr "    -E 模块名称         启用特殊文件处理\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr "    -e 编码列表       指定其他编码列表\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr "    -F, --force-convert    强制转换模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr "    -f '表达式'        指定文件过滤条件\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr "    -H, --hidden           打开隐藏文件处理\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr "    -b, --auto-conversion  交互模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr "    -l, list-encoding      列出所有受支持的编码\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr "    -k, --no-check-symlink-content\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+"                           不检查符号链接与其\n"
+"                           目标名称之间的一致性\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr "    -L 日志文件             指定日志文件\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr "    -n, --dry-run          模拟运行模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr "    -P, --append-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           将 '-e' 指定的编码列表附加\n"
+"                           到预定义的编码列表\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr "    -p, --prepend-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           将 '-e' 指定的编码列表添加\n"
+"                           到预定义编码列表的前面\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr "    -R, --recursive        递归模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr "    -r, --remote           打开 nfs 文件处理\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr "    -S, --save-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+"                           永久保存 '-e' 指定的\n"
+"                           编码列表\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+"    -s, --restore          恢复给定文件的原始\n"
+"                           名称或内容\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+"    -t, --conv-content     转换文件内容而非\n"
+"                           文件名\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr "    -w, --follow           跟随符号链接\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr "    -V, --version          列显版本信息\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr "    -?, --help             列显 fsexam 的用法信息(本信息)\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr "编码自动检测"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr "隐藏文件处理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr "历史记录长度"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr "保持符号链接及其引用之间的一致性"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr "日志文件名"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr "NFS 文件处理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr "特殊文件类型模块"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr "是否写入日志"
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[GB18030,BIG5,ISO-2022-CN]"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "自动模式"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "编码列表"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "递归模式"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "帮助从旧的编码迁移至 Unicode(UTF8)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "*"
+#~ msgstr "*"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the dryrun result pane"
+#~ msgstr "显示模拟运行结果窗格"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the report pane"
+#~ msgstr "显示报告窗格"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the search result window"
+#~ msgstr "显示搜索结果窗口"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preview plain text file content"
+#~ msgstr "预览纯文本文件内容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Select A File"
+#~ msgstr "选择文件"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "[Content] %s - >%s"
+#~ msgstr "[内容] %s - >%s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Display help content"
+#~ msgstr "显示帮助内容"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Preference setting"
+#~ msgstr "首选项设置"
+
+#~ msgid "File has been emptied, can not be restored!"
+#~ msgstr "文件已被清空,无法恢复!"
+
+#~ msgid "Folder doesn't exist yet"
+#~ msgstr "文件夹不存在"
+
+#~ msgid "add Carriage Return"
+#~ msgstr "添加回车"
+
+#~ msgid "_Open..."
+#~ msgstr "打开(_O)..."
+
+#~ msgid "_Restore Original File"
+#~ msgstr "恢复原始文件(_R)"
+
+#~ msgid "Sub-folder:"
+#~ msgstr "子文件夹:"
+
+#~ msgid "User intervention:"
+#~ msgstr "用户介入:"
+
+#~ msgid "text"
+#~ msgstr "文本"
+
+#~ msgid "Restore %s and add Carriage Return"
+#~ msgstr "恢复 %s 并添加回车"
+
+#~ msgid "Restore by adding Carriage Return"
+#~ msgstr "通过添加回车来恢复"
+
+#~ msgid "Restore UTF8"
+#~ msgstr "恢复 UTF8"
+
+#~ msgid "File System Examiner name conversion"
+#~ msgstr "文件系统检查器文件名转换"
+
+#~ msgid "Folder already exists"
+#~ msgstr "文件夹已存在"
+
+#~ msgid "delete Carriage Return"
+#~ msgstr "删除回车"
+
+#~ msgid "delete Carriage Return only"
+#~ msgstr "仅删除回车"
+
+#~ msgid "add Carriage Return only"
+#~ msgstr "仅添加回车"
+
+#~ msgid "_Convert Content"
+#~ msgstr "转换文件内容(_C)"
+
+#~ msgid "_Preferences"
+#~ msgstr "首选项(_P)"
+
+#~ msgid "_About"
+#~ msgstr "关于(_A)"
+
+#~ msgid "Encode list:"
+#~ msgstr "编码列表:"
+
+#~ msgid "File System Examiner content conversion"
+#~ msgstr "文件系统检查器内容转换"
+
+#~ msgid "File content - convert from %s"
+#~ msgstr "文件内容 - 从 %s 转换"
+
+#~ msgid "File content - convert from %s and delete Carriage Return"
+#~ msgstr "文件内容 - 从 %s 转换并删除回车"
+
+#~ msgid "File content - delete Carriage Return only"
+#~ msgstr "文件内容 - 仅删除回车"
+
+#~ msgid "%s doesn't exist yet"
+#~ msgstr "%s 尚不存在"
+
+#~ msgid "Restore UTF8 and delete Carriage Return"
+#~ msgstr "恢复 UTF8 并删除回车"
+
+#~ msgid "Restore by deleting Carriage Return"
+#~ msgstr "删除回车以恢复"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr "后辍列表。所有后辍在此列表中的文件都被 fsexam 假定为纯文本文件。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "只适用于文件名转换!它是一种递归模式,通过启用它,fsexam 将文件名和子目录"
+#~ "名递归地转换为 UTF8 格式。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "只适用于文件名转换。它是一种自动模式,通过启用它,fsexam 将自动进行能获得"
+#~ "最佳转换结果的转换,无需用户干预。否则,将会显示一个对话框,其中包含若干备"
+#~ "选转换选项,用户需要决定哪种转换是最佳方式。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "特定语言的遗留编码名称列表。注意:列表中的顺序十分重要。fsexam 将可以从其"
+#~ "进行成功转换的最佳名称放在列表中的第一位。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "suffix list"
+#~ msgstr "后辍列表"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File already exists"
+#~ msgstr "文件已存在"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Apply by name"
+#~ msgstr "按名称应用"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Apply by content"
+#~ msgstr "按内容应用"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "加载图标 %s 时出错\n"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "popen error, please try again!"
+#~ msgstr "打开错误,请重试!"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Not one plain text"
+#~ msgstr "不是纯文本文件"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content candidate window"
+#~ msgstr "文件内容备选窗口"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "尚未识别字节序列"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - open failure"
+#~ msgstr "文件内容 - 打开失败"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - write error"
+#~ msgstr "文件内容 - 写入错误"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - successful conversion"
+#~ msgstr "文件内容 - 成功转换"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - UTF8 alreay"
+#~ msgstr "文件内容 - 已是 UTF8"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - successful undo"
+#~ msgstr "文件内容 - 成功撤消"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Directory already exists"
+#~ msgstr "目录已存在"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Null directory"
+#~ msgstr "空目录"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Peek content"
+#~ msgstr "取出内容"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Directory node"
+#~ msgstr "目录节点"
+
+#~ msgid "No permission to rename"
+#~ msgstr "没有权限重命名"
+
+#~ msgid "File Hierarchy"
+#~ msgstr "文件目录"
+
+#~ msgid "No directory specified"
+#~ msgstr "没有指定目录"
+
+#~ msgid "Directory Selection"
+#~ msgstr "目录选择"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+#~ msgid "Report Pane"
+#~ msgstr "转码报告"
+
+#~ msgid "Welcome"
+#~ msgstr "欢迎"
+
+#~ msgid "Recursive Mode"
+#~ msgstr "递归模式"
+
+#~ msgid "Automatic Conversion"
+#~ msgstr "自动转换"
+
+#~ msgid "About"
+#~ msgstr "关于"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/zh_HK.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2419 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2004-06-16 15:05+0900\n"
+"Last-Translator: Sun G11n <[email protected]>\n"
+"Language-Team: Sun G11n <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr "<b>可用的編碼:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr "<b>轉換設定:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr "<b>編碼清單:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr "<b>選取的編碼:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr "<b>搜尋結果</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr "<b>模擬測試結果(_D)</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr "<b>位置(_L):</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr "<b>報告窗格(_R)</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr "新增或移除編碼"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr "歸檔或壓縮檔案"
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr "清除搜尋結果(_H)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr "清除搜尋結果"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr "內容轉換模式(_M)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr "轉換"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr "以先前的模擬測試結果為基礎來轉換檔案名稱或內容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr "自動使用第一個候選方式來轉換檔案,而不是使用互動式轉換"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr "根據目前的模式來轉換選取檔案的名稱或內容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr "在不偵測編碼是否為 UTF-8 的情況下轉換"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr "資料的修改超過:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr "自動偵測檔案名稱或檔案內容的編碼"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr "請勿檢查符號連結內容(_K)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr "請勿嘗試將符號連結檔案和其目標檔案保持一致"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr "模擬測試"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr "在不變更磁碟中任何檔案名稱或內容的情況下進行模擬測試"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr "在不變更磁碟中檔案的情況下進行模擬測試"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr "檔案內容模式(_M)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr "檔案編碼檢查程式"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr "檔案編碼檢查程式喜好設定"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr "檔案名稱模式(_N)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr "檔案內容轉換模式"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr "檔案名稱轉換模式"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr "跟隨符號連結(_S)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr "跟隨符號連結"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr "強制轉換"
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr "處理隱藏式檔案(_H)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr "處理遠端檔案(_R)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr "隱藏搜尋結果"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr "歷程記錄長度:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr "記錄檔名稱:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr "在資料夾中查詢:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr "名稱包含:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr "開啟檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr "所屬群組:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr "所屬使用者:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr "正在處理歸檔或壓縮檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr "正在處理隱藏式檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr "正在處理非本機檔案,例如 NFS 檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr "正在處理特殊類型的檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr "遞迴處理以下資料夾中的檔案:"
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr "復原"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr "根據轉換模式來復原指定檔案的名稱或內容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr "復原選取檔案的名稱或內容"
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr "方案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr "搜尋結果"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr "搜尋檔案(_F)…"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr "搜尋檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr "根據使用者指定的條件來搜尋檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr "選取資料夾"
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr "特殊檔案處理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr "狀態的修改超過:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr "停止搜尋(_S)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr "停止搜尋檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr "轉換的次數已儲存。一次轉換多個檔案的計數為 1 次"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr "還原上個動作"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr "使用記錄檔"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr "使用記錄檔"
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr "自動轉換(_A)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr "自動偵測(_A)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr "內容(_C)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr "轉換(_C)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr "模擬測試(_D)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr "模擬測試結果窗格(_D)"
+
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr "編輯(_E)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "檔案(_F)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr "強制轉換(_F)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "說明(_H)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr "名稱轉換模式(_N)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr "預覽內容(_P)"
+
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "遞迴模式(_R)"
+
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "報告窗格(_R)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr "復原(_R)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr "方案(_S)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "檢視(_V)"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr "已有一個 Fsexam 實例正在執行中。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr "警告:無法將編碼 %s 轉換成正式的編碼名稱,將會忽略它。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+"沒有提供任何編碼。請勾選喜好設定對話方塊中的「自動偵測」按鈕或透過編碼對話方"
+"塊來增加編碼。\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr "沒有選取"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr "沒有需要處理的檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr "沒有需要還原的項目"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr "沒有任何結果。如需更多資訊,請參閱報告窗格。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr "停止搜尋..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr "搜尋結果已清除。"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr "%s 不是支援的編碼名稱,請使用「fsexamc –l」來列出支援的編碼。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr "您的系統不支援從「%s」到「UTF-8」的轉換,將會忽略它。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr "find(1) 的參數是空的。\n"
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr "正在搜尋..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr "搜尋完成"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr "執行搜尋指令期間發生錯誤。"
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr "找到 %d 個檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr "搜尋已停止"
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr "[內容] %s - > %s"
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr "重新建立符號連結成功"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr "[名稱] %s -> %s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr "候選清單:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr "\t[號碼] 編碼名稱\t轉換結果\n"
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr "沒有適當的編碼。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr "請選取號碼 (「s」則略過): "
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr "請選取候選項目"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr "不要再問這個問題"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr "繁體中文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr "繁體中文 (香港)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr "中歐"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr "斯拉夫文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr "西歐"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr "希臘文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr "土耳其文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr "希伯來文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr "阿拉伯文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr "波羅的海文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr "越南文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr "西歐"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr "中歐"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr "俄文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr "葡萄牙文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr "冰島文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr "加拿大法文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr "日耳曼文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr "斯拉夫文/俄文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr "泰文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr "日文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr "韓文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr "簡體中文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr "塞爾特文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr "羅馬尼亞文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr "南歐"
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr "不支援編碼「%s」。\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr "支援的編碼清單:\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr "說明(_D)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr "編碼(_E)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr "成功"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr "檔案名稱已經是 UTF-8 編碼"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr "檔案內容已經是 UTF-8 編碼"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr "新的名稱與舊的名稱相同"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr "檔案不存在"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr "沒有記憶體"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr "無效的編碼索引"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr "無法開啟檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr "無法重新命名檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr "無法寫入檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr "指定的編碼清單不適合"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr "不是一般檔案"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr "符號連結目標不存在"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr "無法轉換指定的檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr "無法讀取檔案"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr "沒有適當的權限"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr "無法重新連結符號連結,這會中斷符號連結"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr "已刪除符號連結檔案,但是無法重新建立它"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr "模擬測試檔案的格式無效"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr "無法取得目前的目錄"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr "無法變更目錄"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr "沒有目前檔案的歷程記錄資訊"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr "沒有指定的檔案,或所有檔案都已經是 UTF-8 編碼"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr "存在相同名稱的檔案,將會附加「utf-8」做為字尾。"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr "略過隱藏式檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr "略過非本機檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr "空檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr "沒有參數"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr "篩選期間發生錯誤"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr "不支援此種檔案類型"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr "緩衝區溢位"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr "已取消轉換"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr "無法寫入模擬測試結果檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr "無法開啟模擬測試結果檔案"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr "無法將檔案名稱轉換成 URI"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr "發生不明的錯誤"
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr "不支援編碼「%s」\n"
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr "是否要永久儲存此編碼清單?"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "顯示說明時發生錯誤:%s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+"簡略摘要:已指定 %d 個、總數 %d 個、忽略 %d 個、失敗 %d 個、成功 %d 個\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+"由於缺少 iso8859-1 語言環境,無法執行 tar 指令。如需更多資訊,請參閱「fsexam"
+"(1) 線上手冊」。"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr "不支援此檔案類型"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr "歸檔檔案是空的,或是具有絕對路徑,因此無法在此歸檔檔案中轉換檔案"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "沒有讀取權限"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "未指定資料夾"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr "檔案不存在或沒有存取權限。"
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr "空資料夾"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr "符號連結目標不存在"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr "選取的檔案不是空的,是否要覆寫它?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+"選取的檔案不是 UTF-8 編碼,我們強烈建議您使用 UTF-8 檔案名稱\n"
+"\n"
+" 是否要將它轉換成 UTF8?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+"無法將 %s 轉換成 UTF8:%s。\n"
+"\n"
+"請注意,可能已轉換一部分。\n"
+"因此,請重新整理您的目錄,然後再次選取檔案。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "資料夾選取範圍"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr "fsexam 可以協助將檔案名稱和檔案內容的現用編碼方式轉換為 UTF8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr "缺少檔案「%s」。"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr "沒有選取"
+
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "無法預覽多重選取"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr "無法預覽資料夾的內容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr "無法存取"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr "不是一般檔案"
+
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "非純文字"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr "另一個 fsexam 正在執行中,將立即退出\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr "執行「fsexam --help」以取得使用資訊。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr "警告:指定的歷程記錄長度太短,將重設成預設值 %d\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr "請輸入檔案名稱:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr "錯誤:沒有指定的編碼並且已停用自動偵測。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr "無法開啟模擬測試檔案 %s\n"
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr "用法:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr "    fsexam [選項] ...[檔案]\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+"\n"
+"支援的選項:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr "    -a, --auto-detect      啟用編碼自動偵測\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr "    -d dry-run-result      指定模擬測試結果檔案\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr "    -E module-name         啟用特殊檔案處理\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr "    -e encoding-list       指定附加的編碼清單\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr "    -F, --force-convert    強制轉換模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr "    -f 'expression'        指定檔案篩選條件\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr "    -H, --hidden           啟動隱藏式檔案處理\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr "    -b, --auto-conversion  互動式模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr "    -l, list-encoding      列出所有支援的編碼\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr "    -k, --no-check-symlink-content\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+"                           請勿檢查符號連結和\n"
+"                           其目標檔案名稱之間的一致性\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr "    -L logfile             指定記錄檔\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr "    -n, --dry-run          模擬測試模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr "    -P, --append-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           將「-e」指定的編碼清單附加到\n"
+"                           預先定義的編碼清單\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr "    -p, --prepend-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           將「-e」指定的編碼清單前置於\n"
+"                           預先定義的編碼清單\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr "    -R, --recursive        遞迴模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr "    -r, --remote           啟動 nfs 檔案處理\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr "    -S, --save-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+"                           永久儲存「-e」\n"
+"                           指定的編碼清單\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+"    -s, --restore          復原指定檔案的\n"
+"                           原始名稱或內容\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+"    -t, --conv-content     轉換檔案內容\n"
+"                           而非檔案名稱\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr "    -w, --follow           跟隨符號連結\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr "    -V, --version          列示版本資訊\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr "    -?, --help             列示 fsexam 的用法資訊\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr "編碼自動偵測"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr "隱藏式檔案處理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr "歷程記錄長度"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr "保持符號連結和其參照一致"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr "記錄檔名稱"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr "NFS 檔案處理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr "特殊檔案類型模組"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr "是否寫入記錄"
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[BIG5,EUC-TW,GB18030]"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "自動模式"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "編碼清單"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "遞迴模式"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "協助從原來的編碼遷移至 Unicode (UTF8)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "*"
+#~ msgstr "*"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Display help content"
+#~ msgstr "顯示說明內容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the dryrun result pane"
+#~ msgstr "顯示模擬測試結果窗格"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the report pane"
+#~ msgstr "顯示報告窗格"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the search result window"
+#~ msgstr "顯示搜尋結果視窗"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Preference setting"
+#~ msgstr "喜好設定"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preview plain text file content"
+#~ msgstr "預覽一般文字檔案內容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Select A File"
+#~ msgstr "選取檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "[Content] %s - >%s"
+#~ msgstr "[內容] %s - > %s"
+
+#~ msgid "File has been emptied, can not be restored!"
+#~ msgstr "檔案已清空,無法復原!"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Folder already exists"
+#~ msgstr "資料夾已存在"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Folder doesn't exist yet"
+#~ msgstr "資料夾不存在"
+
+#~ msgid "add Carriage Return"
+#~ msgstr "新增換行鍵"
+
+#~ msgid "_Open..."
+#~ msgstr "開啟(_O)..."
+
+#~ msgid "_Restore Original File"
+#~ msgstr "復原原始檔案(_R)"
+
+#~ msgid "_Convert Content"
+#~ msgstr "轉換內容(_C)"
+
+#~ msgid "_About"
+#~ msgstr "關於(_A)"
+
+#~ msgid "Sub-folder:"
+#~ msgstr "子資料夾:"
+
+#~ msgid "User intervention:"
+#~ msgstr "使用者介入:"
+
+#~ msgid "text"
+#~ msgstr "文字"
+
+#~ msgid "Restore %s and add Carriage Return"
+#~ msgstr "復原 %s 並新增換行鍵"
+
+#~ msgid "Restore by adding Carriage Return"
+#~ msgstr "新增換行鍵即可復原"
+
+#~ msgid "Restore UTF8"
+#~ msgstr "復原 UTF8"
+
+#~ msgid "File System Examiner name conversion"
+#~ msgstr "檔案系統檢查程式名稱轉換"
+
+#~ msgid "delete Carriage Return"
+#~ msgstr "刪除換行鍵"
+
+#~ msgid "delete Carriage Return only"
+#~ msgstr "只刪除換行鍵"
+
+#~ msgid "add Carriage Return only"
+#~ msgstr "只新增換行鍵"
+
+#~ msgid "_Preferences"
+#~ msgstr "喜好設定(_P)"
+
+#~ msgid "Encode list:"
+#~ msgstr "編碼清單:"
+
+#~ msgid "File System Examiner content conversion"
+#~ msgstr "檔案系統檢查程式內容轉換"
+
+#~ msgid "File content - convert from %s"
+#~ msgstr "檔案內容 - 從 %s 轉換"
+
+#~ msgid "File content - convert from %s and delete Carriage Return"
+#~ msgstr "檔案內容 - 從 %s 轉換並刪除換行鍵"
+
+#~ msgid "File content - delete Carriage Return only"
+#~ msgstr "檔案內容 - 只刪除換行鍵"
+
+#~ msgid "%s doesn't exist yet"
+#~ msgstr "%s 不存在"
+
+#~ msgid "Restore UTF8 and delete Carriage Return"
+#~ msgstr "復原 UTF8 並刪除換行鍵"
+
+#~ msgid "Restore by deleting Carriage Return"
+#~ msgstr "刪除換行鍵即可復原"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr "字尾清單。Fsexam 會將字尾屬於此清單的檔案假設為純文字檔。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "僅適用於檔案名稱轉換!這是遞迴模式,啟動此模式,Fsexam 將轉換檔案的名稱與"
+#~ "子目錄為 UTF8。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "僅適用於檔案名稱轉換。這是自動模式,啟動自動模式,不需使用者介入,Fsexam "
+#~ "就會自動轉換成最佳的轉換結果。否則,將顯示具有數項轉換選項的對話方塊,使用"
+#~ "者需要決定最佳的轉換方式。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "可供特定的語言使用之舊編碼名稱清單。請注意:清單內為有效的排序。Fsexam 會"
+#~ "將最佳的視為第一個,並成功對其執行轉換。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "suffix list"
+#~ msgstr "字尾清單"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File already exists"
+#~ msgstr "檔案已存在"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Apply by name"
+#~ msgstr "依名稱套用"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Apply by content"
+#~ msgstr "依內容套用"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Peek content"
+#~ msgstr "窺看內容"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "載入圖示 %s 時發生錯誤\n"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "popen error, please try again!"
+#~ msgstr "popen 錯誤,請再試一次!"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Not one plain text"
+#~ msgstr "不是一個純文字"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content candidate window"
+#~ msgstr "檔案內容可選用視窗"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "無法識別位元數序列"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - open failure"
+#~ msgstr "檔案內容 - 開啟失敗"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - write error"
+#~ msgstr "檔案內容 - 寫入錯誤"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - successful conversion"
+#~ msgstr "檔案內容 - 成功轉換"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - UTF8 alreay"
+#~ msgstr "檔案內容 - 已經是 UTF8"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - successful undo"
+#~ msgstr "檔案內容 - 成功還原"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Directory already exists"
+#~ msgstr "目錄已存在"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Null directory"
+#~ msgstr "空目錄"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Directory node"
+#~ msgstr "目錄節點"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "No permission to rename"
+#~ msgstr "不允許重新命名"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File Hierarchy"
+#~ msgstr "檔案階層"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "No directory specified"
+#~ msgstr "沒有指定目錄"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Directory Selection"
+#~ msgstr "目錄選取"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Report Pane"
+#~ msgstr "報告窗格"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Welcome"
+#~ msgstr "歡迎使用"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Recursive Mode"
+#~ msgstr "遞迴模式"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Automatic Conversion"
+#~ msgstr "自動轉換"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/po/zh_TW.po	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2419 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: fsexeam HEAD\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-17 17:07+0800\n"
+"PO-Revision-Date: 2004-06-16 15:05+0900\n"
+"Last-Translator: [email protected]\n"
+"Language-Team: [email protected]\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:1
+msgid "<b>Available encoding:</b>"
+msgstr "<b>可用的編碼:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:2
+msgid "<b>Conversion Setting:</b>"
+msgstr "<b>轉換設定:</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:3
+msgid "<b>Encoding List:</b>"
+msgstr "<b>編碼清單:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:4
+msgid "<b>Encoding Selected:</b>"
+msgstr "<b>選取的編碼:</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:5
+msgid "<b>Search Result</b>"
+msgstr "<b>搜尋結果</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:6
+msgid "<b>_Dryrun Result</b>"
+msgstr "<b>模擬測試結果(_D)</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:7
+msgid "<b>_Location:</b>"
+msgstr "<b>位置(_L):</b>"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:8
+msgid "<b>_Report Pane</b>"
+msgstr "<b>報告窗格(_R)</b>"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:9
+msgid "Add or Remove Encoding"
+msgstr "新增或移除編碼"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:10
+msgid "Archive or Compress files"
+msgstr "歸檔或壓縮檔案"
+
+#: ../src/fsexam.glade2.h:11
+msgid "Based on seconds"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:12
+msgid "Clear Searc_h Result"
+msgstr "清除搜尋結果(_H)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:13
+msgid "Clear the search result"
+msgstr "清除搜尋結果"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:14
+msgid "Content Conversion _Mode"
+msgstr "內容轉換模式(_M)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:15
+msgid "Convert"
+msgstr "轉換"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:16
+msgid "Convert file name or content based on previous dryrun result"
+msgstr "以先前的模擬測試結果為基礎來轉換檔案名稱或內容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:17
+msgid ""
+"Convert file using the first candidate automatically instead of interactive "
+"converting"
+msgstr "自動使用第一個候選方式來轉換檔案,而不是使用互動式轉換"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:18
+msgid "Convert selected files' name or content according to the current mode"
+msgstr "根據目前的模式來轉換選取檔案的名稱或內容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:19
+msgid "Convert without detecting whether encoding is UTF-8 or not"
+msgstr "在不偵測編碼是否為 UTF-8 的情況下轉換"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:20
+msgid "Data modified more than:"
+msgstr "資料的修改超過:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:21
+msgid "Detect the encoding of file name or file content automatically"
+msgstr "自動偵測檔案名稱或檔案內容的編碼"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:22
+msgid "Don't Chec_k Symlink Content"
+msgstr "請勿檢查符號連結內容(_K)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:23
+msgid ""
+"Don't try to keep the consistency between symbolic link file and its target "
+"file"
+msgstr "請勿嘗試將符號連結檔案和其目標檔案保持一致"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:24
+msgid "Dryrun"
+msgstr "模擬測試"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:25
+msgid "Dryrun without changing any file name or content in the disk"
+msgstr "在不變更磁碟中任何檔案名稱或內容的情況下進行模擬測試"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:26
+msgid "Dryrun without changing files on disk"
+msgstr "在不變更磁碟中檔案的情況下進行模擬測試"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:27
+msgid "File Content _Mode"
+msgstr "檔案內容模式(_M)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:28 ../src/fsexam.c:395 ../src/fsexam.c:473
+#: ../data/fsexam.desktop.in.h:1
+msgid "File Encoding Examiner"
+msgstr "檔案編碼檢查程式"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:29
+msgid "File Encoding Examiner Preferences"
+msgstr "檔案編碼檢查程式喜好設定"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:30
+msgid "File _Name Mode"
+msgstr "檔案名稱模式(_N)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:31
+msgid "File content conversion mode"
+msgstr "檔案內容轉換模式"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:32
+msgid "File name conversion mode"
+msgstr "檔案名稱轉換模式"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:33
+msgid "Follow _Symbolic Link"
+msgstr "跟隨符號連結(_S)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:34 ../data/fsexam.schemas.in.h:2
+msgid "Follow symbolic link"
+msgstr "跟隨符號連結"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:35
+msgid "Forcibly Convert"
+msgstr "強制轉換"
+
+#: ../src/fsexam.glade2.h:36
+msgid "Group name"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:37
+msgid "Handle _Hidden Files"
+msgstr "處理隱藏式檔案(_H)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:38
+msgid "Handle _Remote Files"
+msgstr "處理遠端檔案(_R)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:39
+msgid "Hide search result"
+msgstr "隱藏搜尋結果"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:40
+msgid "History Length:"
+msgstr "歷程記錄長度:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:41
+msgid "Log File Name:"
+msgstr "記錄檔名稱:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:42
+msgid "Look in folder:"
+msgstr "在資料夾中查詢:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:43
+msgid "Name Contains:"
+msgstr "名稱包含:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:44
+msgid "Open file"
+msgstr "開啟檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:45
+msgid "Owned by group:"
+msgstr "所屬群組:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:46
+msgid "Owned by user:"
+msgstr "所屬使用者:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:47
+msgid "Processing archive or compress file"
+msgstr "正在處理歸檔或壓縮檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:48
+msgid "Processing hidden file"
+msgstr "正在處理隱藏式檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:49
+msgid "Processing non-local files such as NFS file"
+msgstr "正在處理非本機檔案,例如 NFS 檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:50
+msgid "Processing special type of file"
+msgstr "正在處理特殊類型的檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:51
+msgid "Recursive handle files under folder"
+msgstr "遞迴處理以下資料夾中的檔案:"
+
+#: ../src/fsexam.glade2.h:52
+msgid "Remove encoding"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:53
+msgid "Restore"
+msgstr "復原"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:54
+msgid "Restore given files' name or content according to conversion mode"
+msgstr "根據轉換模式來復原指定檔案的名稱或內容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:55
+msgid "Restore selected files' name or content"
+msgstr "復原選取檔案的名稱或內容"
+
+#: ../src/fsexam.glade2.h:56
+msgid ""
+"Save the encoding list permanently, otherwise used only for current session"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:57
+msgid "Scenario"
+msgstr "方案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:58
+msgid "Search Result"
+msgstr "搜尋結果"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:59
+msgid "Search for _Files..."
+msgstr "搜尋檔案(_F)…"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:60
+msgid "Search for files"
+msgstr "搜尋檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:61
+msgid "Search for files according to user given criteria"
+msgstr "根據使用者指定的條件來搜尋檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:62
+msgid "Select A Folder"
+msgstr "選取資料夾"
+
+#: ../src/fsexam.glade2.h:63
+msgid "Select encoding"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:64
+msgid "Special File Handling"
+msgstr "特殊檔案處理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:65
+msgid "Status modified more than:"
+msgstr "狀態的修改超過:"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:66
+msgid "Stop _Searching"
+msgstr "停止搜尋(_S)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:67
+msgid "Stop searching files"
+msgstr "停止搜尋檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:68
+msgid ""
+"The number of conversion is stored. Converting multiple files at one time "
+"count as 1 time"
+msgstr "轉換的次數已儲存。一次轉換多個檔案的計數為 1 次"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:69
+msgid "Undo the last action"
+msgstr "還原上個動作"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:70
+msgid "Use Log File"
+msgstr "使用記錄檔"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:71
+msgid "Use log file"
+msgstr "使用記錄檔"
+
+#: ../src/fsexam.glade2.h:72
+msgid "Use shell glob pattern"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:73
+msgid "User name"
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:74
+msgid "_Auto Conversion"
+msgstr "自動轉換(_A)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:75
+msgid "_Auto Detection"
+msgstr "自動偵測(_A)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:76
+msgid "_Content"
+msgstr "內容(_C)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:77
+msgid "_Convert"
+msgstr "轉換(_C)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:78
+msgid "_Dryrun"
+msgstr "模擬測試(_D)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:79
+msgid "_Dryrun Result Pane"
+msgstr "模擬測試結果窗格(_D)"
+
+#: ../src/fsexam.glade2.h:80
+msgid "_Edit"
+msgstr "編輯(_E)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam.glade2.h:81
+msgid "_File"
+msgstr "檔案(_F)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:82
+msgid "_Forcibly Convert"
+msgstr "強制轉換(_F)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam.glade2.h:83
+msgid "_Help"
+msgstr "說明(_H)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:84
+msgid "_Name Conversion Mode"
+msgstr "名稱轉換模式(_N)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:85
+msgid "_Preview Content"
+msgstr "預覽內容(_P)"
+
+#: ../src/fsexam.glade2.h:86
+msgid "_Recursive Mode"
+msgstr "遞迴模式(_R)"
+
+#: ../src/fsexam.glade2.h:87
+msgid "_Report Pane"
+msgstr "報告窗格(_R)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:88
+msgid "_Restore"
+msgstr "復原(_R)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.glade2.h:89
+msgid "_Scenario"
+msgstr "方案(_S)"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam.glade2.h:90
+msgid "_View"
+msgstr "檢視(_V)"
+
+#: ../src/fsexam.glade2.h:91
+msgid "gtk-about"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:92
+msgid "gtk-open"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:93
+msgid "gtk-preferences"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:94
+msgid "gtk-quit"
+msgstr ""
+
+#: ../src/fsexam.glade2.h:95
+msgid "gtk-undo"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-application-server.c:92
+msgid "One instance of fsexam is running already.\n"
+msgstr "已有一個 Fsexam 實例正在執行中。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/auto-detect.c:206 ../src/auto-detect.c:247
+#, c-format
+msgid ""
+"Warning: can not convert encoding %s to canonical encoding name, will ignore "
+"it.\n"
+msgstr "警告:無法將編碼 %s 轉換成正式的編碼名稱,將會忽略它。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:72
+msgid ""
+"No encoding provided. Please check 'Auto Detect' button in preferences "
+"dialog or add encoding through encoding dialog.\n"
+msgstr ""
+"沒有提供任何編碼。請勾選喜好設定對話方塊中的「自動偵測」按鈕或透過編碼對話方"
+"塊來增加編碼。\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/callbacks.c:124
+msgid "No Selection"
+msgstr "沒有選取"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:131
+msgid "No files need to handle"
+msgstr "沒有需要處理的檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:316
+msgid "Nothing need to undo"
+msgstr "沒有需要還原的項目"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:355
+msgid "No results. Please see report pane for more information.\n"
+msgstr "沒有任何結果。如需更多資訊,請參閱報告窗格。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:734
+msgid "Stop the Searching..."
+msgstr "停止搜尋..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/callbacks.c:796
+msgid "Search Result has been cleared."
+msgstr "搜尋結果已清除。"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:90
+#, c-format
+msgid ""
+"%s is not supported encoding name, use 'fsexamc -l' to list supported "
+"encoding.\n"
+msgstr "%s 不是支援的編碼名稱,請使用「fsexamc –l」來列出支援的編碼。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/encoding.c:108
+#, c-format
+msgid ""
+"Your system do not support conversion from '%s' to 'UTF-8',will ignore it.\n"
+msgstr "您的系統不支援從「%s」到「UTF-8」的轉換,將會忽略它。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:82 ../src/file-filter.c:155
+msgid "Parameters of find(1) is empty.\n"
+msgstr "find(1) 的參數是空的。\n"
+
+#: ../src/file-filter.c:105 ../src/fsexam-plaintext.c:74
+#: ../src/fsexam-plaintext.c:145
+msgid "Can't open pipe file descriptor.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:111 ../src/file-filter.c:221
+msgid "Searching..."
+msgstr "正在搜尋..."
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:123 ../src/file-filter.c:285
+msgid "Search finished"
+msgstr "搜尋完成"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:175
+msgid "Error occurs during executing the search command."
+msgstr "執行搜尋指令期間發生錯誤。"
+
+#: ../src/file-filter.c:196
+msgid "Error occurs when open fd."
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:253 ../src/file-filter.c:274
+#, c-format
+msgid "%d files found"
+msgstr "找到 %d 個檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/file-filter.c:284
+msgid "Search stopped"
+msgstr "搜尋已停止"
+
+#: ../src/file-validate.c:166 ../src/file-validate.c:194
+#, c-format
+msgid "Can't open file %s.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convcontent.c:76 ../src/fsexam-specialfile.c:734
+#, c-format
+msgid "[Content] %s -> %s"
+msgstr "[內容] %s - > %s"
+
+#: ../src/fsexam-convcontent.c:466
+msgid "Can't new hash table.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:175
+msgid "Re-create symbolic link success"
+msgstr "重新建立符號連結成功"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:291
+#, c-format
+msgid "[Name] %s -> %s"
+msgstr "[名稱] %s -> %s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:973
+#, c-format
+msgid "Candidate list:\n"
+msgstr "候選清單:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:974
+#, c-format
+msgid "\t[No.] Encoding name\tConversion Result\n"
+msgstr "\t[號碼] 編碼名稱\t轉換結果\n"
+
+#: ../src/fsexam-convname.c:1262
+#, c-format
+msgid "Can't access dry run result information.\n"
+msgstr ""
+
+#: ../src/fsexam-convname.c:1290
+msgid "Don't support this restore type.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1317
+#, c-format
+msgid "No proper encoding.\n"
+msgstr "沒有適當的編碼。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-convname.c:1322
+#, c-format
+msgid "Please select No.('s' to skip): "
+msgstr "請選取號碼 (「s」則略過): "
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-dialog.c:135
+msgid "Please select candidate"
+msgstr "請選取候選項目"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Ask me button
+#: ../src/fsexam-dialog.c:171
+msgid "Don't ask me again"
+msgstr "不要再問這個問題"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. Index                    Charset        Cononical Name   Name                        locale
+#: ../src/fsexam-encoding-dialog.c:54 ../src/fsexam-encoding-dialog.c:85
+msgid "Chinese Traditional"
+msgstr "繁體中文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:55
+msgid "Chinese Traditional(Hong Kong)"
+msgstr "繁體中文 (香港)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:56 ../src/fsexam-encoding-dialog.c:99
+msgid "Central European"
+msgstr "中歐"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:57 ../src/fsexam-encoding-dialog.c:102
+msgid "Cyrillic"
+msgstr "斯拉夫文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:58 ../src/fsexam-encoding-dialog.c:92
+#: ../src/fsexam-encoding-dialog.c:97
+msgid "Western"
+msgstr "西歐"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:59 ../src/fsexam-encoding-dialog.c:66
+#: ../src/fsexam-encoding-dialog.c:76 ../src/fsexam-encoding-dialog.c:104
+msgid "Greek"
+msgstr "希臘文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:60 ../src/fsexam-encoding-dialog.c:70
+#: ../src/fsexam-encoding-dialog.c:106
+msgid "Turkish"
+msgstr "土耳其文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:61 ../src/fsexam-encoding-dialog.c:105
+msgid "Hebrew"
+msgstr "希伯來文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:62 ../src/fsexam-encoding-dialog.c:103
+msgid "Arabic"
+msgstr "阿拉伯文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:63 ../src/fsexam-encoding-dialog.c:95
+#: ../src/fsexam-encoding-dialog.c:101
+msgid "Baltic"
+msgstr "波羅的海文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:64
+msgid "Vietnamese"
+msgstr "越南文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:65 ../src/fsexam-encoding-dialog.c:67
+msgid "Western Europe"
+msgstr "西歐"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:68
+msgid "Central Europe"
+msgstr "中歐"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:69
+msgid "Russian"
+msgstr "俄文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:71
+msgid "Portuguese"
+msgstr "葡萄牙文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:72
+msgid "Icelandic"
+msgstr "冰島文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:73
+msgid "French Canadian"
+msgstr "加拿大法文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:74 ../src/fsexam-encoding-dialog.c:93
+msgid "Nordic"
+msgstr "日耳曼文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:75
+msgid "Cyrillic/Russian"
+msgstr "斯拉夫文/俄文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:77 ../src/fsexam-encoding-dialog.c:84
+#: ../src/fsexam-encoding-dialog.c:94
+msgid "Thai"
+msgstr "泰文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+#: ../src/fsexam-encoding-dialog.c:78 ../src/fsexam-encoding-dialog.c:82
+#: ../src/fsexam-encoding-dialog.c:90 ../src/fsexam-encoding-dialog.c:108
+msgid "Japanese"
+msgstr "日文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+#: ../src/fsexam-encoding-dialog.c:80 ../src/fsexam-encoding-dialog.c:83
+#: ../src/fsexam-encoding-dialog.c:91 ../src/fsexam-encoding-dialog.c:107
+msgid "Korean"
+msgstr "韓文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:86 ../src/fsexam-encoding-dialog.c:87
+#: ../src/fsexam-encoding-dialog.c:88 ../src/fsexam-encoding-dialog.c:89
+msgid "Chinese Simplified"
+msgstr "簡體中文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:96
+msgid "Celtic"
+msgstr "塞爾特文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:98
+msgid "Romanian"
+msgstr "羅馬尼亞文"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:100
+msgid "South European"
+msgstr "南歐"
+
+#. { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+#. { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+#.
+#: ../src/fsexam-encoding-dialog.c:113
+msgid "Unicode"
+msgstr ""
+
+#: ../src/fsexam-encoding-dialog.c:124
+#, c-format
+msgid "Warning: The encoding id %d is greater than max length %d.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:183
+#, c-format
+msgid "Encoding '%s' is not supported.\n"
+msgstr "不支援編碼「%s」。\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:206
+msgid "The supported encoding list:\n"
+msgstr "支援的編碼清單:\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:583 ../src/fsexam-encoding-dialog.c:620
+msgid "_Description"
+msgstr "說明(_D)"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-encoding-dialog.c:591 ../src/fsexam-encoding-dialog.c:628
+msgid "_Encoding"
+msgstr "編碼(_E)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:33
+msgid "Success"
+msgstr "成功"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_OK
+#: ../src/fsexam-error.c:34
+msgid "File name is UTF-8 already"
+msgstr "檔案名稱已經是 UTF-8 編碼"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NAME_UTF8_ALREADY
+#: ../src/fsexam-error.c:35
+msgid "File content is UTF-8 already"
+msgstr "檔案內容已經是 UTF-8 編碼"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CONTENT_UTF8_ALREADY
+#: ../src/fsexam-error.c:36
+msgid "New name is the same as old name"
+msgstr "新的名稱與舊的名稱相同"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:40 ../src/fsexam-ui.c:780
+msgid "File doesn't exist"
+msgstr "檔案不存在"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_NONEXIST
+#: ../src/fsexam-error.c:41
+msgid "No Memory"
+msgstr "沒有記憶體"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_MEMORY
+#: ../src/fsexam-error.c:42
+msgid "Invalid encoding index"
+msgstr "無效的編碼索引"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_ENCODING_INDEX_INVALID
+#: ../src/fsexam-error.c:43
+msgid "Can't open file"
+msgstr "無法開啟檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN
+#: ../src/fsexam-error.c:44
+msgid "Can't rename file"
+msgstr "無法重新命名檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_RENAME
+#: ../src/fsexam-error.c:45
+msgid "Can't write file"
+msgstr "無法寫入檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE
+#: ../src/fsexam-error.c:46
+msgid "Given encoding list is not suitable"
+msgstr "指定的編碼清單不適合"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PROPER_ENCODING
+#: ../src/fsexam-error.c:47
+msgid "Is not regular file"
+msgstr "不是一般檔案"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_NOT_REG_FILE
+#: ../src/fsexam-error.c:48
+msgid "Symlink target don't exist"
+msgstr "符號連結目標不存在"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_SYMLINK_TARGET_NOEXIST
+#: ../src/fsexam-error.c:49
+msgid "Can't convert given file"
+msgstr "無法轉換指定的檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT
+#: ../src/fsexam-error.c:50
+msgid "Can't read file"
+msgstr "無法讀取檔案"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_READ
+#: ../src/fsexam-error.c:51
+msgid "No proper permission"
+msgstr "沒有適當的權限"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_RIGHTS
+#. ERR_CANNOT_RM_SYMLINK
+#: ../src/fsexam-error.c:53
+msgid "Can't relink symbolic link which will break symbolic link"
+msgstr "無法重新連結符號連結,這會中斷符號連結"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_LOST_SYMLINK_FILE
+#: ../src/fsexam-error.c:55
+msgid "Have deleted symbolic link file, but can't recreate it"
+msgstr "已刪除符號連結檔案,但是無法重新建立它"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:56
+msgid "Dryrun file format is invalid"
+msgstr "模擬測試檔案的格式無效"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_DRYRUN_FILE_INVALID
+#: ../src/fsexam-error.c:57
+msgid "Can't get current directory"
+msgstr "無法取得目前的目錄"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_GET_CWD
+#: ../src/fsexam-error.c:58
+msgid "Can't change directory"
+msgstr "無法變更目錄"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:62
+msgid "No history information for current file"
+msgstr "沒有目前檔案的歷程記錄資訊"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_HIST_NO_ITEM
+#: ../src/fsexam-error.c:63
+msgid "No given files or all files are UTF-8 already"
+msgstr "沒有指定的檔案,或所有檔案都已經是 UTF-8 編碼"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_TREE_IS_EMPTY
+#. ERR_NAME_EXIST
+#: ../src/fsexam-error.c:65
+msgid "Same name file exists, will append 'utf-8' as suffix"
+msgstr "存在相同名稱的檔案,將會附加「utf-8」做為字尾。"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:66
+msgid "Skip hidden file"
+msgstr "略過隱藏式檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_HIDDEN_FILE
+#: ../src/fsexam-error.c:67
+msgid "Skip non-local file"
+msgstr "略過非本機檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_IGNORE_REMOTE_FILE
+#: ../src/fsexam-error.c:68 ../src/fsexam-ui.c:2691
+msgid "Empty file"
+msgstr "空檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_EMPTY_FILE
+#: ../src/fsexam-error.c:69
+msgid "No parameters"
+msgstr "沒有參數"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_NO_PARAMS
+#: ../src/fsexam-error.c:70
+msgid "Error occurred during filtering"
+msgstr "篩選期間發生錯誤"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILTER
+#: ../src/fsexam-error.c:71
+msgid "Don't support this kind of file type"
+msgstr "不支援此種檔案類型"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_FILE_TYPE_NOT_SUPPORT
+#: ../src/fsexam-error.c:72
+msgid "Buffer overflow"
+msgstr "緩衝區溢位"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_BUFFER_OVERFLOW
+#: ../src/fsexam-error.c:73
+msgid "Canceled the conversion"
+msgstr "已取消轉換"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-error.c:77
+msgid "Can't write dryrun result file"
+msgstr "無法寫入模擬測試結果檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_WRITE_DRYRUN
+#: ../src/fsexam-error.c:78
+msgid "Can't open dryrun result file"
+msgstr "無法開啟模擬測試結果檔案"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#. ERR_CANNOT_OPEN_DYRRUN
+#: ../src/fsexam-error.c:79
+msgid "Can't convert filename to URI"
+msgstr "無法將檔案名稱轉換成 URI"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#. ERR_CANNOT_CONVERT_TO_URI
+#. MISC
+#. unknow error
+#: ../src/fsexam-error.c:82 ../src/fsexam-log.c:124
+msgid "Unknown error occurred"
+msgstr "發生不明的錯誤"
+
+#: ../src/fsexam-error.c:98
+#, c-format
+msgid "ERROR ==> %s:%d (%s): %s\n"
+msgstr ""
+
+#: ../src/fsexam-error.c:103
+#, c-format
+msgid "ERROR ==> %s:%d %s\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-helper.c:334 ../src/fsexam-helper.c:345
+#, c-format
+msgid "Encoding '%s' is not supported\n"
+msgstr "不支援編碼「%s」\n"
+
+#: ../src/fsexam-plaintext.c:98
+msgid "The system has no UTF-8 locale\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:368
+msgid "Do you want to save this encoding list permanently?"
+msgstr "是否要永久儲存此編碼清單?"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-preference-dialog.c:520 ../src/fsexam-ui.c:1340
+#, c-format
+msgid "There was an error when displaying help: %s"
+msgstr "顯示說明時發生錯誤:%s"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-setting.c:94 ../src/fsexam-ui.c:1974
+#, c-format
+msgid "Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"
+msgstr ""
+"簡略摘要:已指定 %d 個、總數 %d 個、忽略 %d 個、失敗 %d 個、成功 %d 個\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1068
+msgid ""
+"Can not run tar command due to lack of iso8859-1 locale, please see fsexam"
+"(1) man page for more info."
+msgstr ""
+"由於缺少 iso8859-1 語言環境,無法執行 tar 指令。如需更多資訊,請參閱「fsexam"
+"(1) 線上手冊」。"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1412 ../src/fsexam-specialfile.c:1588
+msgid "Don't support this file type"
+msgstr "不支援此檔案類型"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-specialfile.c:1678
+msgid ""
+"The archive file is empty or has absolute path, so can not convert files in "
+"this archive file"
+msgstr "歸檔檔案是空的,或是具有絕對路徑,因此無法在此歸檔檔案中轉換檔案"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:777 ../src/fsexam-ui.c:1006
+msgid "No read permission"
+msgstr "沒有讀取權限"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:785
+msgid "No folder specified"
+msgstr "未指定資料夾"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:825
+msgid "File does not exist or no access permission."
+msgstr "檔案不存在或沒有存取權限。"
+
+#: ../src/fsexam-ui.c:831
+msgid "File type is not supported."
+msgstr ""
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1009
+msgid "Empty folder"
+msgstr "空資料夾"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1088 ../src/fsexam-ui.c:1626
+msgid "Symlink target doesn't exist"
+msgstr "符號連結目標不存在"
+
+#: ../src/fsexam-ui.c:1089 ../src/fsexam-ui.c:1627
+msgid "doesn't exist"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1190
+msgid "The selected file is not empty, do you want to override it?"
+msgstr "選取的檔案不是空的,是否要覆寫它?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1191
+msgid ""
+"The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 "
+"filename.\n"
+"\n"
+" Do you want to convert it to UTF8?"
+msgstr ""
+"選取的檔案不是 UTF-8 編碼,我們強烈建議您使用 UTF-8 檔案名稱\n"
+"\n"
+" 是否要將它轉換成 UTF8?"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:1192
+#, c-format
+msgid ""
+"Can't convert %s to UTF8: %s.\n"
+"\n"
+"Please Note that there may exist partial conversion.\n"
+" So please Refresh you directory and select file again."
+msgstr ""
+"無法將 %s 轉換成 UTF8:%s。\n"
+"\n"
+"請注意,可能已轉換一部分。\n"
+"因此,請重新整理您的目錄,然後再次選取檔案。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:1316
+msgid "Folder Selection"
+msgstr "資料夾選取範圍"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../src/fsexam-ui.c:1375
+msgid ""
+"fsexam is to help migrate file name and file content from legacy encoding to "
+"UTF8"
+msgstr "fsexam 可以協助將檔案名稱和檔案內容的現用編碼方式轉換為 UTF8"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2057
+#, c-format
+msgid "The file \"%s\" is missing."
+msgstr "缺少檔案「%s」。"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2577
+msgid "No selection"
+msgstr "沒有選取"
+
+#: ../src/fsexam-ui.c:2586
+msgid "Cannot preview multiple selections"
+msgstr "無法預覽多重選取"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2597
+msgid "Cannot preview contents of folder"
+msgstr "無法預覽資料夾的內容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2680
+msgid "Can't access"
+msgstr "無法存取"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam-ui.c:2686
+msgid "Not regular file"
+msgstr "不是一般檔案"
+
+#: ../src/fsexam-ui.c:2696
+msgid "Not plain text"
+msgstr "非純文字"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:155 ../src/fsexam.c:212
+msgid "Another fsexam is running, will quit soon\n"
+msgstr "另一個 fsexam 正在執行中,將立即退出\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:325
+#, c-format
+msgid "Run 'fsexam --help' for usage information.\n"
+msgstr "執行「fsexam --help」以取得使用資訊。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:331
+#, c-format
+msgid ""
+"Warning: The given history length is too short, will reset to default value %"
+"d\n"
+msgstr "警告:指定的歷程記錄長度太短,將重設成預設值 %d\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:373
+#, c-format
+msgid "Please enter the file name:\n"
+msgstr "請輸入檔案名稱:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:431
+msgid "Error: No given encoding and disabled auto detection.\n"
+msgstr "錯誤:沒有指定的編碼並且已停用自動偵測。\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:441
+#, c-format
+msgid "Can't open dryrun file %s\n"
+msgstr "無法開啟模擬測試檔案 %s\n"
+
+#: ../src/fsexam.c:539
+msgid "The configuration directory is NULL\n"
+msgstr ""
+
+#: ../src/fsexam.c:546
+#, c-format
+msgid "Can't create configuration directory %s for fsexam\n"
+msgstr ""
+
+#: ../src/fsexam.c:557
+#, c-format
+msgid "file %s exist and is not one directory, please rename it.\n"
+msgstr ""
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:675
+#, c-format
+msgid "Usage:\n"
+msgstr "用法:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:676
+#, c-format
+msgid "    fsexam [OPTION] ... [file]\n"
+msgstr "    fsexam [選項] ...[檔案]\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:678
+#, c-format
+msgid ""
+"\n"
+"Supported options:\n"
+msgstr ""
+"\n"
+"支援的選項:\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:680
+#, c-format
+msgid "    -a, --auto-detect      Enable encoding auto detection\n"
+msgstr "    -a, --auto-detect      啟用編碼自動偵測\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:682
+#, c-format
+msgid "    -d dry-run-result      Specify the dryrun result file\n"
+msgstr "    -d dry-run-result      指定模擬測試結果檔案\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:683
+#, c-format
+msgid "    -E module-name         Enable special file handling\n"
+msgstr "    -E module-name         啟用特殊檔案處理\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:684
+#, c-format
+msgid "    -e encoding-list       Specify additional encoding list\n"
+msgstr "    -e encoding-list       指定附加的編碼清單\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:685
+#, c-format
+msgid "    -F, --force-convert    Forceful conversion mode\n"
+msgstr "    -F, --force-convert    強制轉換模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:686
+#, c-format
+msgid "    -f 'expression'        Specify file filter criteria\n"
+msgstr "    -f 'expression'        指定檔案篩選條件\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:687
+#, c-format
+msgid "    -H, --hidden           Turn on hidden file handling\n"
+msgstr "    -H, --hidden           啟動隱藏式檔案處理\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:688
+#, c-format
+msgid "    -b, --auto-conversion  Interactive mode\n"
+msgstr "    -b, --auto-conversion  互動式模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:689
+#, c-format
+msgid "    -l, list-encoding      List all supported encoding\n"
+msgstr "    -l, list-encoding      列出所有支援的編碼\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:690
+#, c-format
+msgid "    -k, --no-check-symlink-content\n"
+msgstr "    -k, --no-check-symlink-content\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:691
+#, c-format
+msgid ""
+"                           Don't check the consistency between\n"
+"                           symbolic link and its target name\n"
+msgstr ""
+"                           請勿檢查符號連結和\n"
+"                           其目標檔案名稱之間的一致性\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:693
+#, c-format
+msgid "    -L logfile             Specify log file\n"
+msgstr "    -L logfile             指定記錄檔\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:695
+#, c-format
+msgid "    -n, --dry-run          Dryrun mode\n"
+msgstr "    -n, --dry-run          模擬測試模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:696
+#, c-format
+msgid "    -P, --append-encoding-list\n"
+msgstr "    -P, --append-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:697
+#, c-format
+msgid ""
+"                           Append encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           將「-e」指定的編碼清單附加到\n"
+"                           預先定義的編碼清單\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:699
+#, c-format
+msgid "    -p, --prepend-encoding-list\n"
+msgstr "    -p, --prepend-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:700
+#, c-format
+msgid ""
+"                           Prepend encoding list specified by\n"
+"                           '-e' to predefined encoding list\n"
+msgstr ""
+"                           將「-e」指定的編碼清單前置於\n"
+"                           預先定義的編碼清單\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:702
+#, c-format
+msgid "    -R, --recursive        Recursive mode\n"
+msgstr "    -R, --recursive        遞迴模式\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:703
+#, c-format
+msgid "    -r, --remote           Turn on nfs files handling\n"
+msgstr "    -r, --remote           啟動 nfs 檔案處理\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:704
+#, c-format
+msgid "    -S, --save-encoding-list\n"
+msgstr "    -S, --save-encoding-list\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:705
+#, c-format
+msgid ""
+"                           Save encoding list specified by\n"
+"                           '-e' permanently\n"
+msgstr ""
+"                           永久儲存「-e」\n"
+"                           指定的編碼清單\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:707
+#, c-format
+msgid ""
+"    -s, --restore          Restore the original name or\n"
+"                           content for given files\n"
+msgstr ""
+"    -s, --restore          復原指定檔案的\n"
+"                           原始名稱或內容\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:709
+#, c-format
+msgid ""
+"    -t, --conv-content     Convert file content rather than\n"
+"                           file name\n"
+msgstr ""
+"    -t, --conv-content     轉換檔案內容\n"
+"                           而非檔案名稱\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:711
+#, c-format
+msgid "    -w, --follow           Follow symbolic link\n"
+msgstr "    -w, --follow           跟隨符號連結\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:712
+#, c-format
+msgid "    -V, --version          Print the version information\n"
+msgstr "    -V, --version          列示版本資訊\n"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../src/fsexam.c:713
+#, c-format
+msgid "    -?, --help             Print this usage information for fsexam\n"
+msgstr "    -?, --help             列示 fsexam 的用法資訊\n"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:1
+msgid "Encoding auto detection"
+msgstr "編碼自動偵測"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:3
+msgid "Hidden file handling"
+msgstr "隱藏式檔案處理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:4
+msgid "Hist length"
+msgstr "歷程記錄長度"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:5
+msgid "Keep symbolic link and its reference consistent"
+msgstr "保持符號連結和其參照一致"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:6
+msgid "Log file name"
+msgstr "記錄檔名稱"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:7
+msgid "NFS file handling"
+msgstr "NFS 檔案處理"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:8
+msgid "Special file type module"
+msgstr "特殊檔案類型模組"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#: ../data/fsexam.schemas.in.h:9
+msgid "Write log or not"
+msgstr "是否寫入記錄"
+
+#: ../data/fsexam.schemas.in.h:10
+msgid "[ISO8859-1]"
+msgstr "[BIG5,EUC-TW,GB18030]"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:11
+msgid "automatic mode"
+msgstr "自動模式"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:12
+msgid "encoding list"
+msgstr "編碼清單"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#: ../data/fsexam.schemas.in.h:13
+msgid "recursive mode"
+msgstr "遞迴模式"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#: ../data/fsexam.desktop.in.h:2
+msgid "Help migrate from legacy encoding to Unicode(UTF8)"
+msgstr "協助從原來的編碼遷移至 Unicode (UTF8)"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "*"
+#~ msgstr "*"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the dryrun result pane"
+#~ msgstr "顯示模擬測試結果窗格"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the report pane"
+#~ msgstr "顯示報告窗格"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Display the search result window"
+#~ msgstr "顯示搜尋結果視窗"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Preview plain text file content"
+#~ msgstr "預覽一般文字檔案內容"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "Select A File"
+#~ msgstr "選取檔案"
+
+# COMMUNITY UNTRANS
+# SUN CHANGED MESSAGE
+# SUN LING REVIEWED
+#~ msgid "[Content] %s - >%s"
+#~ msgstr "[內容] %s - > %s"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Display help content"
+#~ msgstr "顯示說明內容"
+
+# COMMUNITY MESSAGE
+# COMMUNITY FUZZY
+# SUN CHANGED MESSAGE
+# SUN TECH REVIEWED
+# SUN LING REVIEWED
+#~ msgid "Preference setting"
+#~ msgstr "喜好設定"
+
+#~ msgid "File has been emptied, can not be restored!"
+#~ msgstr "檔案已清空,無法復原!"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Folder already exists"
+#~ msgstr "資料夾已存在"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Folder doesn't exist yet"
+#~ msgstr "資料夾不存在"
+
+#~ msgid "add Carriage Return"
+#~ msgstr "新增換行鍵"
+
+#~ msgid "_Open..."
+#~ msgstr "開啟(_O)..."
+
+#~ msgid "_Restore Original File"
+#~ msgstr "復原原始檔案(_R)"
+
+#~ msgid "_Convert Content"
+#~ msgstr "轉換內容(_C)"
+
+#~ msgid "_About"
+#~ msgstr "關於(_A)"
+
+#~ msgid "Sub-folder:"
+#~ msgstr "子資料夾:"
+
+#~ msgid "User intervention:"
+#~ msgstr "使用者介入:"
+
+#~ msgid "text"
+#~ msgstr "文字"
+
+#~ msgid "Restore %s and add Carriage Return"
+#~ msgstr "復原 %s 並新增換行鍵"
+
+#~ msgid "Restore by adding Carriage Return"
+#~ msgstr "新增換行鍵即可復原"
+
+#~ msgid "Restore UTF8"
+#~ msgstr "復原 UTF8"
+
+#~ msgid "File System Examiner name conversion"
+#~ msgstr "檔案系統檢查程式名稱轉換"
+
+#~ msgid "delete Carriage Return"
+#~ msgstr "刪除換行鍵"
+
+#~ msgid "delete Carriage Return only"
+#~ msgstr "只刪除換行鍵"
+
+#~ msgid "add Carriage Return only"
+#~ msgstr "只新增換行鍵"
+
+#~ msgid "_Preferences"
+#~ msgstr "喜好設定(_P)"
+
+#~ msgid "Encode list:"
+#~ msgstr "編碼清單:"
+
+#~ msgid "File System Examiner content conversion"
+#~ msgstr "檔案系統檢查程式內容轉換"
+
+#~ msgid "File content - convert from %s"
+#~ msgstr "檔案內容 - 從 %s 轉換"
+
+#~ msgid "File content - convert from %s and delete Carriage Return"
+#~ msgstr "檔案內容 - 從 %s 轉換並刪除換行鍵"
+
+#~ msgid "File content - delete Carriage Return only"
+#~ msgstr "檔案內容 - 只刪除換行鍵"
+
+#~ msgid "%s doesn't exist yet"
+#~ msgstr "%s 不存在"
+
+#~ msgid "Restore UTF8 and delete Carriage Return"
+#~ msgstr "復原 UTF8 並刪除換行鍵"
+
+#~ msgid "Restore by deleting Carriage Return"
+#~ msgstr "刪除換行鍵即可復原"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "A list of suffix. Any file whose suffix belongs to the list are assumed "
+#~ "by fsexam as plain text file."
+#~ msgstr "字尾清單。Fsexam 會將字尾屬於此清單的檔案假設為純文字檔。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "Only applicable for file name conversion! It's recursive mode, by "
+#~ "enabling it, fsexam will convert the name of file and subdirectory to "
+#~ "UTF8 recursively."
+#~ msgstr ""
+#~ "僅適用於檔案名稱轉換!這是遞迴模式,啟動此模式,Fsexam 將轉換檔案的名稱與"
+#~ "子目錄為 UTF8。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "Only applicable for file name conversion. It's automatic mode, by "
+#~ "enabling it, fsexam will automatically convert with the best conversion "
+#~ "result without user interference. Otherwise, a dialog will display with "
+#~ "several conversion candidates and user needs to decide which conversion "
+#~ "is the best one."
+#~ msgstr ""
+#~ "僅適用於檔案名稱轉換。這是自動模式,啟動自動模式,不需使用者介入,Fsexam "
+#~ "就會自動轉換成最佳的轉換結果。否則,將顯示具有數項轉換選項的對話方塊,使用"
+#~ "者需要決定最佳的轉換方式。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid ""
+#~ "The list of legacy encoding name available for the specific language. "
+#~ "Note that the order within the list is significant. fsexam treats as the "
+#~ "best one the first one from which conversion can be made successfully."
+#~ msgstr ""
+#~ "可供特定的語言使用之舊編碼名稱清單。請注意:清單內為有效的排序。Fsexam 會"
+#~ "將最佳的視為第一個,並成功對其執行轉換。"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "suffix list"
+#~ msgstr "字尾清單"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File already exists"
+#~ msgstr "檔案已存在"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Apply by name"
+#~ msgstr "依名稱套用"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Apply by content"
+#~ msgstr "依內容套用"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Peek content"
+#~ msgstr "窺看內容"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Error loading icon %s\n"
+#~ msgstr "載入圖示 %s 時發生錯誤\n"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "popen error, please try again!"
+#~ msgstr "popen 錯誤,請再試一次!"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Not one plain text"
+#~ msgstr "不是一個純文字"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content candidate window"
+#~ msgstr "檔案內容可選用視窗"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Byte sequence not recognized yet"
+#~ msgstr "無法識別位元數序列"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - open failure"
+#~ msgstr "檔案內容 - 開啟失敗"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - write error"
+#~ msgstr "檔案內容 - 寫入錯誤"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - successful conversion"
+#~ msgstr "檔案內容 - 成功轉換"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - UTF8 alreay"
+#~ msgstr "檔案內容 - 已經是 UTF8"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File content - successful undo"
+#~ msgstr "檔案內容 - 成功還原"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Directory already exists"
+#~ msgstr "目錄已存在"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Null directory"
+#~ msgstr "空目錄"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Directory node"
+#~ msgstr "目錄節點"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "No permission to rename"
+#~ msgstr "不允許重新命名"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "File Hierarchy"
+#~ msgstr "檔案階層"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "No directory specified"
+#~ msgstr "沒有指定目錄"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Directory Selection"
+#~ msgstr "目錄選取"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "fsexam"
+#~ msgstr "fsexam"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Report Pane"
+#~ msgstr "報告窗格"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Welcome"
+#~ msgstr "歡迎使用"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Recursive Mode"
+#~ msgstr "遞迴模式"
+
+# SUN LING UNREVIEWED
+# SUN TECH UNREVIEWED
+#~ msgid "Automatic Conversion"
+#~ msgstr "自動轉換"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/GNOME_Fsexam.idl	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,35 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#include <Bonobo.idl>
+
+module GNOME {
+    module Fsexam {
+        interface  Application: Bonobo::Unknown {
+            oneway void grabFocus ();
+        };
+    };
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/Makefile.am	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,123 @@
+# 
+# CDDL HEADER START
+# 
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+# 
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+# 
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+# 
+# CDDL HEADER END
+# 
+
+# 
+# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+# 
+
+INCLUDES = $(FSEXAM_CFLAGS)	\
+			-DFSEXAM_GLADE_DIR=\"$(gladedir)\" 	\
+			-DFSEXAM_GLADE_FILE=\"fsexam.glade2\" 	\
+			-DFSEXAM_ICON_FILE=\"fsexam-icon.png\" 	\
+			-DFSEXAM_ICON_DIR=\"$(datadir)/pixmaps\"
+
+AM_CPPFLAGS = -DSYSCONFDIR=\""$(sysconfdir)"\" 	\
+			-DDATADIR=\""$(datadir)"\" 	\
+			-DLIBDIR=\""$(libdir)"\" 	\
+			-DPREFIX=\""$(prefix)"\"
+
+bin_PROGRAMS = fsexam
+
+IDL_FILE = GNOME_Fsexam.idl
+
+IDL_SOURCES = \
+			  GNOME_Fsexam-stubs.c \
+			  GNOME_Fsexam-common.c \
+			  GNOME_Fsexam-skels.c \
+			  GNOME_Fsexam.h
+
+$(IDL_SOURCES):	$(IDL_FILE)
+	$(ORBIT_IDL) -I $(LIBBONOBO_IDL) -I $(BONOBO_ACTIVATION_IDL) $(IDL_FILE)
+
+idl_DATA = $(IDL_FILE)
+idldir = $(datadir)/idl
+
+
+fsexam_LDADD = $(FSEXAM_LIBS) $(AUTOEF_LIBS)
+
+FSEXAM_HEADER_FILES = 		\
+				auto-detect.h	\
+				callbacks.h		\
+				encoding.h		\
+				file-filter.h	\
+				file-validate.h	\
+				fsexam-application-server.h	\
+				fsexam-convcontent.h	\
+				fsexam-convname.h		\
+				fsexam-debug.h			\
+				fsexam-dialog.h			\
+				fsexam-dnd.h			\
+				fsexam-dryrun.h			\
+				fsexam-encoding-dialog.h	\
+				fsexam-error.h			\
+				fsexam-header.h			\
+				fsexam-helper.h			\
+				fsexam-history.h		\
+				fsexam-log.h			\
+				fsexam-plaintext.h		\
+				fsexam-pref.h			\
+				fsexam-preference-dialog.h	\
+				fsexam-setting.h		\
+				fsexam-specialfile.h	\
+				fsexam-tree.h			\
+				fsexam-ui.h				\
+				fsexam.h
+
+fsexam_SOURCES =			\
+				$(IDL_SOURCES) \
+				fsexam-application-server.c \
+				fsexam.c \
+				encoding.c \
+				fsexam-setting.c \
+				fsexam-tree.c \
+				fsexam-helper.c \
+				fsexam-ui.c \
+				fsexam-pref.c \
+				fsexam-log.c \
+				fsexam-dryrun.c \
+				fsexam-specialfile.c \
+				fsexam-plaintext.c \
+				fsexam-history.c \
+				fsexam-convname.c \
+				fsexam-error.c \
+				file-validate.c\
+				file-filter.c\
+				callbacks.c \
+				auto-detect.c \
+				fsexam-dialog.c	\
+				fsexam-debug.c \
+				fsexam-convcontent.c \
+				fsexam-preference-dialog.c \
+				fsexam-encoding-dialog.c  \
+				fsexam-dnd.c
+
+gladedir 	= $(pkgdatadir)/glade
+glade_DATA 	= fsexam.glade2
+
+EXTRA_DIST = \
+			$(glade_DATA)	\
+			$(server_in_files)	\
+			$(IDL_FILE)		\
+			$(FSEXAM_HEADER_FILES)
+
+CLEANFILES = 					\
+			$(IDL_SOURCES)	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/auto-detect.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,295 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <stdlib.h>
+#include <strings.h>
+
+#ifdef   HAVE_AUTO_EF_H
+#include <auto_ef.h>
+#endif
+
+#include "encoding.h"
+#include "auto-detect.h"
+
+short encoding2id (const gchar *encoding_name);
+
+#ifndef  HAVE_AUTO_EF_H
+gboolean 
+file_isutf8 (const gchar *filename, gint flags)
+{
+    gchar *contents = NULL;
+
+    if (filename == NULL)
+        return FALSE;
+
+    if (g_file_get_contents (filename, &contents, NULL, NULL)) {
+        gboolean ret = FALSE;
+
+        if (g_utf8_validate (contents, -1, NULL))
+            ret = TRUE;
+
+        g_free (contents);
+
+        return ret;
+    }else{
+        //fsexam_errno = ERR_CANNOT_READ;   delay error handling 
+    }
+
+    return FALSE;
+}
+
+GList *
+file_encoding_detect (const gchar *filename, gint flags)
+{
+    return NULL;
+}
+
+GList *
+str_encoding_detect (const gchar *string, gint flags)
+{
+    return NULL;
+}
+
+void
+auto_encoding_free (GList *list)
+{
+    return;
+}
+
+#else
+
+static const gchar *autoen_map[][2] = {
+  /* auto detected          canonical */
+    {"8859-1",              "ISO-8859-1"},
+    {"8859-2",              "ISO-8859-2"},
+    {"8859-5",              "ISO-8859-5"},
+    {"8859-6",              "ISO-8859-6"},
+    {"8859-7",              "ISO-8859-7"},
+    {"8859-8",              "ISO-8859-8"},
+    {"ascii",               "UTF-8"},
+    {"iso-8859-1",          "ISO-8859-1"},
+    {"iso-8859-2",          "ISO-8859-2"},
+    {"iso-8859-5",          "ISO-8859-5"},
+    {"iso-8859-6",          "ISO-8859-6"},
+    {"iso-8859-7",          "ISO-8859-7"},
+    {"iso-8859-8",          "ISO-8859-8"},
+    {"ko_KR.cp949",         "cp949"}, 
+    {"ko_KR.euc",           "EUC-KR"},
+    {"koi8-r",              "8859-5"},
+    {"zh_CN.euc",           "GB18030"},
+    {"zh_CN.GB18030",       "GB18030"},
+    {"zh_CN.iso2022-CN",    "GB2312"},
+    {"zh_HK.hkscs",         "BIG5-HKSCS"},
+    {"zh_TW-big5",          "BIG5"},
+    {"zh_TW-euc",           "EUC-TW"},
+};
+
+/* convert encoding name detected to canonical encoding name */
+static const gchar *
+auto_encoding_to_canonical_name (const gchar *auto_encoding_name)
+{
+    short low = 0;  
+    short high = sizeof (autoen_map) / sizeof (autoen_map[0]) - 1;
+    short mid;
+
+    if (auto_encoding_name == NULL)
+        return NULL;
+
+    while (low <= high) {
+        gint result;
+
+        mid = (low + high) / 2;
+        result = g_ascii_strcasecmp (auto_encoding_name, autoen_map[mid][0]);
+
+        if (result == 0)
+            return autoen_map[mid][1];
+        else if (result > 0)
+            low = mid + 1;
+        else
+            high = mid - 1;
+    }
+
+    /* may be in canonical name already */
+    if (encoding2id (auto_encoding_name) != -1)
+        return auto_encoding_name;
+
+    return NULL;
+}
+
+gboolean
+file_isutf8 (const gchar *filename, gint flags)
+{
+    auto_ef_t   *array_info = NULL;
+    size_t      number = 0;
+    gchar       *encoding = NULL;
+    double      score = 0;
+    gint        ret = FALSE;
+
+    if (filename == NULL)
+        return ret;
+
+    number = auto_ef_file (&array_info, filename, flags);
+    if (number != 1){
+        ret = FALSE;
+        goto free;
+    }
+
+    score = auto_ef_get_score (array_info[0]);
+    if (abs(score - 100.0) > INACCURACY) {
+        ret = FALSE;
+        goto free;
+    }
+    encoding = auto_ef_get_encoding (array_info[0]);
+    if ((strcmp (encoding, "UTF-8") == 0) || (strcmp (encoding, "ASCII") == 0)){
+        ret = TRUE;
+    }
+
+free:
+    auto_ef_free (array_info);
+
+    return ret;
+}
+
+GList *
+file_encoding_detect (const gchar *filename, gint flags)
+{
+    EncodingPair    *pair = NULL;
+    GList           *result = NULL;
+    auto_ef_t       *array_info = NULL;
+    size_t          number = 0;
+    gint            i;
+
+    if (filename == NULL)
+        return NULL;
+
+    number = auto_ef_file (&array_info, filename, flags);
+    if (-1 == number)
+        return NULL;
+
+    for (i = number - 1; i >= 0; i--){
+        const gchar *canonical_name = NULL;
+
+        canonical_name =  auto_encoding_to_canonical_name (
+                        auto_ef_get_encoding (array_info[i]));
+
+        if (canonical_name == NULL) {
+            g_print (_("Warning: can not convert encoding %s to canonical encoding name, will ignore it.\n"), 
+                      auto_ef_get_encoding (array_info[i]));
+            continue;
+        }
+
+        pair = g_new (EncodingPair, 1);
+
+        pair->encoding_name = g_strdup (canonical_name);
+        pair->score = auto_ef_get_score (array_info[i]);
+
+        result = g_list_append (result, pair);
+    }
+
+free:
+    auto_ef_free (array_info);
+    return result;
+}
+
+GList *
+str_encoding_detect (const gchar *string, gint flags)
+{
+    EncodingPair    *pair = NULL;
+    GList           *result = NULL;
+    auto_ef_t       *array_info = NULL;
+    size_t          number = 0;
+    gint            i = 0;
+
+    if (string == NULL)
+        return NULL;
+
+    number = auto_ef_str (&array_info, string, strlen(string), flags);
+    if (-1 == number)
+        return NULL;
+
+    for (i = number - 1; i >= 0; i--){
+        const gchar *canonical_name = NULL;
+
+        canonical_name =  auto_encoding_to_canonical_name (
+                        auto_ef_get_encoding (array_info[i]));
+
+        if (canonical_name == NULL) {
+            g_print (_("Warning: can not convert encoding %s to canonical encoding name, will ignore it.\n"), 
+                      auto_ef_get_encoding (array_info[i]));
+            continue;
+        }
+
+        pair = g_new (EncodingPair, 1);
+
+        pair->encoding_name = g_strdup (canonical_name);
+        pair->score = auto_ef_get_score (array_info[i]);
+
+        result = g_list_append (result, pair);
+    }
+
+free:
+    auto_ef_free (array_info);
+
+    return result;
+}
+
+void
+auto_encoding_free (GList *list)
+{
+    EncodingPair    *pair = NULL;
+
+    if (NULL == list)
+        return;
+
+    while (list){
+        pair = list->data;
+        if (pair != NULL)
+            g_free (pair->encoding_name);
+
+        list = list->next;
+    }
+
+    g_list_free (list);
+
+    return;
+}
+#endif
+
+gboolean
+str_isutf8 (const gchar *string, gint flags)
+{
+    if (g_utf8_validate (string, -1, NULL))
+        return TRUE;
+    else
+        return FALSE;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/auto-detect.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,138 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+/*
+ * auto-detect.h
+ *
+ * Auto detect the filename/filecontent/string's encoding
+ */
+
+#ifndef _AUTO_DETECT_H
+#define _AUTO_DETECT_H
+
+#define INACCURACY  0.001
+
+#ifdef HAVE_AUTO_EF_H
+#include <auto_ef.h>
+#define DEFAULT_DETECTING_FLAG (AE_LEVEL_2)
+#else
+#define DEFAULT_DETECTING_FLAG 0
+#endif
+
+typedef struct _EncodingPair EncodingPair;
+
+struct _EncodingPair{
+    gchar   *encoding_name;
+    double  score;
+};
+
+/*====================================================================
+ *  Function Name:  file_isutf8
+ *
+ *  Parameters:
+ *      const gchar *filename: the name of file
+ *      gint   flags: used by underlying library to detect encoding. 
+ *              eg: auto_ef use  detect level
+ *
+ *  Desc:
+ *      Determine whether the file's content is UTF-8 or not.
+ *
+ *  Return value:
+ *      True if file content is UTF-8, otherwise False.
+ *
+ *  Author:     Yandong Yao 2006/09/06
+ ========================================================================*/ 
+gboolean file_isutf8 (const gchar *filename, gint flags);
+
+/*====================================================================
+ *  Function Name:  file_encoding_detect
+ *
+ *  Parameters:
+ *      const gchar *filename
+ *      gint flags: used by underlying library to detect encoding. 
+ *                  eg: auto_ef use detect level
+ *
+ *  Desc:
+ *      Detect the file's content encoding, and return detected result.
+ *
+ *  Return value:
+ *      Return one list of EncodingPair
+ *      The encoding with higher score will appear ahead of encoding with lower score.
+ *
+ *      Need free the returned GList manually use auto_encoding_free when don't
+ *      use it again.
+ *
+ *  Author:     Yandong Yao 2006/09/06
+ ========================================================================*/ 
+GList * file_encoding_detect (const gchar *filename, gint flags);
+
+/*====================================================================
+ *  Function Name:  str_isutf8
+ *
+ *  Parameters:
+ *      const gchar *string: one null-terminated string.
+ *      gint flag: used by underlying library to detect encoding. 
+ *                  eg: auto_ef use detect level
+ *
+ *  Desc:   
+ *      Determine whether one string is UTF-8 or not. Internally use 
+ *      g_utf8_validate now.
+ *
+ *  Return value:
+ *      True if is UTF-8, otherwise False.
+ *
+ *  Author:     Yandong Yao 2006/09/06
+ ========================================================================*/ 
+gboolean str_isutf8 (const gchar *string, gint flags);
+
+/*====================================================================
+ *  Function Name:  str_encoding_detect
+ *
+ *  Parameters:
+ *      const gchar *string: one null-terminated string
+ *      gint flag: used by underlying library to detect encoding. 
+ *                  eg: auto_ef use detect level
+ *
+ *  Desc:
+ *      Detect the possible encoding of one string and return one list which 
+ *      contain the encoding name and its score. Higher score pair is ahead 
+ *      of lower score pair
+ *
+ *      Need free the returned GList manually use auto_encoding_free when don't
+ *      use it again.
+ *
+ *  Return value:
+ *
+ *  Author:     Yandong Yao 2006/09/06
+ ========================================================================*/ 
+GList * str_encoding_detect (const gchar *string, gint flags);
+
+/*==================================================================
+ *  Free encoding pair in list and list itself.
+ ==================================================================*/
+void auto_encoding_free (GList *list);
+
+#endif  //_AUTO_DETECT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/callbacks.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,853 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <signal.h>
+#include <strings.h>
+#include <string.h>
+
+#include <glade/glade.h>
+#include <gtk/gtk.h>
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <gconf/gconf-client.h>
+
+#include "fsexam.h"
+#include "file-filter.h"
+#include "fsexam-header.h"
+#include "fsexam-ui.h"
+#include "callbacks.h"
+#include "fsexam-debug.h"
+#include "fsexam-preference-dialog.h"
+
+static gboolean cb_pre_handling (void);
+static void     common_convert (ConvType type);
+static void     print_hash (gpointer key, gpointer value, gpointer data);
+static void     free_selection (gpointer row, gpointer data);
+static void     fsexam_undo_insert (gint32 serial);
+static gint32   fsexam_undo_remove (void);
+
+/*
+ *  pre-handling before real conversion.
+ */
+static gboolean
+cb_pre_handling ()
+{
+    FSEXAM_setting  *setting = view->setting;
+
+    while (TRUE) {
+        if ((setting->pref->encode_list == NULL) 
+                && !setting->pref->auto_detect) {
+            fsexam_gui_show_dialog (
+                            GTK_WINDOW (view->mainwin),
+                            GTK_MESSAGE_ERROR, 
+                            _("No encoding provided. Please check 'Auto Detect'"
+                              " button in preferences dialog or add encoding"
+                              " through encoding dialog.\n"));
+
+            cb_create_pref_dialog ();
+        }else{
+            break;
+        }
+    }
+
+    return TRUE;
+}
+
+static void
+common_convert (ConvType type)
+{
+    GtkTreeModel        *model = NULL;
+    GtkTreeSelection    *selection = NULL;
+    GtkWidget           *treeview = NULL;
+    GtkWidget           *notebook = NULL;
+    GList               *selected_rows = NULL;
+    GList               *tmp = NULL;
+    GList               *files = NULL;
+    gint32              old_serial, new_serial;
+    gboolean            need_hash = FALSE;
+    GtkWidget           *widget = NULL;
+    gchar               *widget_name = NULL;
+
+    widget = gtk_window_get_focus (GTK_WINDOW (view->mainwin));
+    if (widget != NULL)
+        widget_name = (gchar *)gtk_widget_get_name (widget);
+
+    if (widget_name != NULL &&
+            strcmp (widget_name, "treeview_search") == 0) {
+        /* convert search result */
+        if (view->basedir == NULL)
+            return;
+
+        view->focus_treeview = treeview = widget;
+    }else{
+        /* convert files in left pane */
+        if (NULL == view->rootdir)  
+            return;
+
+        treeview = g_object_get_data (G_OBJECT (view->mainwin), 
+                                      "treeview_file");
+        view->focus_treeview = treeview;
+    }
+
+
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
+    if (selection == NULL) {
+        fsexam_statusbar_update (_("No Selection"));
+        goto free;
+    }
+
+    model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
+    selected_rows = gtk_tree_selection_get_selected_rows (selection, &model);
+    if (selected_rows == NULL) {
+        fsexam_statusbar_update (_("No files need to handle"));
+        goto free;
+    }
+
+    if (!view->setting->pref->dry_run 
+            && ((type == ConvName) || (type == RestoreConvName)))
+        need_hash = TRUE;   /* use path hash to update GUI */
+
+    for (tmp = selected_rows; tmp; tmp = g_list_next (tmp) ) {
+        GtkTreeIter  iter;
+        GtkTreePath  *treepath = NULL;
+        
+        treepath = (GtkTreePath *) tmp->data;
+        if (gtk_tree_model_get_iter (model, &iter, treepath)){
+            gchar *filename = NULL;
+
+            filename = fsexam_filename_get_fullname (model, &iter);
+            files = g_list_prepend (files, filename);
+        
+            if (need_hash) {
+                g_hash_table_insert (view->treepath_hash, 
+                           g_strdup (filename), 
+                           gtk_tree_path_to_string (treepath));
+            }
+        }
+    }
+
+    if (fsexam_debug () & FSEXAM_DBG_HASH)
+        g_hash_table_foreach (view->treepath_hash, print_hash, NULL);
+
+    /* show conversion log notebook page or dryrun result notebook page */
+    notebook = g_object_get_data (G_OBJECT (view->mainwin), "notebook_report");
+    if (view->setting->pref->dry_run)
+        gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 1);
+    else
+        gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0);
+        
+
+    old_serial = fsexam_history_get_serial (view->setting->hist_info);
+
+    /* call underneath conversion func */
+    if (type == ConvName) {
+        fsexam_convert_filename_batch (view->setting, files);
+    }else if (type == ConvContent) {
+        fsexam_convert_content_batch (view->setting, files);
+    }else if ((type == RestoreConvName) || (type == RestoreConvContent)) {
+        fsexam_restore (view->setting, files, type);
+    }
+
+    new_serial = fsexam_history_get_serial (view->setting->hist_info);
+    if (new_serial != old_serial) {
+        fsexam_undo_insert (new_serial);    /* insert only when has history */
+    }
+    
+    if (need_hash) {
+        // g_hash_table_remove_all (view->treepath_hash); //need glib-2.12
+        fsexam_hash_remove_all (view->treepath_hash);
+        // view->treepath_hash = NULL;  //still need this for late conversion
+    }
+
+free:
+    g_list_foreach (selected_rows, free_selection, NULL);
+    g_list_free (selected_rows);
+    fsexam_list_free (files);
+    view->focus_treeview = NULL;
+
+    return;
+}
+
+static void 
+print_hash (gpointer key, gpointer value, gpointer data)
+{
+    printf ("value = %s, key = %s\n", (gchar *)value, (gchar *)key);
+
+    return;
+}
+
+static void 
+free_selection (gpointer row, gpointer data)
+{
+    gtk_tree_path_free ((GtkTreePath *) row);
+
+    return;
+}
+
+static void
+fsexam_undo_insert (gint32 serial)
+{
+    view->undo_list = g_slist_prepend (view->undo_list, (gpointer)serial);
+
+    gtk_widget_set_sensitive (
+            g_object_get_data (G_OBJECT (view->mainwin), "menu_undo"),
+            TRUE);
+    gtk_widget_set_sensitive (
+            g_object_get_data (G_OBJECT (view->mainwin), "toolbutton_undo"),
+            TRUE);
+
+}
+
+/* caller need ensure view->undo_list != NULL */
+static gint32
+fsexam_undo_remove ()
+{
+    gint32  serial = (gint32)view->undo_list->data;   /* First In Last Out */
+
+    view->undo_list = g_slist_remove (view->undo_list, (gpointer) serial);
+
+    if (view->undo_list == NULL) {
+        gtk_widget_set_sensitive (
+                  g_object_get_data (G_OBJECT (view->mainwin), "menu_undo"),
+                  FALSE);
+        gtk_widget_set_sensitive (
+                  g_object_get_data (G_OBJECT (view->mainwin), "toolbutton_undo"),
+                  FALSE);
+    }
+
+    return serial;
+}
+
+static void
+common_dryrun (ConvType type)
+{
+    FSEXAM_setting   *setting = view->setting;
+    gboolean         old_convtype;
+
+    old_convtype = setting->pref->conv_content;
+    setting->pref->dry_run = TRUE;
+
+    fsexam_dryrun_buffer_clear_buffer(
+            FSEXAM_DRYRUN_BUFFER (setting->dryrun_info));
+    fsexam_dryrun_write_convtype (setting->dryrun_info, type);
+    setting->pref->conv_content = (type == ConvName) ? FALSE : TRUE;
+    
+    cb_convert ();
+
+    setting->pref->conv_content = old_convtype;
+    setting->pref->dry_run = FALSE;
+
+    return;
+}
+
+/* --------------- Public functions ------------------------ */
+
+void
+fsexam_undo_removeall ()
+{
+  g_slist_free (view->undo_list);
+  view->undo_list = NULL;
+
+  gtk_widget_set_sensitive (
+                g_object_get_data (G_OBJECT (view->mainwin), "menu_undo"),
+                FALSE);
+  gtk_widget_set_sensitive (
+                g_object_get_data (G_OBJECT (view->mainwin), "toolbutton_undo"),
+                FALSE);
+}
+
+/*
+ *  Restore won't remove the history info in hist_file.
+ *  But does undo remove it? The answer is yes, because it
+ *  is the semantic of UNDO
+ *
+ *  Actually hist_info will store the lastest op into 
+ *  hist_info->hist_array[info->current]. So we won't use
+ *  serial at all here.
+ */
+void
+cb_undo ()
+{
+    ConvType    type;
+    GList       *file_list = NULL;
+    GtkWidget   *widget = NULL;
+    gchar       *widget_name = NULL;
+
+    if (view->undo_list == NULL)   /* In fact 'undo' menu is disabled now */
+        return;
+
+    (void) fsexam_undo_remove ();   
+
+    /* get the undo files from history's last record */
+    file_list = fsexam_history_get_last_list (
+                        view->setting->hist_info,
+                        &type);
+
+    if (file_list == NULL) {
+        fsexam_statusbar_update (_("Nothing need to undo"));
+        return;
+    }
+
+    widget = gtk_window_get_focus (GTK_WINDOW (view->mainwin));
+    if (widget != NULL)
+        widget_name = (gchar *)gtk_widget_get_name (widget);
+
+    if (widget_name != NULL &&
+            strcmp (widget_name, "treeview_search") != 0) {
+        widget = g_object_get_data (G_OBJECT (view->mainwin), 
+                                      "treeview_file");
+    }
+
+    view->focus_treeview = widget;
+    view->setting->flags |= FSEXAM_SETTING_FLAGS_UNDO;
+
+    if ((type == ConvName) || (type == ConvNameSpecial)) {
+        fsexam_restore (view->setting, file_list, RestoreConvName);
+    }else if ((type == ConvContent) || (type == ConvContentSpecial)) {
+        fsexam_restore (view->setting, file_list, RestoreConvContent);
+    }
+
+    view->setting->flags &= ~FSEXAM_SETTING_FLAGS_UNDO;
+
+    /* remove latest history infor after undo */
+    fsexam_history_remove_last (view->setting->hist_info);
+    fsexam_list_free (file_list);
+
+    return; 
+}
+
+void
+cb_dryrun ()
+{
+    common_dryrun (view->setting->pref->conv_content ? ConvContent : ConvName);
+
+    if (view->setting->ignore_num == view->setting->total_num) {
+        fsexam_dryrun_write_msg (view->setting->dryrun_info, 
+                _("No results. Please see report pane for more information.\n"));
+    }
+
+    gtk_widget_set_sensitive (
+            g_object_get_data (G_OBJECT (view->mainwin), "menu_scenario"), 
+            TRUE);
+    gtk_widget_set_sensitive (
+            g_object_get_data (G_OBJECT (view->mainwin), "toolbutton_scenario"), 
+            TRUE);
+
+    return;
+}
+
+
+void 
+cb_preview_content ()
+{
+    fsexam_content_peek (0, 0);
+
+    return;
+}
+
+void
+cb_force_convert ()
+{
+    view->setting->pref->force = TRUE;
+    cb_convert ();
+    view->setting->pref->force = FALSE;
+
+    return; 
+}
+
+void
+cb_scenario ()
+{
+    gint32      old_serial, new_serial;
+    GtkWidget   *widget = NULL;
+    gchar       *widget_name = NULL;
+
+    widget = gtk_window_get_focus (GTK_WINDOW (view->mainwin));
+    if (widget != NULL)
+        widget_name = (gchar *)gtk_widget_get_name (widget);
+
+    if (widget_name != NULL && 
+            strcmp (widget_name, "treeview_search") != 0) {
+        widget = g_object_get_data (G_OBJECT (view->mainwin), 
+                                      "treeview_file");
+    }
+
+    view->focus_treeview = widget;
+
+    /* show conversion log notebook page or dryrun result notebook page */
+    gtk_notebook_set_current_page (
+            GTK_NOTEBOOK (g_object_get_data (G_OBJECT (view->mainwin), "notebook_report")),
+            0);
+
+    old_serial = fsexam_history_get_serial (view->setting->hist_info);
+
+    /* reset the dryrun result output position */
+    fsexam_dryrun_buffer_set_current_line (
+            (FsexamDryrunBuffer *)view->setting->dryrun_info,
+            0);
+
+    fsexam_convert_scenario (view->setting);
+
+    new_serial = fsexam_history_get_serial (view->setting->hist_info);
+    if (new_serial != old_serial) {
+        fsexam_undo_insert (new_serial);    /* insert only when has history */
+    }
+
+    view->focus_treeview = NULL;
+    gtk_widget_set_sensitive (
+            g_object_get_data (G_OBJECT (view->mainwin), "menu_scenario"), 
+            FALSE);
+    gtk_widget_set_sensitive (
+            g_object_get_data (G_OBJECT (view->mainwin), "toolbutton_scenario"), 
+            FALSE);
+
+    return;
+}
+
+void
+cb_restore ()
+{
+    common_convert (view->setting->pref->conv_content ? RestoreConvContent 
+                                                      : RestoreConvName);
+
+    return;
+}
+
+void
+cb_convert ()
+{
+    if (! cb_pre_handling ())
+        return;
+
+    common_convert (view->setting->pref->conv_content ? ConvContent : ConvName);
+
+    return;
+}
+
+/*
+ * callback for "Content mode" and "Name mode" menu
+ */
+void
+cb_mode ()
+{
+    GtkWidget *w = NULL;
+
+    w = g_object_get_data (G_OBJECT (view->mainwin), "menu_content_mode");
+    view->setting->pref->conv_content = gtk_check_menu_item_get_active (
+            GTK_CHECK_MENU_ITEM (w));
+
+    return;
+}
+
+/*
+ * callback for "Name mode" popup toggle menu
+ */
+void
+cb_name_mode_popup (GtkCheckMenuItem *menuitem, gpointer data)
+{
+    gboolean  content_mode;
+    GtkWidget *w = NULL;
+
+    content_mode = ! gtk_check_menu_item_get_active (menuitem);
+    view->setting->pref->conv_content = content_mode;
+
+    w = g_object_get_data (G_OBJECT (view->mainwin), 
+            content_mode ? "menu_content_mode" : "menu_name_mode");
+    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (w), TRUE);
+
+    return;
+}
+
+/*
+ * callback for "Content mode" popup toggle menu
+ */
+void
+cb_content_mode_popup (GtkCheckMenuItem *menuitem, gpointer data)
+{
+    gboolean  content_mode;
+    GtkWidget *w = NULL;
+
+    content_mode = gtk_check_menu_item_get_active (menuitem);
+    view->setting->pref->conv_content = content_mode;
+
+    w = g_object_get_data (G_OBJECT (view->mainwin), 
+            content_mode ? "menu_content_mode" : "menu_name_mode");
+    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (w), TRUE);
+
+    return;
+}
+
+/*
+ * callback for the GtkEntry 'entry_folder'
+ */
+void
+cb_change_folder ()
+{
+    GtkWidget   *widget = NULL;
+   
+    widget = g_object_get_data (G_OBJECT (view->mainwin), "entry_folder");
+    fsexam_change_dir (gtk_entry_get_text (GTK_ENTRY (widget)));
+    
+    return;
+}
+
+/* 
+ * callback for toggle signal of "show dryrun result" menu
+ * show responding page of GtkNoteBook
+ */
+void
+cb_show_dryrun_result (GtkCheckMenuItem *item, gpointer data)
+{
+    GtkWidget *w = NULL;
+    gint      page_num;
+
+    if (! gtk_check_menu_item_get_active (item))
+        return;
+
+    w = g_object_get_data (G_OBJECT (view->mainwin), "notebook_report");
+    page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (w));
+
+    if (page_num == 1)
+        return;
+
+    gtk_notebook_set_current_page (GTK_NOTEBOOK (w), 1);
+
+    return;
+}
+
+/*
+ * callback for toggle singal of "show report pane" menu
+ */
+void
+cb_show_report_pane (GtkCheckMenuItem *item, gpointer data)
+{
+    GtkWidget *w;
+    gint      page_num;
+
+    if (! gtk_check_menu_item_get_active (item))
+        return;
+
+    w = g_object_get_data (G_OBJECT (view->mainwin), "notebook_report");
+    page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (w));
+
+    if (page_num == 0)
+        return;
+
+    gtk_notebook_set_current_page (GTK_NOTEBOOK (w), 0);
+
+    return;
+}
+
+/*
+ * Set Radio Menu Item for 'Show report pane' or 'Show Dryrun result page'
+ */
+void
+cb_change_current_page (GtkNotebook *notebook, gint arg1, gpointer user_data)
+{
+    GtkWidget *w;
+    gint      page_num;
+
+    w = g_object_get_data (G_OBJECT (view->mainwin), "notebook_report");
+    page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (w));
+
+    w = g_object_get_data (G_OBJECT (view->mainwin),
+            page_num == 0 ? "menu_report" : "menu_dryrun_result");
+    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (w), TRUE);
+
+    return; 
+}
+
+/*
+ * Callback for searching dialog  response events
+ */
+static void
+search_dialog_response_handler (GtkWidget *dialog, gint id, gpointer data)
+{
+    if (id == GTK_RESPONSE_OK) {            /* find button */
+        GtkWidget   *w = NULL;
+        gchar       *param = NULL;
+        gchar       *tmp = NULL;
+        gchar       *folder = NULL;
+        const gchar *user = NULL;
+        const gchar *group = NULL;
+        const gchar *name = NULL;
+        gint        data_date;
+        gint        status_date;
+
+        w = g_object_get_data (G_OBJECT (dialog), "filebtn_search_folder");
+        folder = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (w));
+
+        w = g_object_get_data (G_OBJECT (dialog), "entry_name");
+        name = gtk_entry_get_text (GTK_ENTRY (w));
+        
+        w = g_object_get_data (G_OBJECT (dialog), "entry_user");
+        user = gtk_entry_get_text (GTK_ENTRY (w));
+
+        w = g_object_get_data (G_OBJECT (dialog), "entry_group");
+        group = gtk_entry_get_text (GTK_ENTRY (w));
+
+        w = g_object_get_data (G_OBJECT (dialog), "spinbutton_data");
+        data_date = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (w));
+        
+        w = g_object_get_data (G_OBJECT (dialog), "spinbutton_status");
+        status_date = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (w));
+
+        param = g_strdup (folder);
+        
+        if ((name != NULL) && (*name != '\0')) {
+            tmp = g_strdup_printf ("%s -name %s", param, name);
+            g_free (param);
+            param = tmp;
+        }
+
+        if ((user != NULL) && (*user != '\0')) {
+            tmp = g_strdup_printf ("%s -user %s", param, user);
+            g_free (param);
+            param = tmp;
+        }
+
+        if ((group != NULL) && (*group != '\0')) {
+            tmp = g_strdup_printf ("%s -group %s", param, group);
+            g_free (param);
+            param = tmp;
+        }
+
+        if (data_date != 0) {
+            tmp = g_strdup_printf ("%s -mtime %d", param, data_date);
+            g_free (param);
+            param = tmp;
+        }
+
+        if (status_date != 0) {
+            tmp = g_strdup_printf ("%s -ctime %d", param, status_date);
+            g_free (param);
+            param = tmp;
+        }
+
+        gtk_widget_destroy (GTK_WIDGET (dialog));
+       
+        filter_gui_run (folder, param);
+
+        g_free (folder);
+        g_free (param);
+
+        return;
+    }
+
+    gtk_widget_destroy (GTK_WIDGET (dialog));
+
+    return;
+}
+
+/*
+ * callback for menu "Search for files..."
+ */
+void
+cb_filter ()
+{
+    GladeXML    *xml = NULL;
+    GtkWidget   *dialog = NULL;
+    GtkWidget   *w = NULL;
+
+    xml = fsexam_gui_load_glade_file (FSEXAM_GLADE_FILE,
+            "dialog_search", GTK_WINDOW (view->mainwin));
+    
+    if (xml == NULL)
+        return;
+
+    dialog = glade_xml_get_widget (xml, "dialog_search");
+    g_signal_connect (G_OBJECT (dialog), "response",
+            G_CALLBACK (search_dialog_response_handler), NULL);
+    
+    w = glade_xml_get_widget (xml, "filebtn_search_folder");
+    g_object_set_data (G_OBJECT (dialog), "filebtn_search_folder", w);
+    
+    w = glade_xml_get_widget (xml, "entry_name");
+    g_object_set_data (G_OBJECT (dialog), "entry_name", w);
+
+    w = glade_xml_get_widget (xml, "entry_group");
+    g_object_set_data (G_OBJECT (dialog), "entry_group", w);
+
+    w = glade_xml_get_widget (xml, "entry_user");
+    g_object_set_data (G_OBJECT (dialog), "entry_user", w);
+
+    w = glade_xml_get_widget (xml, "spinbutton_data");
+    g_object_set_data (G_OBJECT (dialog), "spinbutton_data", w);
+    
+    w = glade_xml_get_widget (xml, "spinbutton_status");
+    g_object_set_data (G_OBJECT (dialog), "spinbutton_status", w);
+
+    w = glade_xml_get_widget (xml, "button_find");
+    g_object_set_data (G_OBJECT (dialog), "button_find", w);
+    
+    w = glade_xml_get_widget (xml, "button_stop");
+    g_object_set_data (G_OBJECT (dialog), "button_stop", w);
+
+    g_object_unref (xml);
+
+    gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE);
+    gtk_dialog_run (GTK_DIALOG (dialog));
+
+    return;
+}
+
+/*
+ * callback for menu "stop searching"
+ */
+void
+cb_stop_search ()
+{
+    GtkWidget *w = NULL;
+
+    if (view->pid < 0)
+        return;
+
+    fsexam_statusbar_update (_("Stop the Searching..."));
+
+    if (view->pid > 0) {
+        kill (view->pid, SIGKILL);
+        wait (NULL);
+    }
+    view->pid = -1;
+    
+    stop_search = TRUE;
+
+    w = g_object_get_data (G_OBJECT (view->mainwin), "menu_stop_search");
+    gtk_widget_hide (w);
+    w = g_object_get_data (G_OBJECT (view->mainwin), "menu_search");
+    gtk_widget_show (w);
+
+    return;
+}
+
+/*
+ *  Hide the search result pane after click the Close icon 'x'
+ */  
+void
+cb_hide_search_result ()
+{
+    fsexam_search_treeview_hide ();
+
+    return;
+}
+
+/*
+ * callback for menu "search result": show or hide
+ */
+void
+cb_menu_search_result () 
+{
+    GtkWidget *w = NULL;
+
+    w = g_object_get_data (G_OBJECT (view->mainwin), "menu_search_result");
+    
+    if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (w))) {
+        fsexam_search_treeview_show ();
+    }else{
+        fsexam_search_treeview_hide ();
+    }
+
+    return;
+}
+
+/*
+ * callback for "clear search result" menu
+ */
+void
+cb_menu_clear_search ()
+{
+    GtkWidget *w = NULL;
+
+    fsexam_search_treeview_append_file (NULL, TRUE);
+
+    w = g_object_get_data (G_OBJECT (view->mainwin), "menu_clear_search");
+    gtk_widget_set_sensitive (w, FALSE);
+
+    w = g_object_get_data (G_OBJECT (view->mainwin), "label_result");
+    gtk_label_set_text (GTK_LABEL (w), _("Search Result has been cleared."));
+
+    g_free (view->basedir);
+    view->basedir = NULL;
+
+    return;
+}
+
+/*
+ * "changed" event handler for dryrun text view
+ */
+void
+cb_text_buffer_changed (GtkTextBuffer *buffer, gpointer user_data)
+{
+    GtkWidget   *textview = NULL;
+    GtkTextMark *mark = NULL;
+
+    textview = g_object_get_data (G_OBJECT (view->mainwin), "textview_dryrun");
+    mark = gtk_text_buffer_get_mark (buffer, "end_mark");
+    gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (textview), 
+            mark,
+            0.0,
+            TRUE,
+            0.0,
+            1.0);
+
+    return;
+}
+
+/*
+ * callback for toolbar style change 
+ */
+void
+cb_toolbar_style (GConfClient *client, 
+		guint cnxn_id,
+		GConfEntry *entry,
+		gpointer user_data)
+{
+	GtkWidget 	*toolbar = NULL;
+	const gchar *style;
+
+	if (entry->value == NULL)
+		return;
+	style = gconf_value_get_string (entry->value);
+	toolbar = g_object_get_data (G_OBJECT (view->mainwin), "toolbar");
+
+	if (strcmp (style, "both") == 0) {
+		gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_BOTH);
+	}else if (strcmp (style, "both-horiz") == 0) {
+		gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_BOTH_HORIZ);
+	}else if (strcmp (style, "icons") == 0) {
+		gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS);
+	}else if (strcmp (style, "text") == 0) {
+		gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_TEXT);
+	}
+
+	return;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/callbacks.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,39 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _CALLBACK_H
+#define _CALLBACK_H
+
+void    fsexam_undo_removeall (void);
+void    cb_undo (void);
+void    cb_restore (void);
+void    cb_convert (void);
+void    cb_dryrun (void);
+void    cb_force_convert (void);
+void    cb_scenario (void);
+void    cb_preview_content (void);
+
+#endif  //_CALLBACK_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/encoding.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,452 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <string.h>
+#include <dirent.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#include <glib.h>
+
+#include "encoding.h"
+#include "fsexam-debug.h"
+#include "fsexam-header.h"
+
+gint indexg;
+
+void 
+print_encoding (gpointer en, gpointer data)
+{
+    Encoding *encoding = (Encoding *)en;
+
+    /* Flawfinder: ignore */
+    printf ("\tencoding name: %s\n", id2encoding (encoding->encodingID));
+
+    return;
+}
+
+void 
+print_encoding_list (GList *list)
+{
+    if (list == NULL) {
+        printf ("encoding list is NULL\n");
+        return;
+    }
+
+    while (list) {
+        Encoding *encode = (Encoding *)list->data;
+
+        /* Flawfinder: ignore */
+        printf ("\tencoding name: %s\ttext=%s\n", 
+                id2encoding (encode->encodingID), 
+                encode->convtype == ConvName 
+                ? (encode->u.converted_text ? encode->u.converted_text : "NULL")
+                : (encode->u.contents ? encode->u.contents : "NULL"));
+
+        list = g_list_next (list);
+    }
+
+    return;
+}
+
+static Encoding *
+encoding_new (const gchar *encoding_name, gboolean auto_detected)
+{
+    Encoding    *encode = NULL;
+    GIConv      icd;
+    short       en_id;
+
+    if (encoding_name == NULL)
+        return NULL;
+    
+    en_id = encoding2id (encoding_name);
+
+    if (en_id == -1) {
+        g_print (_("%s is not supported encoding name, use "
+                   "'fsexamc -l' to list supported encoding.\n"), 
+                encoding_name);
+
+        return NULL;
+    } 
+   
+    /*
+     * Workaround:
+     * 		When use ISO-2022-CN, we must use zh_CN.iso2022-CN to
+     * 		open GIConv.
+     */
+    if (en_id == encoding2id("ISO-2022-CN"))
+        icd = g_iconv_open ("UTF-8", "zh_CN.iso2022-CN");
+    else
+        icd = g_iconv_open ("UTF-8", id2encoding (en_id));
+
+    if (icd == (GIConv)-1) {
+        g_print (_("Your system do not support conversion from '%s' to 'UTF-8',"
+                   "will ignore it.\n"), 
+                encoding_name);
+
+        return NULL;
+    }
+
+    encode = g_new0 (Encoding, 1);
+    encode->icd = icd;
+    encode->encodingID = en_id;
+    encode->score = FAIL;
+    encode->convtype = ConvName;
+    encode->autodetected = auto_detected;
+
+    return encode;
+}
+
+GList *
+fsexam_encoding_init (GSList *list)
+{
+    GList   *encode_list = NULL;
+
+    if (list == NULL)
+        return NULL;
+
+    while (list) {
+        Encoding    *encode = NULL;
+
+        encode = encoding_new ((char *)list->data, FALSE);
+        list = g_slist_next (list);
+
+        if (encode == NULL)
+            continue;
+
+        encode_list = g_list_prepend (encode_list, encode);
+    }
+
+    encode_list = g_list_reverse (encode_list);
+
+    return encode_list;
+}
+
+/* 
+ * append auto detected encoding into existing encoding list
+ */
+GList *fsexam_encoding_add_auto (GList *encoding_list, 
+                                 GList *detected_encoding)
+{
+    while (detected_encoding) {
+        EncodingPair    *pair = (EncodingPair *)detected_encoding->data;
+        GList           *tmp = NULL;
+
+        for (tmp = encoding_list; tmp; tmp = g_list_next (tmp)) {
+            Encoding    *encode = (Encoding *)tmp->data;
+            const gchar *name = id2encoding (encode->encodingID);
+
+            if (g_ascii_strcasecmp (pair->encoding_name, name) == 0) {
+                break;
+            }
+        }
+
+        if (tmp == NULL) {  /* new encoding found */
+            Encoding    *en;
+
+            en = encoding_new (pair->encoding_name, TRUE);
+            if (en != NULL)
+                encoding_list = g_list_append (encoding_list, en);
+        }
+
+        detected_encoding = g_list_next (detected_encoding);
+    }
+
+    return encoding_list;
+}
+
+void
+fsexam_encoding_destroy (GList *encode_list)
+{
+    if (encode_list == NULL)
+        return;
+
+    while (encode_list) {
+        Encoding *encode = (Encoding *)encode_list->data;
+
+        if (encode->convtype == ConvContent && encode->u.contents != NULL)
+            g_free (encode->u.contents);
+      
+        g_iconv_close (encode->icd);
+        g_free (encode);
+
+        encode_list = g_list_next (encode_list);
+    }
+
+    g_list_free (encode_list);
+}
+
+/*
+ * free memory allocated for file content in Encoding
+ */
+void
+fsexam_encoding_cleanup_content (GList *encode_list)
+{
+    while (encode_list) {
+        Encoding *encode = (Encoding *)encode_list->data;
+
+        if (encode->convtype == ConvContent) {
+            g_free (encode->u.contents);
+            encode->u.contents = NULL;
+        }
+
+        encode_list = g_list_next (encode_list);
+    }
+
+    return;
+}
+
+/*
+ * free memory allocated for auto detected Encoding
+ */ 
+GList * 
+fsexam_encoding_remove_auto (GList *encode_list)
+{
+    GList *tmp = encode_list;
+
+    while (tmp != NULL) {   
+        Encoding *encode = (Encoding *)tmp->data;
+        
+        if (encode->autodetected) {
+            GList *next = NULL;
+
+            if (encode->convtype == ConvContent && encode->u.contents)
+                g_free (encode->u.contents);
+
+            g_iconv_close (encode->icd);
+            g_free (encode);
+     
+            /* delete current node from list */
+            next = g_list_next (tmp);
+            encode_list = g_list_delete_link (encode_list, tmp);
+            tmp = next;
+        } else {
+            tmp = g_list_next (tmp);
+        }
+    }
+   
+   return encode_list;
+}
+
+
+/*
+ * Use give encoding in list to convert given text and 
+ * store result into list again
+ */
+Score
+fsexam_encoding_decode (GList *encode_list,
+                        ConvType convtype,
+                        gchar *text,    /* filename or content sample */
+                        size_t textlen,
+                        gboolean force)
+{
+    GList    *list_for_dbg = encode_list;
+    gboolean success = FAIL;
+
+    if (fsexam_debug() & FSEXAM_DBG_ENCODING) {
+        print_encoding_list (list_for_dbg);
+    }
+
+    if ((encode_list == NULL) || (text == NULL))
+        return FAIL;
+
+    if ((g_utf8_validate (text, textlen, NULL)) && !force) 
+        return ORIGINAL;
+    
+    while (encode_list != NULL) {
+        Encoding *encode = (Encoding *)encode_list->data;
+        gchar    *inbuf = text;
+        size_t   inbytes_left = textlen;
+        gchar    *outbuf;
+        gchar    *old_outbuf;
+        size_t   outbytes_left;
+        size_t   num_uconv = 0;
+
+        encode->convtype = convtype;
+        if (convtype == ConvName) {
+            outbuf = encode->u.converted_text;
+            outbytes_left = TEXT_LEN;
+        } else {
+            outbytes_left = 3 * inbytes_left;
+            outbuf = encode->u.contents = g_new0 (gchar, outbytes_left);
+        }
+
+        memset (outbuf, 0, outbytes_left);
+        old_outbuf = outbuf;
+
+        num_uconv = g_iconv (encode->icd, &inbuf, &inbytes_left,
+                            &outbuf, &outbytes_left);
+
+        if ((E2BIG == errno) && ((size_t)-1 == num_uconv))
+            num_uconv = 0;                  /* very few condition */
+
+        /*
+         * Sometimes, g_iconv will convert successfully, but the result
+         * maybe not real UTF-8 sequence. Check this before continuing.
+         * I do encounter such problem when handling ISO-2022-KR.
+         */
+        if (! g_utf8_validate (old_outbuf, -1, NULL))
+            num_uconv = (size_t)-1;
+
+        switch (num_uconv) {
+        case 0:
+            encode->score = HIGH;
+            success = TRUE;
+            break;
+        case (size_t)-1:
+            encode->score = FAIL;
+            break;
+        default:
+            encode->score = LOW;
+            success = TRUE;
+            break;
+        }
+
+        encode_list = g_list_next (encode_list);
+    }
+
+    return success ? HIGH : FAIL;
+}
+
+/*
+ * Get the number of encoding from which can convert to UTF-8
+ */
+gint
+fsexam_encoding_get_length (GList *encoding_list)
+{
+    gint    length = 0;
+
+    while (encoding_list) {
+        Encoding *en = encoding_list->data;
+
+        encoding_list = g_list_next (encoding_list);
+
+        if (en == NULL || en->score == FAIL)
+            continue;
+
+        length++;
+    }
+
+    return length;
+}
+
+/*
+gboolean
+fsexam_encoding_get_elements (Encoding *encode,
+             gint index,
+             va_list args)
+{
+    gint *n_elements;
+
+    n_elements = va_arg (args, gint *);
+    (*n_elements)++;
+
+    return TRUE;
+}
+*/
+
+/* 
+ * Iterate encode_list using given function 
+ * Stop traverse if user function return FALSE
+ */
+void
+fsexam_encoding_iterate_with_func (GList *encode_list,
+                                   EncodeFunc func, ...)
+{
+    va_list args;
+    gint    encode_idx = -1;
+
+    if (encode_list == NULL)
+        return;
+
+    va_start (args, func);
+
+    while (encode_list != NULL) {
+        Encoding *encode = (Encoding *)encode_list->data;
+
+        encode_list = g_list_next (encode_list);
+        ++encode_idx;
+
+        if (encode->score == FAIL) 
+            continue;
+
+        if (! (*func)(encode, encode_idx, args))
+            break;
+    }
+
+    va_end (args);
+
+    return;
+}
+
+/*
+ * Tanslate the user provided index to index in encode_list.
+ *
+ * It is one kind of func of fsexam_encoding_iterate_with_func () 
+ */
+gboolean
+fsexam_encoding_translate_index (Encoding *encode, 
+                                 gint index, /* the index in GList */
+                                 va_list args)
+{
+    gint *old_index = va_arg (args, gint *);  /* the user's selection */
+    gint *new_index = va_arg (args, gint *);  /* store result */
+
+    if (*old_index) {  
+        --*old_index;
+        return TRUE;
+    } else {
+        *new_index = index; 
+        return FALSE;
+    }
+}
+
+gint
+fsexam_encoding_get_first_index (GList *encode_list)
+{
+    gint encode_idx = -1, best_idx = -1;
+
+    while (encode_list != NULL) {
+        Encoding *encode = (Encoding *)encode_list->data;
+
+        encode_list = g_list_next (encode_list);
+        ++encode_idx;
+
+        if (encode->score == HIGH) {
+            // found it, the first encoding with score as HIGH
+            best_idx = encode_idx;
+                break;
+        } else if (encode->score == LOW) {
+            // record the first encoding with score as LOW
+            if (best_idx == -1) 
+                best_idx = encode_idx;
+        }
+    }
+
+    return best_idx;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/encoding.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,102 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _ENCODE_H_
+#define _ENCODE_H_
+
+typedef enum { 
+        FAIL, 
+        LOW, 
+        HIGH, 
+        ORIGINAL 
+} Score;
+
+typedef enum { 
+        ConvName,
+        ConvNameSpecial,
+
+        ConvContent = 0x10,
+        ConvContentSpecial,
+        ConvContentWithCRLF,
+        ConvContentCRLFOnly,
+
+        RestoreConvName = 0x100,
+        RestoreConvNameSpecial,
+        RestoreConvContent = 0x1000,
+        RestoreConvContentWithCRLF,
+        RestoreConvContentCRLFOnly,
+
+        DryRunName,
+        DryRunContent,
+
+	ConvInvalid,
+} ConvType;
+
+#define VALID_CONVTYPE(v) (((v) == ConvName) || ((v) & ConvContent) \
+                    || ((v) & ConvNameSpecial) || ((v) && ConvContentSpecial))
+
+#define MATCH_CONVTYPE(v, w) ((v) == ConvName ? (w) == ConvName : \
+                  ((w) == ConvContent || (w) == ConvContentWithCRLF \
+                   || (w) == ConvContentCRLFOnly))
+
+#define GetConvTypeReverse(c) ((c == ConvName) ? ConvNameReverse : \
+                               (c - ConvContent) + ConvContentReverse)
+
+#define TEXT_LEN 256
+
+typedef struct _Encoding Encoding;
+struct _Encoding {
+    short   encodingID;
+    GIConv  icd;
+    Score   score;
+    ConvType convtype;
+    gboolean autodetected;
+    union {
+        gchar converted_text[TEXT_LEN];
+        gchar *contents;    /* don't use fixed array due to no way to trunc */
+    } u;
+};
+
+typedef gboolean (*EncodeFunc) (Encoding *, gint, va_list);
+
+GList   *fsexam_encoding_init (GSList *);
+
+Score   fsexam_encoding_decode (GList *, ConvType, gchar *, size_t, gboolean);
+void    fsexam_encoding_iterate_with_func (GList *, EncodeFunc, ...);
+
+gint    fsexam_encoding_get_length (GList *encoding_list);
+
+gboolean fsexam_encoding_get_elements (Encoding *, gint, va_list);
+gboolean fsexam_encoding_translate_index (Encoding *, gint, va_list);
+gint     fsexam_encoding_get_first_index (GList *);
+
+void    fsexam_encoding_destroy (GList *);
+void    fsexam_encoding_cleanup_content (GList *);
+GList * fsexam_encoding_remove_auto (GList *);
+GList * fsexam_encoding_add_auto (GList *, GList *);
+void    print_encoding (gpointer en, gpointer data);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/file-filter.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,293 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <sys/types.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <strings.h>
+#include <string.h>
+#include <errno.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+
+#include "fsexam.h"
+#include "fsexam-error.h"
+#include "fsexam-helper.h"
+#include "file-filter.h"
+#include "fsexam-header.h"
+#include "fsexam-ui.h"
+
+#define CMD_NAME                "/usr/bin/find"
+#define FSEXAM_REFRESH_TIMEOUT  50000
+
+static gchar **
+filter_compose_argv (const gchar *params)
+{
+    gchar *full_cmd = NULL;
+    gchar **argv = NULL;
+
+    if (params == NULL) {
+        return NULL;
+    }
+
+    full_cmd = g_strdup_printf ("%s %s", CMD_NAME, params);
+    argv = g_strsplit (full_cmd, " ", -1);
+    g_free (full_cmd);
+
+    return argv;
+}
+
+/*
+ * Run find(1) with given params, and return the result
+ */
+GList *
+filter_cmd_run (const gchar *params)
+{
+    FILE    *fp = NULL;
+    gchar   **argv = NULL;
+    gchar   *buf = NULL;
+    GList   *list = NULL;
+    GError  *error = NULL;
+    gint    child_stdout;
+
+    argv = filter_compose_argv (params);
+    if (argv == NULL) {
+        g_print (_("Parameters of find(1) is empty.\n"));
+        return NULL;
+    }
+
+    /* create pipe */
+    if (!g_spawn_async_with_pipes (NULL, argv,
+                NULL,       /* envp */
+                0,      /* GSpawnFlags */
+                NULL, NULL,
+                NULL,   /* pid */
+                NULL,
+                &child_stdout,
+                NULL, 
+                &error)) {
+        g_print (error->message);
+        g_error_free (error);
+        g_strfreev (argv);
+
+        return NULL;
+    }
+
+    /* create FILE pointer from subprocess's stdout */
+    if ((fp = fdopen (child_stdout, "r")) == NULL) {
+        g_print (_("Can't open pipe file descriptor.\n"));
+        g_strfreev (argv);
+        return NULL;
+    }
+        
+    buf = (gchar *) g_malloc (PATH_MAX);
+    g_print (_("Searching..."));
+    g_print ("\n");
+
+    while (fgets (buf, PATH_MAX, fp) != NULL) {
+        gint  len = strlen (buf);
+
+        if (buf[len - 1] == '\n')
+            buf[len - 1] = '\0';
+
+        list = g_list_prepend (list, g_strdup (buf));
+    }
+
+    g_print (_("Search finished"));
+    g_print ("\n");
+
+    g_free (buf);
+    g_strfreev (argv);
+    fclose (fp);
+
+    return list;
+}
+
+/*
+ * Run file(1) and append searched files into search result treeview 
+ */
+void
+filter_gui_run (const gchar *folder, const gchar *params)
+{
+    FILE    *fp = NULL;
+    gchar   **argv = NULL;
+    GError  *error = NULL;
+    gint    child_stdout;
+    gint    file_count = 0;
+    gchar   *buf = NULL;
+    gchar   *msg = NULL;
+    GTimer  *timer = NULL;
+    gulong  duration;
+    GtkWidget *menu_stop = NULL;
+    GtkWidget *menu_search = NULL;
+    GtkWidget *menu_clear = NULL;
+    GtkWidget *label_result = NULL;
+
+    argv = filter_compose_argv (params);
+    if (argv == NULL) {
+        g_print (_("Parameters of find(1) is empty.\n"));
+        return;
+    }
+
+    /* create pipe */
+    if (!g_spawn_async_with_pipes (NULL, argv, 
+                NULL,       /* envp */
+                0,          /* GSpawnFlags */
+                NULL, NULL, 
+                &view->pid, 
+                NULL,
+                &child_stdout,
+                NULL,
+                &error)) {
+        GtkWidget *dialog = NULL;
+
+        dialog = gtk_message_dialog_new (GTK_WINDOW (view->mainwin),
+                GTK_DIALOG_DESTROY_WITH_PARENT,
+                GTK_MESSAGE_ERROR,
+                GTK_BUTTONS_OK,
+                _("Error occurs during executing the search command."));
+        gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
+                error->message);
+
+        gtk_dialog_run (GTK_DIALOG (dialog));
+        
+        gtk_widget_destroy (dialog);
+        g_error_free (error);
+        g_strfreev (argv);
+        
+        return;
+    }
+
+    /* create FILE pointer from subprocess's stdout */
+    if ((fp = fdopen (child_stdout, "r")) == NULL) {
+        GtkWidget *dialog = NULL;
+
+        dialog = gtk_message_dialog_new (GTK_WINDOW (view->mainwin),
+                GTK_DIALOG_DESTROY_WITH_PARENT,
+                GTK_MESSAGE_ERROR,
+                GTK_BUTTONS_OK,
+                _("Error occurs when open fd."));
+        gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
+                g_strerror (errno));
+
+        gtk_dialog_run (GTK_DIALOG (dialog));
+        
+        gtk_widget_destroy (dialog);
+        g_strfreev (argv);
+
+        return;
+    }
+
+    /*
+     * Prepare for searching 
+     */
+    menu_clear = g_object_get_data (G_OBJECT (view->mainwin), 
+                                    "menu_clear_search");
+    menu_search = g_object_get_data (G_OBJECT (view->mainwin), "menu_search");
+    menu_stop = g_object_get_data (G_OBJECT (view->mainwin), 
+                                    "menu_stop_search");
+    gtk_widget_set_sensitive (menu_clear, FALSE);
+    gtk_widget_hide (menu_search);
+    gtk_widget_show (menu_stop);
+    
+    label_result = g_object_get_data (G_OBJECT (view->mainwin), "label_result");
+    fsexam_statusbar_update (_("Searching..."));
+
+    /* show result pane and clear previous result */
+    fsexam_search_treeview_append_file (NULL, TRUE);
+    g_free (view->basedir);
+
+    /* resolve possible symlink in folder path */
+    if (g_file_test (folder, G_FILE_TEST_IS_SYMLINK))
+        view->basedir = get_abs_path_for_symlink_target (folder);
+    else
+        view->basedir = get_abs_path (folder);
+
+    stop_search = FALSE;
+    buf = (gchar *) g_malloc (PATH_MAX);
+    memset (buf, 0, PATH_MAX);
+
+    timer = g_timer_new ();
+    g_timer_start (timer);
+
+    /* Read data from child's stdout async */
+    while (fgets (buf, PATH_MAX, fp) != NULL) {
+        gint  len = strlen (buf);
+
+        if (buf[len - 1] == '\n')
+            buf[len - 1] = '\0';
+
+        fsexam_search_treeview_append_file (buf, FALSE);
+        file_count ++;
+
+        g_timer_elapsed (timer, &duration);
+
+        if (duration > FSEXAM_REFRESH_TIMEOUT) {
+            msg = g_strdup_printf (_("%d files found"), file_count);
+            gtk_label_set_text (GTK_LABEL (label_result), msg);
+            g_free (msg);
+
+            while (gtk_events_pending ()) {
+                gtk_main_iteration ();
+            }
+
+            g_timer_reset (timer);
+        }
+
+        if (force_quit) /* user quit application */
+            break;
+    }
+
+    g_timer_destroy (timer);
+
+    if (!force_quit) {  /* Quit the whole app, mainwin has been destroyed */
+        g_spawn_close_pid (view->pid);
+        view->pid = -1;
+
+        msg = g_strdup_printf (_("%d files found"), file_count);
+        gtk_label_set_text (GTK_LABEL (label_result), msg);
+        g_free (msg);
+
+        if (file_count != 0)
+            gtk_widget_set_sensitive (menu_clear, TRUE);
+
+        gtk_widget_hide (menu_stop);
+        gtk_widget_show (menu_search);
+    
+        fsexam_statusbar_update (stop_search ? _("Search stopped") 
+                                             : _("Search finished"));
+    }
+
+    fclose (fp);
+    g_free (buf);
+    g_strfreev (argv);
+
+    return;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/file-filter.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,42 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _FILE_FILTER_H
+#define _FILE_FILTER_H
+
+/*
+ * file-filter.h
+ *  
+ *      Filter files under given directory according to user's criteria.
+ *      The current implementation use file(1) command to do this job.
+ */
+/*
+ * run cmd, return GList
+ */
+GList *filter_cmd_run (const gchar *params);
+void  filter_gui_run (const gchar *folder, const gchar *params);
+
+#endif //_FSEXAM_FILTER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/file-validate.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,208 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <fcntl.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <libgen.h>
+#include <strings.h>
+#include <string.h>
+
+#ifdef sun
+#include <sys/mnttab.h>
+#else
+#include <mntent.h>
+#endif
+
+#include <glib.h>
+#include <glib/gi18n.h>
+
+#include "fsexam-header.h"
+
+/*
+ * Determine whether 'filename' is one file under directory 'path'
+ * 
+ * Params:
+ *      filename: abs path of file (both path has no '.' or '..')
+ */
+static gboolean
+compare_path (const gchar *path, const gchar *filename)
+{
+    if ((path == NULL) || (filename == NULL))
+        return FALSE;
+
+    while ((*path == *filename) && (*path != '\0') && (*filename != '\0')) {
+        path++;
+        filename++;
+    }
+
+    if ((*path == '\0') && ((*filename == '\0') || (*filename == '/')))
+        return TRUE;
+    else 
+        return FALSE;
+}
+
+/*
+ * Given file is remote file (NFS) or not
+ */
+gboolean
+is_remote_file (GList *remote_paths, const gchar *filename)
+{
+    if (filename == NULL)
+        return TRUE;    //The return value has no meaning
+
+    while (remote_paths) {
+        const gchar *mountp = remote_paths->data;
+
+        if (compare_path (mountp, filename))
+            return TRUE;
+
+        remote_paths = g_list_next (remote_paths);
+    }
+
+    return FALSE;
+}
+
+/*
+ * Whether need handle this file or not
+ */
+gboolean
+file_validate_for_contentconv (const gchar *filename, FSEXAM_setting *setting)
+{
+    struct stat     buf;
+    gboolean        ret = FALSE;
+    gchar           *ptr = NULL;
+    gchar           *abs_path = NULL;
+
+    if ((NULL == filename) || (NULL == setting))
+        return FALSE;
+
+    if (lstat(filename, &buf) < 0){
+        fsexam_errno = ERR_CANNOT_OPEN;
+        goto done;
+    }
+
+    if (! S_ISREG(buf.st_mode)) { 
+        fsexam_errno = ERR_NOT_REG_FILE;
+        goto done;
+    }
+
+    if (buf.st_size == 0) {
+        fsexam_errno = ERR_EMPTY_FILE;
+        goto done;
+    }
+
+    abs_path = get_abs_path (filename); /* for is_remote_file () */
+    ptr = basename (abs_path);          /* return "/" if only contain '/' */
+    
+    if (!setting->pref->hidden){
+        if (('/' == *ptr) || ('.' == *ptr)){
+            fsexam_errno = ERR_IGNORE_HIDDEN_FILE;
+            goto done;
+        }
+    }
+    
+    if ((!setting->pref->remote)
+            && (is_remote_file (setting->remote_path, abs_path))){
+        fsexam_errno = ERR_IGNORE_REMOTE_FILE;
+        goto done;
+    }
+
+    if ((!setting->pref->force) 
+            && (file_isutf8 (filename, DEFAULT_DETECTING_FLAG))) {
+        fsexam_errno = ERR_CONTENT_UTF8_ALREADY;
+        goto done;
+    }
+
+    ret = TRUE;
+
+done:
+    g_free (abs_path);
+
+    return ret;
+}
+
+#ifdef sun
+#define MNTFILENAME     "/etc/mnttab"
+
+GList *
+get_remote_paths ()
+{
+    struct  mnttab mt;
+    FILE    *fp = NULL;
+    GList   *list = NULL;
+
+    fp = fopen (MNTFILENAME, "r");
+
+    if (fp == NULL) {
+        g_print (_("Can't open file %s.\n"), MNTFILENAME);
+        return NULL;
+    }
+
+    while (getmntent (fp, &mt) == 0) {
+        if ((strcmp (mt.mnt_fstype, "nfs") == 0)
+                || (strcmp (mt.mnt_fstype, "autofs") == 0)) {
+            list = g_list_prepend (list, g_strdup (mt.mnt_mountp));
+        }
+    }
+
+    return list;
+}
+
+#else
+
+#define MNTFILENAME     "/etc/mtab"
+
+GList *
+get_remote_paths ()
+{
+    struct  mntent *mt;
+    FILE    *fp = NULL;
+    GList   *list = NULL;
+
+    fp = setmntent (MNTFILENAME, "r");
+
+    if (fp == NULL) {
+        g_print (_("Can't open file %s.\n"), MNTFILENAME);
+        return NULL;
+    }
+
+    while ((mt = getmntent (fp)) == 0) {
+        if ((strcmp (mt->mnt_type, "nfs") == 0)
+                || (strcmp (mt->mnt_type, "autofs") == 0)) {
+            list = g_list_prepend (list, g_strdup (mt->mnt_dir));
+        }
+    }
+
+    return list;
+}
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/file-validate.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,101 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _FILE_VALIDATE_H
+#define _FILE_VALIDATE_H
+
+/*
+ * file-validate.h
+ *
+ * Given a filename, determine whether it pass some criteria.
+ *
+ * Options:
+ *      - '--follow': handle at preprocessing stage
+ *      - '--symlink-target': handle at tree constructing stage
+ * 
+ * For filename conversion:
+ *      - Filter only directory/reg/symbolic file out
+ *      - Hidden flags
+ *      - Forceful conversion
+ *      - follow: this will be handled in fsexam-preprocessing.c
+ *      - remote file
+ *      - no-check-symlink-target
+ *
+ * For file content conversion:
+ *      - Filter only dir/regular/symbolic file out
+ *      - Hidden flags
+ *      - Forceful conversion
+ *      - Is plain text
+ *      - Special file such as .tar, .zip
+ *      - follow: this will be handled in fsexam-preprocessing.c
+ *      - remote file
+ */
+
+/*============================================================================
+ *  Function Name:  file_validate_for_contentconv
+ *
+ *  Parameters:
+ *      gchar *filename: the filename we will validate
+ *      VALIDATE_flag *flag: struct contain flags used to validate file
+ *
+ *  Desc:
+ *      file_validate_for_contentconv() determine whether fsexam will handling 
+ *      its content or not.
+ *
+ *  Return value:
+ *      True if fsexam will handle this file.
+ *      Otherwise False.
+ *
+ *  Author:     Yandong Yao 2006/08/24
+ ===========================================================================*/
+gboolean file_validate_for_contentconv(
+                            const gchar *filename, 
+                            FSEXAM_setting *setting);
+
+/*============================================================================
+ *  Function Name:  file_validate_for_nameconv
+ *
+ *  Parameters:
+ *      gchar *filename: the filename we will validate
+ *      VALIDATE_flag *flag: struct contain flags used to validate file
+ *
+ *  Desc:
+ *      file_validate_for_nameconv() will determine whether fsexam will 
+ *      convert filename or not.
+ *
+ *  Return value:
+ *      True if fsexam will handle this file's name, otherwise False
+ *
+ *  Author:     Yandong Yao 2006/08/24
+ ==========================================================================*/
+gboolean file_validate_for_nameconv(const gchar *filename, 
+                                    struct stat *statbuf, 
+                                    FSEXAM_setting *setting);
+
+GList    *get_remote_paths ();
+gboolean is_remote_file (GList *remote_path, const gchar *filename);
+
+#endif //_FSEXAM_VALIDATE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-application-server.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,133 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <bonobo/bonobo-object.h>
+#include <bonobo/bonobo-generic-factory.h>
+#include <bonobo/bonobo-main.h>
+#include <bonobo/bonobo-context.h>
+#include <bonobo-activation/bonobo-activation-register.h>
+
+#include "fsexam-application-server.h"
+#include "GNOME_Fsexam.h"
+
+#include "fsexam-header.h"
+#include "fsexam-ui.h"
+#include "fsexam.h"
+
+static void fsexam_application_server_class_init (FsexamApplicationServerClass *klass);
+static void fsexam_application_server_init (FsexamApplicationServer *a);
+static void fsexam_application_server_object_finalize (GObject *object);
+static GObjectClass *fsexam_application_server_parent_class;
+
+static BonoboObject *
+fsexam_application_server_factory (BonoboGenericFactory *this_factory,
+        const gchar *iid,
+        gpointer user_data)
+{
+    FsexamApplicationServer *a;
+
+    a = (FsexamApplicationServer *)g_object_new (FSEXAM_APPLICATION_SERVER_TYPE, NULL);
+
+    return BONOBO_OBJECT (a);
+}
+
+BonoboObject *
+fsexam_application_server_new (GdkScreen *screen)
+{
+    BonoboGenericFactory    *factory = NULL;
+    //char                    *display_name = NULL;
+    char                    *registration_id = NULL;
+
+    if (screen != NULL) {
+        //display_name = gdk_screen_make_display_name (screen);
+    }
+
+    registration_id = bonobo_activation_make_registration_id (
+            "OAFIID:GNOME_Fsexam_Factory",
+            //display_name);
+            NULL);
+
+    factory = bonobo_generic_factory_new (registration_id,
+            fsexam_application_server_factory,
+            NULL);
+
+    //g_free (display_name);
+    g_free (registration_id);
+
+    return BONOBO_OBJECT (factory);
+}
+
+static void
+impl_fsexam_application_server_grabFocus (PortableServer_Servant _servant,
+        CORBA_Environment *ev)
+{
+    if (cli_mode) {
+        g_print (_("One instance of fsexam is running already.\n"));
+    }else{
+        gtk_window_present (GTK_WINDOW (view->mainwin));
+    }
+
+    return;
+}
+
+static void
+fsexam_application_server_class_init (FsexamApplicationServerClass *klass)
+{
+    GObjectClass *object_class = (GObjectClass *)klass;
+    POA_GNOME_Fsexam_Application__epv *epv = &klass->epv;
+
+    fsexam_application_server_parent_class = (GObjectClass *)g_type_class_peek_parent (klass);
+    object_class->finalize = fsexam_application_server_object_finalize;
+
+    /* connect implementation callbacks */
+    epv->grabFocus = impl_fsexam_application_server_grabFocus;
+
+    return;
+}
+
+static void
+fsexam_application_server_init (FsexamApplicationServer *c)
+{
+}
+
+static void
+fsexam_application_server_object_finalize (GObject *object)
+{
+    FsexamApplicationServer *a = FSEXAM_APPLICATION_SERVER(object);
+
+    fsexam_application_server_parent_class->finalize (G_OBJECT (a));
+}
+
+
+BONOBO_TYPE_FUNC_FULL (
+        FsexamApplicationServer,                    
+        GNOME_Fsexam_Application, 
+        BONOBO_TYPE_OBJECT,           
+        fsexam_application_server)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-application-server.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,58 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _FSEXAM_APPLICATION_SERVER_H
+#define _FSEXAM_APPLICATION_SERVER_H
+
+#include "GNOME_Fsexam.h"
+#include <bonobo/bonobo-control.h>
+#include <bonobo/bonobo-object.h>
+
+G_BEGIN_DECLS
+
+#define FSEXAM_APPLICATION_SERVER_TYPE      (fsexam_application_server_get_type ())
+#define FSEXAM_APPLICATION_SERVER(o)        (G_TYPE_CHECK_INSTANCE_CAST((o), FSEXAM_APPLICATION_SERVER_TYPE, FsexamApplicationServer))
+#define FSEXAM_APPLICATION_SERVER_CLASS(k)  (G_TYPE_CHECK_CLASS_CAST((k), FSEXAM_APPLICATION_SERVER_TYPE, FsexamApplicationServerClass))
+#define FSEXAM_APPLICATION_SERVER_IS_OBJECT(o)  (G_TYPE_CHECK_INSTANCE_TYPE((o), FSEXAM_APPLICATION_SERVER_TYPE))
+#define FSEXAM_APPLICATION_SERVER_IS_CLASS(k)   (G_TYPE_CHECK_CLASS_TYPE((k), FSEXAM_APPLICATION_SERVER_TYPE))
+#define FSEXAM_APPLICATION_SERVER_GET_CLASS(o)  (G_TYPE_INSTANCE_GET_CLASS((o), FSEXAM_APPLICATION_SERVER_TYPE, FsexamApplicationServerClass))
+
+typedef struct {
+    BonoboObject parent;
+} FsexamApplicationServer;
+
+typedef struct {
+    BonoboObjectClass parent_class;
+
+    POA_GNOME_Fsexam_Application__epv epv;
+} FsexamApplicationServerClass;
+
+GType       fsexam_application_server_get_type (void);
+BonoboObject *fsexam_application_server_new (GdkScreen *screen);
+
+G_END_DECLS
+
+#endif  /* _FSEXAM_APPLICATION_SERVER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-convcontent.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,569 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <dirent.h>
+#include <libgen.h>
+
+#include <glib/gi18n.h>
+
+#include "fsexam-header.h"
+#include "encoding.h"
+#include "fsexam-convcontent.h"
+
+/* Store processed files, avoid loops */
+static GHashTable   *name_hash = NULL;
+
+static gboolean     convert_file (const gchar *name, 
+                                  FSEXAM_setting *setting, 
+                                  gboolean restore);
+static gboolean     convert_single_file (const gchar *fullpath, 
+                                  FSEXAM_setting *setting);
+static void         puts_msg (FSEXAM_setting *setting, 
+                                  const gchar *path, 
+                                  const gchar *from_en, 
+                                  const gchar *to_en);
+
+/*
+ * wrapper for fsexam_log_puts() and display_msg ()
+ */
+static void
+puts_msg (FSEXAM_setting *setting, 
+          const gchar *path, 
+          const gchar *from_en, 
+          const gchar *to_en)
+{
+    if ((setting == NULL) || (path == NULL))
+        return;
+
+    if (fsexam_errno == ERR_OK) {
+        gchar *msg;
+
+        if ((from_en == NULL) || (to_en == NULL))
+            return;
+
+        msg = g_strdup_printf (_("[Content] %s -> %s"), from_en, to_en);
+
+        fsexam_log_puts (setting->log_info, path, msg);
+        if (setting->display_msg)
+            setting->display_msg (path, msg);
+
+        g_free (msg);
+    }else{
+        fsexam_log_puts (setting->log_info, path, NULL);
+        if (setting->display_msg)
+            setting->display_msg (path, fsexam_error_get_msg ());
+    }
+
+    return;
+}
+
+/*
+ * Modify file contents, and write history info if needed
+ */
+static gboolean
+write_back_contents (FSEXAM_setting *setting, 
+                     const gchar *fullpath, 
+                     gchar *converted_contents, 
+                     short fid, 
+                     short tid)
+{
+    gboolean    ret = FALSE;
+    gboolean    need_free = FALSE;
+    gsize       length;
+
+    if ((NULL == setting) || (NULL == fullpath))
+        return FALSE;
+
+    if (converted_contents == NULL) {
+        const gchar  *from_encoding = id2encoding (fid);
+        const gchar  *to_encoding = id2encoding (tid);
+        gchar        *contents = NULL;
+        gboolean     err;
+
+        if ((NULL == from_encoding) || (NULL == to_encoding))
+            return FALSE;
+
+        err = g_file_get_contents (fullpath, &contents, &length, NULL);
+        if (err && !contents) {
+            fsexam_errno = ERR_CANNOT_READ;
+            goto done;
+        } else if (length == 0) {
+            fsexam_errno = ERR_EMPTY_FILE;
+            goto done;
+        }
+    
+        converted_contents = g_convert (contents,
+                                        length,
+                                        to_encoding,
+                                        from_encoding,
+                                        NULL,
+                                        NULL,
+                                        NULL);
+
+        g_free (contents);
+
+        if (converted_contents == NULL) {
+            fsexam_errno = ERR_CANNOT_CONVERT;
+            goto done;
+        }
+
+        need_free = TRUE;
+    }
+        
+    length = strlen (converted_contents);
+
+    if (g_file_set_contents (fullpath, converted_contents, length, NULL)) {
+        ret = TRUE;
+        ++setting->succ_num;
+
+        /* UNDO don't need write history */
+        if (! (setting->flags & FSEXAM_SETTING_FLAGS_UNDO)) {
+            gboolean same_serial = TRUE;
+            if (setting->flags & FSEXAM_SETTING_FLAGS_DIFF_SERIAL) {
+                setting->flags &= ~FSEXAM_SETTING_FLAGS_DIFF_SERIAL;
+                same_serial = FALSE;
+            }
+
+            fsexam_history_put (setting->hist_info, 
+                            ConvContent, 
+                            fullpath,
+                            fid,
+                            tid,
+                            same_serial);
+        }
+    }else{
+        ++setting->fail_num;
+        fsexam_errno = ERR_CANNOT_WRITE;
+    }
+
+done:
+    if (need_free)
+        g_free (converted_contents);
+
+    return ret;
+}
+
+/*
+ * Restore single one file. Won't care about follow or recursive 
+ */
+static gboolean
+restore_single_file (const gchar *fullpath, FSEXAM_setting *setting)
+{
+    gboolean    ret = FALSE;
+    Hist_item   *item = NULL;
+
+    if ((NULL == fullpath) || (NULL == setting))
+        return FALSE;
+
+    fsexam_errno = ERR_OK;
+
+    if (! setting->pref->dry_run  /* special type don't support dryrun */
+            && setting->pref->special 
+            && fsexam_special_convert_content (fullpath, setting, TRUE)) {
+        ++setting->succ_num;
+        return TRUE;    
+    }
+
+    item = fsexam_history_search (setting->hist_info, fullpath, FALSE);
+    if (item == NULL) {
+        fsexam_errno = ERR_HIST_NO_ITEM;
+        ++setting->ignore_num;
+        goto done;
+    }
+
+    ret = write_back_contents (setting, 
+                               fullpath, 
+                               NULL, 
+                               item->to_encoding, 
+                               item->from_encoding);
+    
+done:
+    puts_msg (setting, fullpath, 
+              item ? id2encoding (item->to_encoding) : NULL, 
+              item ? id2encoding (item->from_encoding) : NULL);
+
+    return ret;
+}
+
+/*
+ * Convert single one file, display candidate or dryrun.
+ * Won't care follow or recursive
+ */
+static gboolean
+convert_single_file (const gchar *fullpath, FSEXAM_setting *setting)
+{
+    Score       score;
+    Encoding    *encoding = NULL;
+    gboolean    ret = FALSE;
+    gboolean    err;
+    gsize       length;
+    gchar       *contents = NULL;
+    gchar       *sample_contents = NULL;
+    gboolean    need_free_contents = FALSE;
+
+    if ((NULL == fullpath) || (NULL == setting))
+        return FALSE;
+
+    fsexam_errno = ERR_OK;
+
+    if (! file_validate_for_contentconv (fullpath, setting)) {  
+        goto done;      /* fsexam_errno has been set, goto log */
+    }
+
+    if (! setting->pref->dry_run
+            && setting->pref->special 
+            && fsexam_special_convert_content (fullpath, setting, FALSE)) { 
+        ++setting->succ_num;
+        return TRUE;    
+    }
+
+    /* 
+     * handle encoding auto detection.
+     * And fsexam_is_plain_text/file(1) need these encodings 
+     */
+    if (setting->pref->auto_detect) { 
+        GList *detected_encoding;
+        
+        detected_encoding = file_encoding_detect (fullpath, 
+                                                  DEFAULT_DETECTING_FLAG);
+        setting->pref->encode_list = fsexam_encoding_add_auto (
+                                                setting->pref->encode_list, 
+                                                detected_encoding);
+        auto_encoding_free (detected_encoding);
+    }
+
+    if (! fsexam_is_plain_text (fullpath, setting)) {
+        /* This func need auto detected encoding */
+        fsexam_errno = ERR_FILE_TYPE_NOT_SUPPORT;
+        goto done;
+    }
+
+    /* plain text now */
+    err = g_file_get_contents (fullpath, &contents, &length, NULL);
+    if (err && !contents) {
+        fsexam_errno = ERR_CANNOT_READ;
+        goto done;
+    } else if (length == 0) {
+        fsexam_errno = ERR_EMPTY_FILE;
+        goto done;
+    }
+
+    sample_contents = get_sample_text (contents, &length);
+    score = fsexam_encoding_decode (setting->pref->encode_list,
+                                    ConvContent,
+                                    sample_contents,
+                                    length,
+                                    setting->pref->force);
+    g_free (contents);
+    g_free (sample_contents);
+
+    need_free_contents = TRUE;      /* need free contents in encoding_list */
+
+    if (setting->pref->dry_run){    /* dry run */
+        ret = fsexam_dryrun_puts (setting->dryrun_info, 
+                                  fullpath, 
+                                  score, 
+                                  setting->pref->encode_list, 
+                                  ConvContent); 
+        ret ? ++setting->succ_num : ++setting->fail_num;
+    } else {                        /* real convert */  
+        gint  index = 0;
+
+        if ((score == FAIL) || (score == ORIGINAL)){
+            fsexam_errno = (score == FAIL) ? ERR_NO_PROPER_ENCODING 
+                                           : ERR_CONTENT_UTF8_ALREADY;
+            goto done;
+        }   
+       
+        if (setting->gold_index != -1) {
+            index = setting->gold_index;
+        } else if (setting->pref->auto_conversion) {
+            index = fsexam_encoding_get_first_index (
+                                            setting->pref->encode_list);
+        } else {
+            index = setting->get_index (setting->pref->encode_list, FALSE);
+        }
+
+        if (-1 == index)
+            goto done;              /* cancel the selection */
+
+        encoding = (Encoding *)g_list_nth_data (setting->pref->encode_list, 
+                                                index);
+        if (NULL == encoding){
+            fsexam_errno = ERR_ENCODING_INDEX_INVALID;
+            goto done;
+        }
+
+        ret = write_back_contents (setting, 
+                                   fullpath, 
+                                   NULL,
+                                   encoding->encodingID, 
+                                   encoding2id ("UTF-8"));
+    }
+ 
+    goto cleanup;
+
+done:
+    ++setting->ignore_num;
+
+cleanup:
+    if (!setting->pref->dry_run) {
+        puts_msg (setting, fullpath, 
+                  encoding ? id2encoding (encoding->encodingID) : NULL, 
+                  "UTF-8");
+    }
+
+    if (setting->pref->auto_detect)
+        setting->pref->encode_list = fsexam_encoding_remove_auto (
+                                               setting->pref->encode_list);
+
+    if (need_free_contents)
+        fsexam_encoding_cleanup_content (setting->pref->encode_list);
+
+    return ret;
+}
+
+/* 
+ * Convert given file, handling various flags also
+ */
+static gboolean
+convert_file (const gchar *name, FSEXAM_setting *setting, gboolean restore)
+{
+    gchar    *abs_path = get_abs_path (name);
+    gboolean ret = FALSE;
+
+    if ((abs_path == NULL) || (setting == NULL)) {
+        goto done;
+    }
+
+    /* Global hash pointer */
+    if (g_hash_table_lookup (name_hash, abs_path)) {
+        ret = TRUE;
+        goto done;
+    }
+
+    g_hash_table_insert (name_hash, g_strdup (abs_path), (gpointer)-1);
+    ++setting->total_num;
+
+    if (restore) {
+        restore_single_file (abs_path, setting);
+    }else{
+        convert_single_file (abs_path, setting);
+    }
+    
+    if (setting->pref->follow 
+            && g_file_test (abs_path, G_FILE_TEST_IS_SYMLINK)) {
+        /* Symlink file */
+        gchar    *target = get_abs_path_for_symlink_target (abs_path);
+        ++setting->ignore_num;      /* ignore symlink file itself */
+
+        if (target == NULL)
+            goto done;
+
+        convert_file (target, setting, restore);
+
+        g_free (target);
+    }else if (setting->pref->recursive 
+            && g_file_test (abs_path, G_FILE_TEST_IS_DIR)) {
+        const gchar *filename = NULL;
+        GDir        *dp = g_dir_open (abs_path, 0, NULL);
+        ++setting->ignore_num;      /* ignore directory file itself */
+
+        if (dp == NULL)
+            goto done;
+
+        while ((filename = g_dir_read_name (dp)) != NULL) {
+            gchar *childname = g_strdup_printf ("%s/%s", abs_path, filename);
+            convert_file (childname, setting, restore);
+            g_free (childname);
+
+            if (setting->flags & FSEXAM_SETTING_FLAGS_STOP)
+                break;
+        }
+
+        g_dir_close (dp);
+    }
+    
+    ret = TRUE;
+
+done:
+    g_free (abs_path);
+
+    return ret;
+}
+
+static void
+dryrun_convert_contents (GSList *slist, FSEXAM_setting *setting)
+{
+    if ((NULL == slist) || (NULL == setting))
+        return;
+
+    while (slist != NULL) {
+        Dryrun_item *item = slist->data;
+        
+        ++setting->passin_num;
+        ++setting->total_num;
+       
+        write_back_contents (setting, item->path, NULL, 
+                             encoding2id (item->encoding), 
+                             encoding2id ("UTF-8"));
+
+        puts_msg (setting, item->path,  item->encoding, "UTF-8");
+
+        slist = slist->next;
+    }
+
+    return;
+}
+
+static gboolean
+_convert_or_restore_contents (FSEXAM_setting *setting, 
+                              GList *list, 
+                              gboolean restore)
+{
+    if ((list == NULL) || (setting == NULL))
+        return FALSE;
+
+    name_hash = g_hash_table_new_full (
+                    g_str_hash,
+                    g_str_equal,
+                    (GDestroyNotify) g_free,
+                    (GDestroyNotify) NULL);
+
+    if (name_hash == NULL) {
+        g_print (_("Can't new hash table.\n"));
+        return FALSE;
+    }
+
+    fsexam_setting_reset_stats (setting);
+
+    setting->passin_num = g_list_length (list);     /* passin No. of files */
+    setting->flags |= FSEXAM_SETTING_FLAGS_DIFF_SERIAL;
+
+    while (list) {
+        convert_file ((char *)list->data, setting, restore);
+
+        if (setting->flags & FSEXAM_SETTING_FLAGS_STOP)
+            break;
+
+        list = g_list_next (list);
+    }
+
+    setting->flags = 0;     /* clear all flags */
+    setting->display_stats (setting);
+    fsexam_log_flush (setting->log_info);
+
+    g_hash_table_destroy (name_hash);
+    name_hash = NULL;
+
+    return TRUE;
+
+}
+
+/*----------- Public API ---------------------*/
+
+/*
+ * Convert single file
+ */
+gboolean
+fsexam_convert_content (FSEXAM_setting *setting, const gchar *filename)
+{   
+    GList    *list = NULL;
+    gboolean ret;
+
+    if ((filename == NULL) || (setting == NULL))
+        return FALSE;
+
+    list = g_list_prepend (list, g_strdup (filename));
+    ret = fsexam_convert_content_batch (setting, list);
+    fsexam_list_free (list);
+
+    return ret;
+}
+
+/*
+ * Convert multiple files
+ */
+gboolean
+fsexam_convert_content_batch (FSEXAM_setting *setting, GList *list)
+{
+    return _convert_or_restore_contents (setting, list, FALSE);    
+}
+
+/*
+ * Restore file content
+ */
+gboolean
+fsexam_restore_content (FSEXAM_setting *setting, GList *list)
+{
+    return _convert_or_restore_contents (setting, list, TRUE);
+}
+
+/*
+ * Scenario based conversion: convert file content according to
+ * previous dryrun result.
+ */
+gboolean
+fsexam_convert_scenario_for_content (FSEXAM_setting *setting)
+{
+    g_return_val_if_fail (setting != NULL, FALSE);
+    GSList   *slist = NULL;
+    gboolean ret;
+   
+    fsexam_setting_reset_stats (setting);
+    setting->flags |= FSEXAM_SETTING_FLAGS_DIFF_SERIAL;
+    
+    /* construct file list from dryrun result */
+    ret = fsexam_dryrun_process (setting->dryrun_info, &slist);
+
+    if ((! ret) || (NULL == slist)) {
+        fsexam_log_puts (setting->log_info, NULL, NULL);
+        if (setting->display_msg)
+            setting->display_msg (NULL, fsexam_error_get_msg ());
+        setting->display_stats (setting);       /* display stats infor */
+        fsexam_log_flush (setting->log_info);
+
+        return FALSE;
+    }
+
+    dryrun_convert_contents (slist, setting);   /* real convert */
+
+    fsexam_dryrun_item_slist_free (slist);  /* free file list just create */
+    setting->flags = 0;                     /* clear all flags */
+    setting->display_stats (setting);       /* display stats infor */
+    fsexam_log_flush (setting->log_info);
+
+    return TRUE;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-convcontent.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,69 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_CONVCONTENT_H
+#define _FSEXAM_CONVCONTENT_H
+
+/*============================================================================
+ *  Function Name:  fsexam_convert_content
+ *
+ *  Parameters:
+ *      FSEXAM_setting *setting: struct contain all information
+ *      gchar * filename:   the filename which will be converted
+ *
+ *  Desc:
+ *      Convert one file's content to UTF-8
+ *
+ *  Return value:
+ *      True for success otherwise fail
+ *
+ *  Author:     Yandong Yao 2006/08/22
+ ============================================================================*/ 
+gboolean fsexam_convert_content (FSEXAM_setting *setting, 
+                                 const gchar *filename);
+/*============================================================================
+ *  Function Name:  fsexam_convert_filelist_for_content 
+ *
+ *  Parameters:
+ *      FSEXAM_setting *setting: the all-in-one struct
+ *      GList *list: The list contain file names
+ *
+ *  Desc:
+ *      Convert the content of file list 
+ *
+ *  Return value:
+ *      TRUE for success, otherwise fail
+ *
+ *  Author:     Yandong Yao 2006/08/22
+ ============================================================================*/
+gboolean fsexam_convert_content_batch (FSEXAM_setting *setting, GList *list);
+
+gboolean fsexam_convert_scenario_for_content (FSEXAM_setting *setting);
+
+gboolean fsexam_restore_content (FSEXAM_setting *setting, GList *list);
+
+#endif //_FSEXAM_CONVCONTENT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-convname.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,1392 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <strings.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+#include <dirent.h>
+#include <libgen.h>
+#include <unistd.h>
+
+#include "fsexam-header.h"
+#include "fsexam-convcontent.h"
+
+/* Append SUFFIX when has duplicated name */
+#define SUFFIX  "utf-8"
+
+static gboolean write_to_disk (FSEXAM_setting *,
+                               const gchar *path,
+                               const gchar *origname,
+                               const gchar *utf8name,
+                               short from_encoding,
+                               short to_encoding,
+                               gchar **actualname);
+
+static gboolean real_convert (FSEXAM_setting *setting, 
+                              const gchar *dname, 
+                              const gchar *bname, 
+                              gchar **newname);
+static gboolean convert_symlink_target_node (
+                              GNode *node, 
+                              FSEXAM_setting *setting, 
+                              gboolean restore);
+static gboolean wrapped_convert_node (GNode *node, FSEXAM_setting *setting);
+static gboolean wrapped_restore_convert_node (GNode *node, gpointer data);
+static gboolean convert_node (GNode *node, gpointer data);
+static gboolean dryrun_convert_node (GNode *node, gpointer data);
+static gboolean restore_convert_node (GNode *node, gpointer data);
+static gboolean fsexam_convert_scenario_for_name (FSEXAM_setting *setting);
+static gboolean fsexam_restore_name (FSEXAM_setting *setting, GList *list);
+static gboolean _convert_directory (FSEXAM_setting *setting, const gchar *);
+static void     convert_directory (FSEXAM_setting *setting, GNode *node);
+static gint     construct_candidate_list (GList *list, gboolean forname);
+
+
+/*
+ *  Recreate symlink from file in symlink_node to file in target_node
+ */
+static gboolean
+relink_symlink (GNode *symlink_node, 
+                GNode *target_node, 
+                FSEXAM_setting *setting)
+{
+    gchar     *symlink_contents = NULL;
+    gchar     *symlink_path = NULL;
+    gchar     *target_path = NULL;
+    gchar     *log_msg = NULL;
+    gboolean  ret = FALSE;
+
+    if ((NULL == symlink_node) || (NULL == target_node) || (NULL == setting))
+        return FALSE;
+
+    symlink_path = fsexam_tree_get_path (symlink_node, FALSE);
+    symlink_contents = g_file_read_link (symlink_path, NULL);
+    
+    if (NULL == symlink_contents) {
+        fsexam_errno = ERR_CANNOT_READ;
+        goto done;
+    }
+
+    if (remove (symlink_path) == -1) {  /* delete original symlink */
+        fsexam_errno = ERR_CANNOT_RM_SYMLINK;
+        goto done;
+    }
+
+    if (*symlink_contents == '/') {     /* absolute symlink */
+        target_path = fsexam_tree_get_path (target_node, FALSE);
+    }else{
+        /* reconstruct symlink path for relative symlink */
+        gchar     *tmp = symlink_contents;
+        gchar     *cur = tmp;
+        GNode     *parent_node = symlink_node->parent;
+        gboolean  finish = FALSE;
+
+        while (!finish) {
+            if ((*tmp != '/') && (*tmp != '\0')) {
+                tmp++;
+                continue;
+            }else{                      /* got one subpath */
+                if (*tmp == '\0')
+                    finish = TRUE;
+                else
+                    *tmp = '\0';
+
+                if (strcmp (cur, ".") == 0) {
+                    /* no op */
+                }else if (strcmp (cur, "..") == 0) {
+                    parent_node = parent_node->parent;
+                }else if (strcmp (cur, "") == 0) {
+                    /* this means '//' in the symlink_contents */
+                    cur = "/";      
+                }else{
+                    GNode *gnode = fsexam_tree_search_name (parent_node, cur);
+                    if (gnode == NULL) {  /* fallback to use absolute path */
+                        g_free (target_path);
+                        target_path = fsexam_tree_get_path (target_node, FALSE);
+
+                        break;
+                    }else{
+                        TreeNode *tnode = (TreeNode *)gnode->data;
+
+                        if (TREENODE_IS_CONVERTED (tnode)) 
+                            cur = TREENODE_GET_UTF8 (tnode);
+                        else
+                            cur = TREENODE_GET_ORIG (tnode);
+                    }
+                    
+                    parent_node = parent_node->parent;
+                }
+               
+                if (target_path == NULL) {
+                    target_path = g_strdup (cur);
+                }else{
+                    if (strcmp (cur, "/") == 0) {
+                        cur = g_strdup_printf ("%s%s", target_path, cur);
+                    }else{
+                        cur = g_strdup_printf ("%s/%s", target_path, cur);
+                    }
+
+                    g_free (target_path);
+                    target_path = cur;
+                }
+
+                cur = ++tmp;
+            }
+        } /* endof while */
+    }
+
+    if (symlink (target_path, symlink_path) == -1) {
+        fsexam_errno = ERR_LOST_SYMLINK_FILE;
+        goto done;
+    }
+
+    ret = TRUE;
+
+done:
+    if (ret)    
+        log_msg = _("Re-create symbolic link success"); 
+
+    fsexam_log_puts (setting->log_info, symlink_path, log_msg);
+    if (setting->display_msg)
+        setting->display_msg (symlink_path, log_msg);
+
+    g_free (symlink_contents);
+    g_free (target_path);
+    g_free (symlink_path);
+
+    return ret;
+}
+
+/*====================================================================
+ *  Function Name:  write_to_disk
+ *
+ *  Parameters:
+ *      FSEXAM_setting *setting:
+ *      gchar *path:    The dir name which contain file to be renamed
+ *      gchar *orig:    The original name
+ *      gchar *utf8name:    The utf8 name
+ *      gchar **actualname: the actual name used if succeed
+ *
+ *  Desc:
+ *      Rename the file from orig to utf8name. If newname exists, then will 
+ *      find one new name, and actualname point to it.
+ *
+ *      Will handle log/history in this function, dryrun/restore
+ *      may call this function directly.
+ *
+ *  Return value:
+ *      If rename success, then return TRUE; 
+ *      otherwise(such as can't rename, can't write to log) return FALSE.
+ *
+ *  Author:     Yandong Yao 2006/08/31
+ ========================================================================*/ 
+static gboolean
+write_to_disk (FSEXAM_setting *setting, 
+               const gchar *path,      /* the path of current file */
+               const gchar *origname,  /* old base name            */
+               const gchar *utf8name,  /* new base name            */
+               short from_encoding,    /* from encoding            */
+               short to_encoding,      /* to encoding              */
+               gchar **actualname)      /* return the actual used   */
+{
+    static gchar    oldname[PATH_MAX];
+    static gchar    newname[PATH_MAX];
+    gchar           *retname = NULL;
+    gchar           *fname = NULL;
+    gchar           *msg = NULL;
+    gboolean        ret = FALSE;
+
+    if ((NULL == setting) || (NULL == path) || (NULL == origname) 
+            || (NULL == utf8name))
+        return FALSE;
+
+    fsexam_errno = ERR_OK;
+
+    /* construct full old name and full new name */
+    g_snprintf (oldname, PATH_MAX - 1, "%s/%s", path, origname);
+    g_snprintf (newname, PATH_MAX - 1, "%s/%s", path, utf8name);
+
+    /* whether newname == oldname? */
+    if (strcmp (utf8name, origname) == 0) {
+        fsexam_errno = ERR_NAME_SAME;
+        goto done;
+    }
+
+    if (g_file_test (newname, G_FILE_TEST_EXISTS)) {
+        fsexam_errno = ERR_NAME_EXIST;
+        fname = find_non_exist_name (newname);
+
+        if (fname == NULL) {
+            fsexam_errno = ERR_CANNOT_RENAME;
+        }else if (rename(oldname, fname) == 0){
+            retname = g_strdup (basename (fname));
+            ret = TRUE;
+        }else{
+            fsexam_errno = ERR_CANNOT_RENAME;
+        }
+    }else{
+        if (rename(oldname, newname) == 0){
+            retname = g_strdup (utf8name);
+            ret = TRUE;
+        }else{
+            fsexam_errno = ERR_CANNOT_RENAME; /* inc dup name */
+        }
+    }
+
+    if (ret) { 
+        if (! (setting->flags & FSEXAM_SETTING_FLAGS_UNDO)) {
+            gboolean same_serial = TRUE;
+
+            if (setting->flags & FSEXAM_SETTING_FLAGS_DIFF_SERIAL) {
+                setting->flags &= ~FSEXAM_SETTING_FLAGS_DIFF_SERIAL;
+                same_serial = FALSE;
+            }
+
+            fsexam_history_put (setting->hist_info, 
+                                ConvName, 
+                                newname,
+                                from_encoding, 
+                                to_encoding, 
+                                same_serial);
+        }
+
+        if (setting->update_gui) {
+            setting->update_gui (setting, path, origname, retname);
+        }
+        
+        ++setting->succ_num;
+    } else {
+        ++setting->fail_num;
+    }
+       
+done:
+    msg = g_strdup_printf (_("[Name] %s -> %s"), 
+                        id2encoding (from_encoding), 
+                        id2encoding (to_encoding));
+
+    /* Display messages to user */
+    if (setting->display_msg) {
+        if (ret) 
+            setting->display_msg (newname, msg);
+        else
+            setting->display_msg (oldname, fsexam_error_get_msg ());
+    }
+
+    /* Writting log */
+    if (fsexam_errno == ERR_OK) {
+        fsexam_log_puts (setting->log_info, newname, msg);
+    }else if (fsexam_errno == ERR_NAME_EXIST) {
+        fsexam_log_puts (setting->log_info, fname, NULL);
+    }else{
+        fsexam_log_puts (setting->log_info, newname, NULL);
+    }
+    
+    if (actualname != NULL)
+        *actualname = retname;  //freed outside
+    else
+        g_free (retname);
+
+    g_free (msg);
+    g_free (fname);
+
+    return ret;
+}
+
+/*====================================================================
+ *  Function Name:  real_convert
+ *
+ *  Parameters:
+ *      FSEXAM_setting *setting: 
+ *      const gchar *dname: the directory in which file reside
+ *      const gchar *bname: the filename without any directory name
+ *      gchar **newname: return the new name when success. Need free by caller
+ *
+ *  Desc:
+ *      real_convert() will convert the filename using provided encoding list,
+ *      and display candidates to user in interactive mode.
+ *
+ *      If success to rename file on the disk, then newname will contain the 
+ *      new name.
+ *
+ *      This function will handle log information also.
+ *
+ *      write_to_disk() will handle log either, because it can be call by
+ *      other funcs.
+ *
+ *  Return value:
+ *      If succeed to rename the file, return TRUE, otherwise return FALSE.
+ *      In dryrun mode, always return FALSE.
+ *
+ *      The most important usage for the return value is to determine whether
+ *      fsexam change the real file name on disk or not.
+ *
+ *  Author:     Yandong Yao 2006/09/01
+ ========================================================================*/ 
+static gboolean
+real_convert (FSEXAM_setting *setting, 
+              const gchar *dname, 
+              const gchar *bname, 
+              gchar **newname)
+{
+    Score       score;
+    gchar       *fullname = NULL;
+    gboolean    ret = FALSE;
+
+    if ((NULL == setting) || (NULL == dname) || (NULL ==bname))
+        return FALSE;
+
+    fsexam_errno = ERR_OK; 
+
+    fullname = g_strdup_printf ("%s/%s", dname, bname);
+
+    if (setting->pref->auto_detect) { /* handle encoding auto detection */
+        GList *detected_encoding;
+
+        detected_encoding = str_encoding_detect (bname, DEFAULT_DETECTING_FLAG);
+        setting->pref->encode_list = fsexam_encoding_add_auto (
+                                                setting->pref->encode_list, 
+                                                detected_encoding);
+        auto_encoding_free (detected_encoding);
+    }
+
+    score = fsexam_encoding_decode (setting->pref->encode_list, 
+                                    ConvName, 
+                                    (gchar *)bname, 
+                                    strlen(bname), 
+                                    setting->pref->force);
+
+
+    if (setting->pref->dry_run){    /* dry run */
+        ret = fsexam_dryrun_puts (setting->dryrun_info, 
+                                  fullname, 
+                                  score, 
+                                  setting->pref->encode_list, 
+                                  ConvName);    
+        ret ? ++setting->succ_num : ++setting->fail_num;
+    } else {                        /* real convert */  
+        gint        index = 0;
+        gchar       *actualname = NULL;
+        Encoding    *encoding = NULL;
+
+        if ((score == FAIL) || (score == ORIGINAL)){
+            fsexam_errno = (score == FAIL) ? ERR_NO_PROPER_ENCODING 
+                                           : ERR_NAME_UTF8_ALREADY;
+            fsexam_log_puts_folder_and_name (setting->log_info, 
+                                             dname, bname, 
+                                             NULL);
+            if (setting->display_msg)
+                setting->display_msg (fullname, fsexam_error_get_msg());
+
+            goto done;
+        }   
+       
+	    /* 
+	     * User may select don't ask me again
+	     */ 
+	    if (setting->gold_index != -1) {
+            index = setting->gold_index;
+	    } else if (setting->pref->auto_conversion) {
+            index = fsexam_encoding_get_first_index (
+                                        setting->pref->encode_list);
+        } else {
+            index = setting->get_index (setting->pref->encode_list, TRUE);
+        }
+
+        if (index == -1) {          /* cancel the selection */
+            fsexam_errno = ERR_CANCEL_CONVERSION;
+            goto done;
+        }
+
+        encoding = (Encoding *)g_list_nth_data (setting->pref->encode_list, 
+                                                index);
+        if (NULL == encoding){
+            fsexam_errno = ERR_ENCODING_INDEX_INVALID;
+            fsexam_log_puts_folder_and_name (setting->log_info, 
+                                             dname, bname, 
+                                             NULL);
+            if (setting->display_msg)
+                setting->display_msg (fullname, fsexam_error_get_msg());
+
+            goto done;
+        }
+
+        ret = write_to_disk (setting, 
+                             dname, 
+                             bname, 
+                             encoding->u.converted_text, 
+                             encoding->encodingID, 
+                             encoding2id ("UTF-8"),
+                             &actualname);
+
+        if ((ret) && (newname)) {   // Return new name
+            *newname = actualname;
+        }else{
+            g_free (actualname);
+        }
+    }
+    
+done:
+    if (setting->pref->auto_detect)
+        setting->pref->encode_list = fsexam_encoding_remove_auto (
+                                                setting->pref->encode_list);
+
+    g_free (fullname);
+
+    return ret;
+}
+
+/*
+ * convert one directory recursively. won't care about symlink
+ */
+static gboolean
+common_convert_directory (FSEXAM_setting *setting, 
+                          const gchar *dname, 
+                          gboolean restore)
+{
+    struct stat     statbuf;
+    struct dirent   *dirp = NULL;
+    DIR             *dp = NULL;
+    gchar           *childname = NULL;
+    gboolean        ret = FALSE;
+
+    if ((NULL == dname) || (NULL == setting))
+        return FALSE;
+
+    if ((dp = opendir (dname)) == NULL){
+        fsexam_errno = ERR_CANNOT_OPEN;
+        fsexam_log_puts (setting->log_info, dname, NULL);
+            if (setting->display_msg)
+                setting->display_msg (dname, fsexam_error_get_msg());
+
+        return ret;
+    }
+
+    while ((dirp = readdir (dp)) != NULL){
+        if ((strcmp (dirp->d_name, ".") == 0)
+                || (strcmp (dirp->d_name, "..") == 0))
+            continue;
+
+        fsexam_errno = ERR_OK;
+
+        childname = g_strdup_printf ("%s/%s", dname, dirp->d_name);
+
+        /* need convert this filename or not? */
+        if (lstat (childname, &statbuf) == -1) 
+            fsexam_errno = ERR_FILE_NONEXIST;
+        else if (!(S_ISREG(statbuf.st_mode)) 
+                && !(S_ISDIR(statbuf.st_mode)) && !(S_ISLNK(statbuf.st_mode))){
+            fsexam_errno = ERR_FILE_TYPE_NOT_SUPPORT; 
+        }else if ((! setting->pref->hidden) && (*(dirp->d_name) == '.')){
+            fsexam_errno = ERR_IGNORE_HIDDEN_FILE;
+        }else if ((!setting->pref->remote) 
+                && (is_remote_file (setting->remote_path, childname))) {
+            fsexam_errno = ERR_IGNORE_REMOTE_FILE;
+        } 
+
+        if (fsexam_errno != ERR_OK) {
+            fsexam_log_puts (setting->log_info, childname, NULL);
+            if (setting->display_msg)
+                setting->display_msg (childname, fsexam_error_get_msg());
+            g_free (childname);
+            continue;
+        }
+    
+        if ((!setting->pref->force) 
+                && (str_isutf8 (dirp->d_name, DEFAULT_DETECTING_FLAG))) {
+            fsexam_errno = ERR_NAME_UTF8_ALREADY;
+        }
+
+        if (restore) {
+            //Currently tree for restore name has no -R node, so no-op
+        }else if (fsexam_errno != ERR_NAME_UTF8_ALREADY) {
+            gchar  *newname = NULL;
+
+            ret = real_convert (setting, dname, dirp->d_name, &newname);
+
+            if (ret && newname != NULL){
+                g_free (childname);
+                childname = g_strdup_printf ("%s/%s", dname, newname);
+                lstat(childname, &statbuf); 
+            }
+                
+            g_free (newname);
+        }
+
+        if (setting->flags & FSEXAM_SETTING_FLAGS_STOP) {
+            g_free (childname);
+            goto done;
+        }
+
+        if (! setting->pref->dry_run 
+                && setting->pref->special 
+                && fsexam_special_is_special_for_name (childname, setting)) {
+            gchar *hist_search_path;
+
+            /* history search path is for search Hist_item in history file */
+            hist_search_path = g_strdup_printf ("%s/%s", dname, dirp->d_name);
+            fsexam_compress_convert_name (setting, 
+                                          childname, 
+                                          hist_search_path, 
+                                          restore);
+            g_free (hist_search_path);
+        } else if (S_ISDIR(statbuf.st_mode)) {
+            _convert_directory(setting, childname);
+        }
+
+        g_free (childname);
+    }
+
+done:
+    closedir (dp);
+
+    return ret;
+}
+
+static gboolean
+_convert_directory (FSEXAM_setting *setting, const gchar *dname)
+{
+    return common_convert_directory (setting, dname, FALSE);
+}
+
+/*
+static gboolean
+_restore_directory (FSEXAM_setting *setting, const gchar *dname)
+{
+    return common_convert_directory (setting, dname, TRUE);
+}
+*/
+
+/*
+ *  convert to fullpath, then call _convert_directory
+ */
+static void
+convert_directory (FSEXAM_setting *setting, GNode *node)
+{
+    gchar *dir = fsexam_tree_get_path (node, FALSE); 
+
+    _convert_directory (setting, dir);
+
+    return;
+}
+
+/*
+ * Convert the symlink target, and convert parent first if has not do.
+ */
+static gboolean
+convert_symlink_target_node (GNode *node, 
+                             FSEXAM_setting *setting, 
+                             gboolean restore)
+{
+    TreeNode    *tnode = NULL;
+
+    if ((NULL == node) || (NULL == setting))
+        return FALSE;
+    
+    tnode = (TreeNode *)node->data;
+
+    if (TREENODE_IS_TRAVERSED (tnode)) {
+        return TREENODE_IS_CONVERTED (tnode) ? TRUE : FALSE;
+    }
+
+    if (setting->flags & FSEXAM_SETTING_FLAGS_STOP)
+        return FALSE;    /* stop the recursive */
+
+    if ((node->parent != NULL) 
+        && (! TREENODE_IS_TRAVERSED ((TreeNode *)((node->parent)->data)))) {
+        convert_symlink_target_node (node->parent, setting, restore);
+    }
+
+    if (setting->flags & FSEXAM_SETTING_FLAGS_STOP)
+        return FALSE;    /* stop the recursive */
+
+    if (restore)
+        return wrapped_restore_convert_node (node, (gpointer)setting);
+    else
+        return wrapped_convert_node (node, (gpointer)setting);
+}
+
+/*============================================================================
+ * Function Name:   convert_node
+ *
+ * Parameters:
+ *      FSEXAM_setting *:   contain preference information
+ *      GNode *node:        The node which will be handled
+ *
+ * Desc:
+ *      GNode Traverse function. Convert one node in the whole tree. 
+ *      Need care about recursive flag
+ *
+ *      Because this function will called by g_node_traverse, so we need 
+ *      handle various error information here.
+ *
+ * Return value:
+ *      Return TRUE to stop g_node_traverse().
+ *
+ * Author:
+ *      Yandong Yao 2006/08/22
+ ============================================================================*/
+static gboolean 
+convert_node (GNode *node, gpointer data)
+{
+    FSEXAM_setting  *setting = (FSEXAM_setting *)data;
+
+    wrapped_convert_node (node, setting);
+
+    if (setting->flags & FSEXAM_SETTING_FLAGS_STOP)
+        return TRUE;
+
+    return FALSE;
+}
+
+/*
+ *  Return TRUE if current node has been converted.
+ */
+static gboolean
+wrapped_convert_node (GNode *node, FSEXAM_setting *setting)
+{
+    TreeNode        *tnode = node->data;
+    gboolean        node_converted = FALSE;
+    gchar           *fullpath = NULL;
+
+    if ((NULL == setting) || (NULL == tnode) 
+            || (TREENODE_IS_TRAVERSED (tnode))){
+        return FALSE;
+    }
+
+    TREENODE_SET_TRAVERSED (tnode, 1);  /* avoid infinite loop for symlink */
+
+    fsexam_errno = ERR_OK;
+
+    /* get stored error during tree construction */
+    if (TREENODE_FLAG_REMOTE_FILE (tnode)) {
+        fsexam_errno = ERR_IGNORE_REMOTE_FILE;
+    }else if (TREENODE_FLAG_HIDDEN_FILE (tnode)) {
+        fsexam_errno = ERR_IGNORE_HIDDEN_FILE;
+    }else if (TREENODE_FLAG_UTF8_ALREADY (tnode)) {
+        fsexam_errno = ERR_NAME_UTF8_ALREADY;
+    }
+
+    if (fsexam_errno != ERR_OK) {
+        fullpath = fsexam_tree_get_path (node, FALSE);
+        fsexam_log_puts (setting->log_info, fullpath, NULL);
+        if (setting->display_msg) {
+            setting->display_msg (fullpath, fsexam_error_get_msg ());
+        }
+
+        if (fsexam_errno != ERR_NAME_UTF8_ALREADY)
+            goto done;
+    }
+
+    if (TREENODE_IS_NEED_CONVERT (tnode)) {
+        gchar    *dir = fsexam_tree_get_path (node->parent, FALSE);
+        gchar    *bname = tnode->orig;
+        gchar    *newname = NULL;
+
+        node_converted = real_convert (setting, dir, bname, &newname);
+
+        if (node_converted && newname != NULL) {
+            TREENODE_SET_CONVERTED (tnode, 1);
+            TREENODE_SET_UTF8 (tnode, newname);
+        }
+        g_free (fullpath);
+        fullpath = g_strdup_printf ("%s/%s", dir, newname ? newname : bname);
+
+        g_free (dir);
+
+        if (setting->flags & FSEXAM_SETTING_FLAGS_STOP)
+            goto done;
+    }
+
+    if (TREENODE_IS_SPECIAL (tnode)) {
+        if (fullpath == NULL)
+                fullpath = fsexam_tree_get_path (node, FALSE);
+
+        /* 
+         * archive or compress filename may be converted already,
+         * so get the original name.
+         */
+        gchar *hist_search_path = fsexam_tree_get_path (node, TRUE);
+
+        fsexam_compress_convert_name (setting, 
+                                      fullpath, 
+                                      hist_search_path, 
+                                      FALSE);
+
+        g_free (hist_search_path);
+    }else if (TREENODE_IS_SYMLINK (tnode)) {
+        if (TREENODE_FLAG_TARGET_NOTEXIST (tnode)) {
+            if (fullpath == NULL)
+                fullpath = fsexam_tree_get_path (node, FALSE);
+            
+            fsexam_errno = ERR_SYMLINK_TARGET_NOEXIST;
+            fsexam_log_puts (setting->log_info, fullpath, NULL);
+            if (setting->display_msg) {
+                setting->display_msg (fullpath, fsexam_error_get_msg ());
+            }
+        }else if (!setting->pref->no_check_symlink_content) {
+            /* follow has been handled during tree construction */
+            GNode   *gnode = TREENODE_GET_TARGET (tnode);
+            
+            if ((gnode != NULL) && (gnode->data != NULL)) 
+                if (convert_symlink_target_node (gnode, setting, FALSE)) 
+                    relink_symlink (node, gnode, setting);
+        }
+    } else if ((setting->pref->recursive && TREENODE_IS_RECURSIVE (tnode))
+            && (!setting->pref->follow) 
+            && setting->pref->no_check_symlink_content){
+        convert_directory (setting, node);
+    }
+
+done:
+    g_free (fullpath);
+
+    return node_converted;
+}
+
+/*====================================================================
+ *  Function Name:  dryrun_convert_node
+ *
+ *  Parameters:
+ *      GNode *node:    one node created from dryrun result file.
+ *      gpointer data:  is FSEXAM_setting passed from g_node_traverse.
+ *
+ *  Desc:
+ *      Convert one node come from dryrun result file.
+ *
+ *      We need handle various error here.
+ *
+ *  Return value:
+ *      Always return TRUE, otherwise g_node_traverse will stop.
+ *
+ *  Exception:
+ *
+ *  Author:     Yandong Yao 2006/09/05
+ ========================================================================*/ 
+static gboolean
+dryrun_convert_node (GNode *node, gpointer data)
+{
+    FSEXAM_setting  *setting = (FSEXAM_setting *)data;
+    TreeNode        *tnode = node->data;
+    gchar            *path = NULL;
+    gboolean        ret;
+
+    if ((NULL == setting)
+            || (NULL == tnode)
+            || TREENODE_IS_TRAVERSED (tnode) 
+            || (TREENODE_GET_UTF8 (tnode) == NULL) 
+            || (! TREENODE_IS_NEED_CONVERT (tnode))) {   /* Ingore symlink */
+        return FALSE;
+    }
+
+    TREENODE_SET_TRAVERSED (tnode, 1);
+
+    path = fsexam_tree_get_path (node->parent, FALSE);  /* get real path */
+
+    ret = write_to_disk (setting, 
+                        path, 
+                        TREENODE_GET_ORIG (tnode),
+                        TREENODE_GET_UTF8 (tnode),
+                        TREENODE_GET_ID (tnode),        /* from encoding    */
+                        encoding2id ("UTF-8"),          /* to encoding      */
+                        NULL);
+
+    /* update TreeNode */
+    if (ret) {
+        TREENODE_SET_CONVERTED (tnode, 1);  
+    }
+
+    g_free (path);
+
+    return FALSE;
+}
+
+/*====================================================================
+ *  Function Name:  restore_convert_node
+ *
+ *  Parameters:
+ *      GNode *node:   node need restore
+ *      gpointer data: is FSEXAM_setting passed from g_node_traverse.
+ *
+ *  Desc:
+ *      restore one node come from history file
+ *      We need handle various error here.
+ *
+ *  Return value:
+ *      Always return FALSE, otherwise g_node_traverse will stop.
+ *
+ *  Author:     Yandong Yao 2006/11/27
+ ========================================================================*/ 
+static gboolean
+restore_convert_node (GNode *node, gpointer data)
+{
+    wrapped_restore_convert_node (node, data);
+
+    return FALSE;
+}
+
+/* 
+ * Return TRUE if node has been converted.
+ */
+static gboolean
+wrapped_restore_convert_node (GNode *node, gpointer data)
+{
+    FSEXAM_setting  *setting = (FSEXAM_setting *)data;  
+    TreeNode        *tnode = (node->data);
+    gboolean        node_converted = FALSE;
+    gchar           *dirpath = NULL;
+    gchar           *fullpath = NULL;
+
+    if ((NULL == setting) || (NULL == tnode) 
+            || TREENODE_IS_TRAVERSED (tnode)) { 
+        return FALSE;
+    }
+
+    TREENODE_SET_TRAVERSED (tnode, 1);
+
+    dirpath = fsexam_tree_get_path (node->parent, FALSE);
+    fullpath = fsexam_tree_get_path (node, FALSE);
+
+    if (dirpath == NULL) {
+        g_free (fullpath);
+        return FALSE;
+    }
+
+    fsexam_errno = ERR_OK;
+
+    /* do we need convert it? */
+    if (TREENODE_FLAG_REMOTE_FILE (tnode)) {
+        fsexam_errno = ERR_IGNORE_REMOTE_FILE;
+    }else if (TREENODE_FLAG_HIDDEN_FILE (tnode)) {
+        fsexam_errno = ERR_IGNORE_HIDDEN_FILE;
+    }
+
+    if (fsexam_errno != ERR_OK) {
+        fsexam_log_puts (setting->log_info, fullpath, NULL);
+        if (setting->display_msg) {
+            setting->display_msg (fullpath, fsexam_error_get_msg ());
+        }
+
+        goto done;
+    }
+
+    if (TREENODE_GET_ORIG (tnode) != NULL && TREENODE_GET_UTF8 (tnode) != NULL){
+        if (TREENODE_IS_REVERSE (tnode)) {
+            node_converted = write_to_disk (setting,
+                                            dirpath,
+                                            TREENODE_GET_ORIG (tnode),
+                                            TREENODE_GET_UTF8 (tnode),
+                                            encoding2id ("UTF-8"),
+                                            TREENODE_GET_ID (tnode),
+                                            NULL);
+
+        }else{
+            node_converted = write_to_disk (setting,
+                                            dirpath,
+                                            TREENODE_GET_ORIG (tnode),
+                                            TREENODE_GET_UTF8 (tnode),
+                                            TREENODE_GET_ID (tnode),
+                                            encoding2id ("UTF-8"),
+                                            NULL);
+        }
+
+        if (node_converted)
+            TREENODE_SET_CONVERTED (tnode, 1);
+
+        g_free (fullpath);
+        fullpath = fsexam_tree_get_path (node, FALSE);
+    }
+
+    if (TREENODE_IS_SPECIAL (tnode)) {
+        /* hist_search_path use the original name of special file */
+        gchar *hist_search_path = fsexam_tree_get_path (node, TRUE);
+
+        /* Restore special type file name */
+        fsexam_compress_convert_name (setting, 
+                                      fullpath, 
+                                      hist_search_path, 
+                                      TRUE);
+
+        g_free (hist_search_path);
+    }else if (TREENODE_IS_SYMLINK (tnode)) {
+        if (TREENODE_FLAG_TARGET_NOTEXIST (tnode)) {
+            fsexam_errno = ERR_SYMLINK_TARGET_NOEXIST;
+            fsexam_log_puts (setting->log_info, fullpath, NULL);
+            if (setting->display_msg) {
+                setting->display_msg (fullpath, fsexam_error_get_msg ());
+            }
+        }else if (!setting->pref->no_check_symlink_content) {
+            GNode   *gnode = TREENODE_GET_TARGET (tnode);
+
+            if ((gnode != NULL) && (gnode->data != NULL)) 
+                if (convert_symlink_target_node (gnode, setting, TRUE)) 
+                    relink_symlink (node, gnode, setting);
+        }
+    }
+
+done:
+    g_free (fullpath);
+    g_free (dirpath);
+
+    return node_converted;
+}
+
+/*
+ *  Display candidate list for CLI.
+ *  Return the total number of candidates.
+ */
+static gint
+construct_candidate_list (GList *list, gboolean forname)
+{
+    gint num_candidate = 0;
+
+    if (list == NULL)
+        return -1;
+
+    fprintf (stdout, _("Candidate list:\n"));
+    fprintf (stdout, _("\t[No.] Encoding name\tConversion Result\n"));
+
+    while (list != NULL) {
+        Encoding *encode = (Encoding *)list->data;
+
+        list = g_list_next (list);
+
+        if (encode->score == FAIL) 
+            continue;
+
+        if (forname)
+            fprintf (stdout, "\t[%i]   %s\t\t%s\n", 
+                     num_candidate, 
+                     id2encoding (encode->encodingID),
+                     encode->u.converted_text);
+        else {                          /* content */
+            fprintf (stdout, "\t[%i]   %s\t\t%s\n", 
+                     num_candidate, 
+                     id2encoding (encode->encodingID),
+                     encode->u.contents);
+        }
+
+        num_candidate++;
+    }
+
+    return num_candidate;
+}
+
+static gboolean
+fsexam_convert_scenario_for_name (FSEXAM_setting *setting)
+{
+    g_return_val_if_fail (setting != NULL, FALSE);
+
+    GSList   *slist = NULL;
+    GNode    *root = NULL;
+    gboolean ret;
+
+    ret = fsexam_dryrun_process (setting->dryrun_info, &slist);
+
+    if ((! ret) || (NULL == slist)) {
+        fsexam_log_puts (setting->log_info, NULL, NULL);
+        if (setting->display_msg)
+            setting->display_msg (NULL, fsexam_error_get_msg ());
+
+        setting->display_stats (setting);   /* display statastics */
+        fsexam_log_flush (setting->log_info);
+        return FALSE;
+    }
+
+    root = fsexam_tree_construct_from_dryrun (slist, setting);
+    fsexam_dryrun_item_slist_free (slist);
+
+    if (root == NULL) {
+        fsexam_errno = ERR_TREE_IS_EMPTY;
+        fsexam_log_puts (setting->log_info, NULL, NULL);
+        if (setting->display_msg)
+            setting->display_msg (NULL, fsexam_error_get_msg ());
+
+        return FALSE;
+    }
+
+    if (fsexam_debug () 
+            & (FSEXAM_DBG_OPTION | FSEXAM_DBG_TREE | FSEXAM_DBG_FILELIST)) {
+        return TRUE;
+    }
+
+    setting->flags |= FSEXAM_SETTING_FLAGS_DIFF_SERIAL;
+
+    g_node_traverse (root, 
+                    G_PRE_ORDER, 
+                    G_TRAVERSE_ALL, 
+                    -1, 
+                    dryrun_convert_node, 
+                    setting);
+
+    setting->display_stats (setting);   /* display statastics */
+    fsexam_log_flush (setting->log_info);
+    setting->flags = 0;
+    fsexam_tree_destroy (root);
+
+    return TRUE;
+
+}
+
+static gboolean
+fsexam_restore_name (FSEXAM_setting *setting, GList *list)
+{
+    g_return_val_if_fail (setting != NULL, FALSE);
+
+    GNode *root = NULL;
+
+    root = fsexam_tree_construct_from_history (list, 
+                                               setting->hist_info, 
+                                               setting);
+
+    if ((list == NULL) || (root == NULL)){
+        fsexam_errno = ERR_TREE_IS_EMPTY;
+        fsexam_log_puts (setting->log_info, NULL, NULL);
+        if (setting->display_msg)
+            setting->display_msg (NULL, fsexam_error_get_msg ());
+
+        return FALSE;
+    }
+
+    setting->flags |= FSEXAM_SETTING_FLAGS_DIFF_SERIAL;
+
+    if (fsexam_debug () 
+            & (FSEXAM_DBG_OPTION | FSEXAM_DBG_TREE | FSEXAM_DBG_FILELIST)) {
+        return TRUE;
+    }
+
+    g_node_traverse (root, 
+                    G_PRE_ORDER, 
+                    G_TRAVERSE_ALL, 
+                    -1, 
+                    restore_convert_node, 
+                    setting);
+
+    setting->display_stats (setting);   /* display statastics */
+    fsexam_log_flush (setting->log_info);
+    setting->flags = 0;
+    fsexam_tree_destroy (root);
+
+    return TRUE;
+}
+
+/* --------------   Public API  ------------------------ */
+
+/*
+ *  find one non exist name through append suffix.
+ *  need free by caller
+ */
+gchar *
+find_non_exist_name (const gchar *name)
+{
+    gchar   tmp[PATH_MAX];
+    gint    i;
+
+    for (i = 0; ; i++) {
+        if (i) {
+            g_snprintf (tmp, PATH_MAX - 1, "%s.%s.%d", name, SUFFIX, i);
+        }else{
+            g_snprintf (tmp, PATH_MAX - 1, "%s.%s", name, SUFFIX);
+        }
+
+        if (! g_file_test (tmp, G_FILE_TEST_EXISTS))
+            return g_strdup (tmp);
+    }
+}
+
+/*
+ * Convert single file's fullpath, don't care any flags
+ */
+gboolean
+fsexam_convert_single_filename (FSEXAM_setting *setting, 
+                                const gchar *filename,
+                                gchar **result_name)
+{
+    GNode    *root = NULL;
+    GNode    *tmp = NULL;
+    gboolean node_converted = FALSE;
+
+    if ((filename == NULL) || (setting == NULL)) {
+        return FALSE;
+    }
+
+    fsexam_setting_reset_stats (setting);
+
+    if ((root = fsexam_tree_construct_from_single_file (filename)) == NULL) {
+        fsexam_errno = ERR_TREE_IS_EMPTY;
+        fsexam_log_puts (setting->log_info, NULL, NULL);
+        if (setting->display_msg)
+            setting->display_msg (NULL, fsexam_error_get_msg ());
+
+        return FALSE;
+    }
+
+    setting->flags |= FSEXAM_SETTING_FLAGS_DIFF_SERIAL;
+
+    tmp = root;
+    while ((tmp = g_node_first_child (tmp)) != NULL) {
+        TreeNode *tnode = tmp->data;
+        gchar    *bname = tnode->orig;
+        gchar    *dir = NULL;
+        gchar    *newname = NULL;
+
+        if (! TREENODE_IS_NEED_CONVERT (tnode)) {
+            continue;
+        }
+
+        dir = fsexam_tree_get_path (tmp->parent, FALSE);
+        node_converted = real_convert (setting, dir, bname, &newname);
+        g_free (dir);
+
+        if (node_converted) {
+            TREENODE_SET_CONVERTED (tnode, 1);
+            TREENODE_SET_UTF8 (tnode, newname);
+
+            if ((G_NODE_IS_LEAF (tmp)) && (result_name != NULL)) {
+                /* last node */ 
+                *result_name = fsexam_tree_get_path (tmp, FALSE);
+            }
+        }else{
+            g_free (newname);
+            break;      /* fsexam_errno store the reason */
+        }
+    }
+    
+    setting->flags = 0;
+    fsexam_tree_destroy (root);
+
+    return node_converted;
+}
+
+gboolean
+fsexam_convert_filename (FSEXAM_setting *setting, const gchar *filename)
+{
+    g_return_val_if_fail (setting != NULL, FALSE);
+
+    GList       *list = NULL;
+    gboolean    ret;
+
+    if (filename != NULL) 
+        list = g_list_prepend (list, (gpointer) filename);
+
+    ret = fsexam_convert_filename_batch (setting, list);
+
+    fsexam_list_free (list);
+
+    return ret;
+}
+
+gboolean
+fsexam_convert_filename_batch (FSEXAM_setting *setting, GList *list)
+{
+    g_return_val_if_fail (setting != NULL, FALSE);
+
+    GNode *root = NULL;
+
+    fsexam_setting_reset_stats (setting);
+
+    if (list != NULL) 
+        root = fsexam_tree_construct_from_list (list, setting);
+
+    if ((NULL == list) || (NULL == root)){
+        fsexam_errno = ERR_TREE_IS_EMPTY;
+        fsexam_log_puts (setting->log_info, NULL, NULL);
+        if (setting->display_msg)
+            setting->display_msg (NULL, fsexam_error_get_msg ());
+
+        return FALSE;
+    }
+
+    if (fsexam_debug () 
+            & (FSEXAM_DBG_OPTION | FSEXAM_DBG_TREE | FSEXAM_DBG_FILELIST)) {
+        return TRUE;
+    }
+
+    setting->flags |= FSEXAM_SETTING_FLAGS_DIFF_SERIAL;
+
+    g_node_traverse (root, 
+                     G_PRE_ORDER, 
+                     G_TRAVERSE_ALL, 
+                     -1, 
+                     convert_node,  /* Return TRUE will stop the traverse */
+                     setting);
+
+    setting->display_stats (setting);   /* display statastics */
+    fsexam_log_flush (setting->log_info);
+    setting->flags = 0;             /* clear all flags after conversion */
+    fsexam_tree_destroy (root);
+
+    return TRUE;
+}
+
+
+//TODO: Add format validation
+gboolean
+fsexam_convert_scenario (FSEXAM_setting *setting)
+{
+    g_return_val_if_fail (setting != NULL, FALSE);
+
+    ConvType    type;
+    gboolean    ret;
+
+    fsexam_setting_reset_stats (setting);
+
+    if (setting->dryrun_info == NULL) {
+        fprintf (stderr, _("Can't access dry run result information.\n"));
+        return FALSE;
+    }
+
+    if (!fsexam_dryrun_get_convtype (setting->dryrun_info, &type))
+        return FALSE;
+
+    if (type == ConvName) {
+        ret = fsexam_convert_scenario_for_name (setting);
+    }else{
+        ret = fsexam_convert_scenario_for_content (setting);
+    }
+
+    return ret;
+}
+
+gboolean 
+fsexam_restore (FSEXAM_setting *setting, GList *list, ConvType restore_type)
+{
+    gboolean ret;
+
+    fsexam_setting_reset_stats (setting);
+
+    if (restore_type == RestoreConvName) {
+        ret = fsexam_restore_name (setting, list);
+    }else if (restore_type == RestoreConvContent) {
+        ret = fsexam_restore_content (setting, list);
+    }else{
+        g_print (_("Don't support this restore type.\n"));
+        ret = FALSE;
+    }
+
+    return ret;
+}
+
+
+/* ---------------  call back function for CLI ------------  */
+
+#define INPUT_LEN 10
+
+/*
+ *  Get the index of user's selection.
+ *  -1 returned if no selection.
+ */
+gint 
+get_index_default (GList *encoding_list, gboolean forname)
+{
+    gint     num_candidate;
+    gchar    input[INPUT_LEN];
+    gint     response;
+    gint     result_index;
+
+    num_candidate = construct_candidate_list (encoding_list, forname);
+
+    if (num_candidate < 1) {
+        fprintf (stderr, _("No proper encoding.\n"));
+        return -1;
+    }
+
+    do {
+        fprintf (stdout, _("Please select No.('s' to skip): "));
+        memset (input, 0, sizeof (input));  
+        fflush (stdin);             /* discard excess data */
+        fgets (input, sizeof(input), stdin);
+
+        if ((*input == '\n') || (*input == '\0'))   /* Return or Empty */
+            continue;
+
+        input[strlen (input) - 1] = '\0';   /* remove trailing '\n' */
+
+        if (g_ascii_strcasecmp (input, "s") == 0) {
+            response = -1;
+            break;
+        }else{
+            gchar *tmp = input;
+
+            for (; ((*tmp >= '0') && (*tmp <= '9') && (*tmp != '\0')); tmp++)
+                ;
+
+            if (*tmp != '\0')
+                continue;
+
+            response = atoi (input);    /* input belong [0-9]{1, 9}  */
+
+            if ((response < 0) || (response > num_candidate - 1))
+                continue;
+            else
+                break;
+        }
+    } while (TRUE);
+
+    if (response == -1)
+        return -1;
+
+    fsexam_encoding_iterate_with_func (encoding_list,
+                fsexam_encoding_translate_index,
+                &response,
+                &result_index);
+
+    return result_index;
+}
+
+/*
+ *  display_msg func for CLI
+ */
+void
+display_msg_default (const gchar *filename, const gchar *msg)
+{
+    if ((filename == NULL) || (msg == NULL))
+        return;
+
+    if (filename) {
+        if (g_utf8_validate (filename, -1, NULL)) {
+            fprintf (stderr, "%s: %s\n", filename, msg ? msg : "");
+        }else{
+            gchar *uri = g_filename_to_uri (filename, NULL, NULL);
+
+            if (uri == NULL) {  /* such as filename doesn't exist */
+                uri = fsexam_string_escape (filename);
+            }
+
+            fprintf (stderr, "%s: %s\n", uri, msg ? msg : "");
+            g_free (uri);
+        }
+    }else{ 
+        fprintf (stderr, "%s\n", msg);
+    }
+
+    return;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-convname.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,111 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_CONVNAME_H
+#define _FSEXAM_CONVNAME_H
+
+/*===================================================================
+ *  Function Name:  fsexam_convert_single_filename
+ *
+ *  Parameters:
+ *
+ *  Desc:   
+ *      Convert single full file path, don't care any other flags, such
+ *      as symlink, recursive etc.
+ *
+ *  Return value:
+ *      TRUE if success, FALSE if error occured
+ *
+ *  Author:     Yandong Yao 2007/02/06
+ =====================================================================*/
+gboolean fsexam_convert_single_filename (FSEXAM_setting *setting,
+                                         const gchar *filename,
+                                         gchar **result_name);
+
+/*============================================================================
+ *  Function Name:  fsexam_convert_filename
+ *
+ *  Parameters:
+ *      FSEXAM_setting *setting: struct contain all information
+ *      gchar * filename:   the filename which will be converted
+ *
+ *  Desc:
+ *      Convert one filename, but maybe convert more than one file, if 
+ *      has follow or recursive options.
+ *
+ *  Return value:
+ *      True for success otherwise fail
+ *
+ *  Author:     Yandong Yao 2006/08/22
+ ===========================================================================*/ 
+gboolean fsexam_convert_filename (FSEXAM_setting *setting, 
+                                  const gchar *filename);
+
+/*===========================================================================
+ *  Function Name:  fsexam_convert_filelist 
+ *
+ *  Parameters:
+ *      FSEXAM_setting *setting: the all-in-one struct
+ *      GList *list: The list contain file names
+ *
+ *  Desc:
+ *      Convert the whole tree structure for list.
+ *
+ *  Return value:
+ *      TRUE for success, otherwise fail
+ *
+ *  Author:     Yandong Yao 2006/08/22
+ ============================================================================*/
+gboolean fsexam_convert_filename_batch (FSEXAM_setting *setting, GList *list);
+
+/*====================================================================
+ *  Function Name:  fsexam_convert_scenario
+ *
+ *  Parameters:
+ *      FSEXAM_setting *setting: contain the setting 
+ *
+ *  Desc:
+ *      Scenario base conversion.  fsexam_dryrun_convert_filename() will convert
+ *      based on dryrun result.
+ *
+ *  Return value:
+ *      TRUE if success, otherwise fail
+ *
+ *  Author:     Yandong Yao 2006/08/31
+ ========================================================================*/ 
+gboolean fsexam_convert_scenario (FSEXAM_setting *);
+
+gboolean fsexam_restore (FSEXAM_setting *, GList *list, ConvType restore_type);
+
+gchar   *find_non_exist_name (const gchar *name);
+
+/* --------- Default handler ----------------- */
+gint get_index_default (GList *encoding_list, gboolean forname);
+void display_msg_default (const gchar *filename, const gchar *msg);
+
+
+#endif //_FSEXAM_CONVNAME_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-debug.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,54 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+
+int
+fsexam_debug (void)
+{
+    static int initialized = 0;
+    static int debug = 0;
+
+    if (0 == initialized){
+        char *ev = NULL;
+
+        initialized = 1;
+
+        ev = getenv ("FSEXAM_DEBUG");
+
+        if (ev != NULL){
+            debug = atoi (ev);
+            if (debug <= 0)
+                debug = 0;
+
+            (void) printf ("FSEXAM_DEBUG=%s, debug = %d\n", ev, debug);
+        }
+
+    }
+
+    return debug;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-debug.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,41 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _FSEXAM_DEBUG
+#define _FSEXAM_DEBUG
+
+#define FSEXAM_DBG_OPTION       (1 << 0)
+#define FSEXAM_DBG_TREE         (1 << 1)
+#define FSEXAM_DBG_ENCODING     (1 << 2)
+#define FSEXAM_DBG_HASH         (1 << 3)
+#define FSEXAM_DBG_FILELIST     (1 << 4)
+#define FSEXAM_DBG_HISTORY      (1 << 5)
+#define FSEXAM_DBG_PLAIN_TEXT   (1 << 6)
+#define FSEXAM_DBG_ARCHIVE      (1 << 7)
+
+gint fsexam_debug (void);
+
+#endif  //_FSEXAM_DEBUG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-dialog.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,235 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <gconf/gconf-client.h>
+
+#include "fsexam-header.h"
+#include "fsexam-dialog.h"
+#include "fsexam-ui.h"
+
+extern gint indexg;
+
+/*
+ *  Callback for 'toggled' signal of GtkRadioButton
+ */
+void
+fsexam_convert_candidate_set (GtkWidget *widget,
+                              gpointer user_data)
+{
+    indexg = (gint)user_data;  /* the user_data is the real index in GList */
+}
+
+/*
+ *  Iterate function for Encoding List
+ *
+ *  Add one element of Encoding list into candidate dialog as one candidate.
+ */
+static gboolean
+fsexam_construct_index_ui (Encoding *encode,
+                           gint index,     /* the index in encode_list */ 
+                           va_list args)
+{
+    GtkWidget *table = NULL;
+    GtkWidget *entry = NULL;
+    GtkWidget *radio = NULL;
+    GtkWidget **radio_group = NULL;
+    gboolean  name_conversion;
+
+    table = va_arg (args, GtkWidget *);
+    radio_group = va_arg (args, GtkWidget **);
+    name_conversion = va_arg (args, gboolean);
+
+    /* Radio button */
+    if (*radio_group == NULL) { /* is NULL for the first element */
+        radio = gtk_radio_button_new_with_label (NULL,
+                                        id2encoding (encode->encodingID));
+        *radio_group = radio;
+    } else {
+        radio = gtk_radio_button_new_with_label_from_widget (
+                                        GTK_RADIO_BUTTON (*radio_group),
+                                        id2encoding (encode->encodingID));
+    }
+
+    gtk_table_attach (GTK_TABLE (table),
+                      radio, 
+                      0, 1, 
+                      index, index+1,
+                      GTK_FILL | GTK_SHRINK, /* GtkAttachOptions xoption */
+                      GTK_SHRINK,            /* GtkAttachOptions yoption */
+                      0,                     /* xpadding */
+                      0);                    /* ypadding */
+
+    /* Text Entry */
+    entry = gtk_entry_new ();
+
+    if (name_conversion) {
+        gtk_entry_set_text (GTK_ENTRY (entry), encode->u.converted_text);
+    }else{
+        gtk_entry_set_text (GTK_ENTRY (entry), encode->u.contents);
+    }
+
+    gtk_table_attach (GTK_TABLE (table),
+                      entry,
+                      1, 2, 
+                      index, index+1,
+                      GTK_EXPAND | GTK_FILL,
+                      GTK_SHRINK | GTK_FILL,
+                      0,
+                      0);
+
+
+    g_signal_connect (G_OBJECT (radio),
+                      "toggled",
+                      G_CALLBACK (fsexam_convert_candidate_set),
+                      (gpointer)index); /* this is the index in encode list */
+
+    return TRUE;
+}
+
+#define BOX_SPACE  8
+
+/*
+ * Create candidates list dialog for user to select
+ */
+GtkWidget *
+fsexam_dialog_candidate (GList *encoding, gboolean forname)
+{
+    GtkWidget   *dialog = NULL;
+    GtkWidget   *hbox = NULL;
+    GtkWidget   *vbox = NULL;
+    GtkWidget   *stock = NULL;
+    GtkWidget   *table = NULL;
+    GtkWidget   *button_ask = NULL;
+    GtkWidget   *radio_group = NULL;
+    gint        num_encoding;
+
+    num_encoding = fsexam_encoding_get_length (encoding);
+
+    dialog = gtk_dialog_new_with_buttons (
+                            _("Please select candidate"),
+                            GTK_WINDOW (view->mainwin),
+                            GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+                            GTK_STOCK_CANCEL,
+                            GTK_RESPONSE_CANCEL,
+                            GTK_STOCK_OK,
+                            GTK_RESPONSE_OK,
+                            NULL);
+
+    /* The main container for Dialog content */
+    hbox = gtk_hbox_new (FALSE, BOX_SPACE);
+    gtk_container_set_border_width (GTK_CONTAINER (hbox), BOX_SPACE);
+    gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),
+                        hbox,
+                        TRUE,   /* expand */
+                        TRUE,   /* fill */
+                        0);     /* padding */
+
+    /* Left part */
+    vbox = gtk_vbox_new (FALSE, BOX_SPACE);
+    gtk_box_pack_start (GTK_BOX (hbox), 
+                        vbox, 
+                        FALSE, 
+                        FALSE, 
+                        0);
+
+
+    /* Add Quesiton stock ICON into HBox */
+    stock = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION,
+                                      GTK_ICON_SIZE_DIALOG);
+    gtk_box_pack_start (GTK_BOX (vbox), 
+                        stock, 
+                        TRUE, 
+                        TRUE, 
+                        0);
+    /* Ask me button */
+    button_ask = gtk_check_button_new_with_label (_("Don't ask me again"));
+    g_object_set_data (G_OBJECT (dialog), "chkbtn_ask", button_ask);
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button_ask), FALSE);
+    gtk_box_pack_start (GTK_BOX (vbox),
+                        button_ask,
+                        FALSE,
+                        FALSE,
+                        0);
+
+    /* Create table */
+    table = gtk_table_new (num_encoding,
+                           2, 
+                           FALSE);     /* homogouse */
+    gtk_table_set_row_spacings (GTK_TABLE (table), 4);
+    gtk_table_set_col_spacings (GTK_TABLE (table), 4);
+
+    if (num_encoding > 10) {
+        /* add scrollwindow */
+        GtkWidget   *scroll_window = NULL;
+        GtkWidget   *view_port = NULL;
+
+        view_port = gtk_viewport_new (NULL, NULL);
+        gtk_viewport_set_shadow_type (GTK_VIEWPORT (view_port),
+                                       GTK_SHADOW_NONE);
+        gtk_container_add (GTK_CONTAINER (view_port), table);
+
+        scroll_window = gtk_scrolled_window_new (NULL, NULL);
+        gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll_window),
+                                        GTK_POLICY_AUTOMATIC,
+                                        GTK_POLICY_AUTOMATIC);
+        gtk_scrolled_window_set_shadow_type (
+                            GTK_SCROLLED_WINDOW (scroll_window),
+                            GTK_SHADOW_NONE);
+        gtk_container_add (GTK_CONTAINER (scroll_window), view_port);
+        
+        gtk_box_pack_start (GTK_BOX (hbox), 
+                            scroll_window, 
+                            TRUE, 
+                            TRUE, 
+                            5);
+
+        gtk_window_resize (GTK_WINDOW (dialog), 550, 400);
+    }else{
+        gint height;
+
+        gtk_box_pack_start (GTK_BOX (hbox), 
+                        table, 
+                        TRUE, 
+                        TRUE, 
+                        0);
+
+        gtk_window_get_size (GTK_WINDOW (dialog), NULL, &height);
+        gtk_window_resize (GTK_WINDOW (dialog), 450, height);
+    }
+
+    fsexam_encoding_iterate_with_func (encoding, 
+                                       fsexam_construct_index_ui,
+                                       table, 
+                                       &radio_group, 
+                                       forname);
+
+    gtk_widget_show_all (dialog);
+
+    return dialog;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-dialog.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,33 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_DIALOG_H_
+#define _FSEXAM_DIALOG_H_
+
+GtkWidget *fsexam_dialog_candidate (GList *encoding_list, gboolean forname);
+
+#endif  //_FSEXAM_DIALOG_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-dnd.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,148 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <gtk/gtk.h>
+#include <glade/glade.h>
+#include <gconf/gconf-client.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
+#include <libgnomevfs/gnome-vfs.h>
+#include <eel/eel-vfs-extensions.h>
+#include <eel/eel-string.h>
+#include <stdio.h>
+
+#include "fsexam-header.h"
+#include "fsexam-ui.h"
+#include "fsexam-dnd.h"
+
+enum {
+  FSEXAM_ICON_DND_GNOME_ICON_LIST,
+  FSEXAM_ICON_DND_URI_LIST,
+  FSEXAM_ICON_DND_TEXT
+};
+
+static GtkTargetEntry drop_types[] = {
+            {"text/uri-list", 0, FSEXAM_ICON_DND_URI_LIST},
+            {"text/plain", 0, FSEXAM_ICON_DND_TEXT},
+            {"x-special/gnome-icon-list", 0, FSEXAM_ICON_DND_GNOME_ICON_LIST}
+};
+
+static void
+drag_data_received_callback (GtkWidget *widget,
+                             GdkDragContext *context,
+                             gint x, 
+                             gint y,
+                             GtkSelectionData *data,
+                             guint info,
+                             guint32 time,
+                             gpointer user_data)
+{
+    gchar    *canonical_uri = NULL, *local_path, *p;
+    gchar    **uris = NULL;
+    gint     i;
+
+    uris = g_uri_list_extract_uris ((gchar *) data->data);
+
+    for (i = 0; uris[i] != NULL; i++) {
+        gchar *uri;
+
+        uri = gnome_vfs_make_uri_from_shell_arg (uris[i]);
+        //TODO: is this valid?
+        canonical_uri = gnome_vfs_make_uri_canonical (uri);
+
+        g_free (uri);
+
+        if (canonical_uri != NULL)
+            break;
+    }
+
+    g_strfreev (uris);
+
+    if (canonical_uri == NULL)
+        return;
+
+    local_path = gnome_vfs_get_local_path_from_uri (canonical_uri);
+
+    if (local_path) {
+        fsexam_change_dir (local_path);
+    } else {
+        if (eel_uri_is_desktop (canonical_uri) 
+                || eel_uri_is_trash (canonical_uri)) {
+            gchar *uri = NULL;
+            p = strstr(canonical_uri, ":");
+            if (p != NULL) {
+                uri = g_strdup(p);
+            }
+
+            p = uri + 4; // to skip ":///"
+
+            if (!strncmp (p, "home", 4) || !strncmp (p, "trash", 5) 
+                    || !strncmp (p, "documents", 9)) {
+                if ((*p == 'h') || (*p == 'd'))
+                    local_path = g_strdup_printf ("%s/%s", 
+                                                   g_getenv ("HOME"), 
+                                                   "Documents");
+                else
+                    local_path = g_strdup_printf ("%s/%s", 
+                                                   g_getenv ("HOME"), 
+                                                   ".Trash");
+
+                fsexam_change_dir (local_path);
+            }
+
+            g_free (uri);
+        }
+    }
+
+    g_free (local_path);
+
+    gtk_drag_finish (context, TRUE, FALSE, time);
+    g_free (canonical_uri);
+
+    fsexam_statusbar_update("");
+
+    return;
+}
+
+void
+fsexam_dnd_set (GtkWidget *widget)
+{
+    gtk_drag_dest_set (widget,
+                 GTK_DEST_DEFAULT_ALL,
+                 drop_types, G_N_ELEMENTS (drop_types),
+                 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_ASK);
+    
+    g_signal_connect (widget,
+                "drag_data_received",
+                G_CALLBACK (drag_data_received_callback),
+                NULL);
+
+    return;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-dnd.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,33 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_DND_H
+#define _FSEXAM_DND_H
+
+void fsexam_dnd_set (GtkWidget *);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-dryrun.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,750 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string.h>
+#include <glib.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+
+#include "fsexam-debug.h"
+#include "fsexam-header.h"
+
+void        cb_text_buffer_changed (GtkTextBuffer *buffer, gpointer data);
+
+static void fsexam_dryrun_base_init (gpointer g_class);
+
+static void dryrun_file_instance_init (GTypeInstance *instance, 
+        gpointer g_class);
+static void dryrun_file_interface_init (gpointer g_iface, 
+        gpointer iface_data);
+static void dryrun_file_class_init (GObjectClass *klass);
+
+static void dryrun_buffer_instance_init (GTypeInstance *instance,
+        gpointer g_class);
+static void dryrun_buffer_interface_init (gpointer g_iface,
+        gpointer iface_data);
+static void dryrun_buffer_class_init (GObjectClass *klass);
+
+static gboolean fsexam_dryrun_write_path (FsexamDryrun *, const gchar *);
+
+static gboolean fsexam_dryrun_write_candidate (FsexamDryrun *info,
+        const gchar *encoding_name,
+        const gchar *sample);
+
+/* FsexamDryrun Interface Implementation */
+static void
+fsexam_dryrun_base_init (gpointer g_class)
+{
+    static gboolean initialized = FALSE;
+
+    if (!initialized) {
+        initialized = TRUE;
+    }
+
+    return;
+}
+
+GType
+fsexam_dryrun_get_type (void)
+{
+    static GType type = 0;
+
+    if (type == 0) {
+        static const GTypeInfo info = {
+            sizeof (FsexamDryrunInterface),
+            fsexam_dryrun_base_init,    /* base_init */
+            NULL,                       /* bsae_finalize */
+            NULL,                       /* class_init */
+            NULL,                       /* class_finalize */
+            NULL,                       /* class_data */
+            0,                          /* sizeof (Instance) */
+            0,                          /* n_preallocs */
+            NULL,                       /* instance_init */
+        };
+
+        type = g_type_register_static (G_TYPE_INTERFACE, 
+                "FsexamDryrun", 
+                &info, 
+                0);
+    }
+
+    return type;
+}
+
+gboolean
+fsexam_dryrun_write (FsexamDryrun *self, const gchar *string)
+{
+    return FSEXAM_DRYRUN_GET_INTERFACE (self)->write (self, string);
+}
+
+gboolean
+fsexam_dryrun_read (FsexamDryrun *self, gchar *buf, guint size)
+{
+    return FSEXAM_DRYRUN_GET_INTERFACE (self)->read (self, buf, size);
+}
+
+/* --- Dryrun implementation on file --- */
+static void
+dryrun_file_finalize (GObject *object)
+{
+    FsexamDryrunFile *dryrun_file = FSEXAM_DRYRUN_FILE (object);
+
+    if (dryrun_file && dryrun_file->fp) {
+        fclose (dryrun_file->fp);
+        dryrun_file->fp = NULL;
+    }
+
+    return;
+}
+
+GType
+fsexam_dryrun_file_get_type (void)
+{
+    static GType type = 0;
+
+    if (type == 0) {
+        static const GTypeInfo info = {
+            sizeof (FsexamDryrunFileClass),
+            NULL,   /* base_init */
+            NULL,   /* base_finalize */
+            (GClassInitFunc) dryrun_file_class_init, 
+            NULL,   /* class_finalize */
+            NULL,   /* class_data */
+            sizeof (FsexamDryrunFile),
+            0,      /* n_preallocs */
+            (GInstanceInitFunc) dryrun_file_instance_init, 
+        };
+
+        static const GInterfaceInfo dryrun_info = {
+            (GInterfaceInitFunc) dryrun_file_interface_init,/* interface_init */
+            NULL,   /* interface_finalize */
+            NULL,   /* interface_data */
+        };
+
+        type = g_type_register_static (G_TYPE_OBJECT, "FsexamDryrunFile", &info, 0);
+        g_type_add_interface_static (type, FSEXAM_TYPE_DRYRUN, &dryrun_info);
+    }
+
+    return type;
+}
+
+/* write callback implementation of DryrunFile */
+static gboolean 
+dryrun_file_write (FsexamDryrunFile *self, const gchar *string)
+{
+    gboolean ret = TRUE;
+
+    if (fputs (string, self->fp) < 0)
+        ret = FALSE;
+
+    return ret;
+}
+
+static gboolean
+dryrun_file_read (FsexamDryrunFile *self, gchar *buf, guint size)
+{
+    gboolean ret = TRUE;
+
+    if (fgets (buf, size, self->fp) == NULL)
+        ret = FALSE;
+
+    return ret;
+}
+
+static void
+dryrun_file_interface_init (gpointer g_iface, gpointer iface_data)
+{
+    FsexamDryrunInterface *iface = (FsexamDryrunInterface *)g_iface;
+
+    iface->write = (gboolean (*) (FsexamDryrun *, const gchar *))dryrun_file_write;
+    iface->read = (gboolean (*) (FsexamDryrun *, gchar *, guint)) dryrun_file_read;
+
+    return;
+}
+
+static void
+dryrun_file_instance_init (GTypeInstance *instance, gpointer g_class)
+{
+    FsexamDryrunFile *self = FSEXAM_DRYRUN_FILE (instance);
+
+    self->fp = NULL;
+
+    return;
+}
+
+static void
+dryrun_file_class_init (GObjectClass *klass)
+{
+    klass->finalize = dryrun_file_finalize;
+
+    return;
+}
+
+FsexamDryrun *
+fsexam_dryrun_file_new (const gchar *filename, gboolean readonly)
+{
+    FsexamDryrunFile *dryrun = NULL;
+
+    if (filename == NULL)
+        return NULL;
+
+    dryrun = g_object_new (FSEXAM_TYPE_DRYRUN_FILE, NULL);
+    dryrun->fp = fopen (filename, readonly ? "r" : "w");
+
+    if (dryrun->fp == NULL) {
+        g_object_unref (dryrun);
+        return NULL;
+    }
+
+    return FSEXAM_DRYRUN (dryrun);
+}
+
+/* --- Widget implementation for dryrun --- */
+GType
+fsexam_dryrun_buffer_get_type (void)
+{
+    static GType type = 0;
+
+    if (type == 0) {
+        static const GTypeInfo info = {
+            sizeof (FsexamDryrunBufferClass),
+            NULL,   /* base_init */
+            NULL,   /* base_finalize */
+            (GClassInitFunc) dryrun_buffer_class_init, 
+            NULL,   /* class_finalize */
+            NULL,   /* class_data */
+            sizeof (FsexamDryrunBuffer),
+            0,      /* n_preallocs */
+            (GInstanceInitFunc) dryrun_buffer_instance_init, 
+        };
+
+        static const GInterfaceInfo dryrun_info = {
+            (GInterfaceInitFunc) dryrun_buffer_interface_init,
+            NULL,   /* interface_finalize */
+            NULL,   /* interface_data */
+        };
+
+        type = g_type_register_static (G_TYPE_OBJECT, "FsexamDryrunBuffer", &info, 0);
+        g_type_add_interface_static (type, FSEXAM_TYPE_DRYRUN, &dryrun_info);
+    }
+
+    return type;
+}
+
+/*
+ * Create mark and connect signal handler for GtkTextBuffer 
+ */
+static void
+setup_text_buffer (GtkTextBuffer *buffer)
+{
+    GtkTextIter iter;
+
+    if (buffer == NULL)
+        return;
+
+    gtk_text_buffer_get_end_iter (buffer, &iter);
+    gtk_text_buffer_create_mark (buffer, "end_mark", &iter, FALSE);
+
+    g_signal_connect (G_OBJECT (buffer), "changed", 
+                      G_CALLBACK (cb_text_buffer_changed), NULL);
+
+    return;
+}
+
+static gboolean 
+dryrun_buffer_write (FsexamDryrunBuffer *self, const gchar *string)
+{
+    GtkTextIter     iter;
+
+    if (self->buffer == NULL)
+        return FALSE;
+
+    gtk_text_buffer_get_end_iter (self->buffer, &iter);
+    gtk_text_buffer_insert (self->buffer, &iter, string, -1);
+
+    return TRUE;
+}
+
+/*
+ * read one line from text buffer and increase line number
+ */
+static gboolean
+dryrun_buffer_read (FsexamDryrunBuffer *self, gchar *buf, guint size)
+{
+    gboolean    ret = TRUE;
+    guint       line_count;
+    GtkTextIter start, end;
+    gchar       *text = NULL;
+
+    line_count = (guint) gtk_text_buffer_get_line_count (self->buffer);
+    line_count --;  /* The last line is empty line */
+
+    if (self->current_line >= line_count) /* EOF */
+        return FALSE;
+
+    gtk_text_buffer_get_iter_at_line (self->buffer, 
+            &start, 
+            self->current_line);
+    gtk_text_buffer_get_iter_at_line (self->buffer, 
+            &end, 
+            self->current_line + 1);
+
+    text = gtk_text_buffer_get_text (self->buffer, &start, &end, FALSE);
+
+    strlcpy (buf, text, size);
+
+    g_free (text);
+    self->current_line++;
+
+    return ret;
+}
+
+static void
+dryrun_buffer_interface_init (gpointer g_iface, gpointer iface_data)
+{
+    FsexamDryrunInterface *iface = (FsexamDryrunInterface *)g_iface;
+
+    iface->write = (gboolean (*) (FsexamDryrun *, const gchar *))dryrun_buffer_write;
+    iface->read = (gboolean (*) (FsexamDryrun *, gchar *, guint)) dryrun_buffer_read;
+
+    return;
+}
+
+static void
+dryrun_buffer_instance_init (GTypeInstance *instance, gpointer g_class)
+{
+    FsexamDryrunBuffer *self = FSEXAM_DRYRUN_BUFFER (instance);
+
+    self->buffer = NULL;
+    self->current_line = 0;
+
+    return;
+}
+
+static void 
+dryrun_buffer_finalize (GObject *object)
+{
+    return;
+}
+
+static void
+dryrun_buffer_class_init (GObjectClass *klass)
+{
+    klass->finalize = dryrun_buffer_finalize; 
+
+    return;
+}
+
+FsexamDryrun *
+fsexam_dryrun_buffer_new (void)
+{
+    FsexamDryrunBuffer *dryrun = NULL;
+
+    dryrun = g_object_new (FSEXAM_TYPE_DRYRUN_BUFFER, NULL);
+
+    return FSEXAM_DRYRUN (dryrun);
+}
+
+FsexamDryrun *
+fsexam_dryrun_buffer_new_with_buffer (GtkTextBuffer *buffer)
+{
+    FsexamDryrunBuffer *dryrun = NULL;
+
+    dryrun = g_object_new (FSEXAM_TYPE_DRYRUN_BUFFER, NULL);
+
+    if (buffer != NULL) {
+        dryrun->buffer = buffer;
+        setup_text_buffer (buffer);
+    }
+
+    return FSEXAM_DRYRUN (dryrun);
+}
+
+void
+fsexam_dryrun_buffer_clear_buffer (FsexamDryrunBuffer *buffer)
+{
+    GtkTextIter start, end;
+
+    gtk_text_buffer_get_start_iter (buffer->buffer, &start);
+    gtk_text_buffer_get_end_iter (buffer->buffer, &end);
+    gtk_text_buffer_delete (buffer->buffer, &start, &end);
+
+    buffer->current_line = 0;
+
+    return;
+}
+
+void 
+fsexam_dryrun_buffer_set_buffer (FsexamDryrunBuffer *buffer, 
+        GtkTextBuffer *buf)
+{
+    if (buffer == NULL)
+        return;
+
+    buffer->buffer = buf;
+    setup_text_buffer (buffer->buffer);
+    
+    return;
+}
+
+void 
+fsexam_dryrun_buffer_set_current_line (FsexamDryrunBuffer *buffer, guint line_no)
+{
+    if (buffer == NULL)
+        return;
+
+    buffer->current_line = line_no;
+
+    return;
+}
+
+/*
+ * Write the full file path into dryrun file
+ */
+static gboolean 
+fsexam_dryrun_write_path (FsexamDryrun *info, const gchar *path)
+{
+    if ((NULL == path) || (NULL == info))
+        return FALSE;
+
+    if (g_utf8_validate (path, -1, NULL)){
+        if (! fsexam_dryrun_write (info, path)){
+            fsexam_errno = ERR_CANNOT_WRITE_DRYRUN;
+            goto fail;
+        }
+    }else{
+        gchar *uri = NULL;
+        uri = g_filename_to_uri (path, NULL, NULL);
+        if (NULL == uri){
+            fsexam_errno = ERR_CANNOT_CONVERT_TO_URI;
+            goto fail;
+        }
+        if (! fsexam_dryrun_write (info, uri) < 0){
+            fsexam_errno = ERR_CANNOT_WRITE_DRYRUN;
+            g_free (uri);
+            goto fail;
+        }
+        g_free (uri);
+    }
+
+    fsexam_dryrun_write (info, "\n");
+    
+    return TRUE;
+
+fail:
+    return FALSE;
+}
+
+static gboolean
+fsexam_dryrun_write_candidate (FsexamDryrun *info, 
+                               const gchar *encoding_name, 
+                               const gchar *sample)
+{
+    if ((NULL == info) || (NULL == sample) || (NULL == encoding_name))
+        return FALSE;
+
+    if (! fsexam_dryrun_write (info, "\t")) {
+        fsexam_errno = ERR_CANNOT_WRITE_DRYRUN;
+        return FALSE;
+    }
+
+    fsexam_dryrun_write (info, encoding_name);
+    fsexam_dryrun_write (info, "\t");
+    fsexam_dryrun_write (info, sample);
+    fsexam_dryrun_write (info, "\n");
+
+    return TRUE;
+}
+
+gboolean
+fsexam_dryrun_write_msg (FsexamDryrun *info, const gchar *msg)
+{
+    if ((NULL == info) || (NULL == msg))
+        return FALSE;
+
+    if (! fsexam_dryrun_write (info, "\t")) {
+        fsexam_errno = ERR_CANNOT_WRITE_DRYRUN;
+        return FALSE;
+    }
+
+    fsexam_dryrun_write (info, msg);
+    fsexam_dryrun_write (info, "\n");
+
+    return TRUE;
+}
+
+gboolean 
+fsexam_dryrun_write_convtype (FsexamDryrun *info, ConvType type)
+{
+    g_return_val_if_fail ((info != NULL), FALSE);
+
+    if (type == ConvName)
+        fsexam_dryrun_write (info, "Name conversion\n");
+    else
+        fsexam_dryrun_write (info, "Content conversion\n");
+
+    return TRUE;
+}
+
+/*
+ * Get the conversion type, and set fsexam_errno if invalid
+ */
+gboolean
+fsexam_dryrun_get_convtype (FsexamDryrun *info, ConvType *type)
+{
+    const gint TYPE_LENGTH = 80;
+    gchar convtype[TYPE_LENGTH];
+    gchar *strip = NULL;
+
+    if (! fsexam_dryrun_read (info, convtype, sizeof (convtype))){
+        fsexam_errno = ERR_DRYRUN_FILE_INVALID;
+        return FALSE;
+    }
+
+    strip = g_strstrip (convtype);
+
+    if (strcmp (strip, "Name conversion") == 0)
+        *type = ConvName;
+    else if (strcmp (strip, "Content conversion") == 0)
+        *type = ConvContent;
+    else
+        fsexam_errno = ERR_DRYRUN_FILE_INVALID;
+
+    return TRUE;
+}
+
+/* 
+ *  Analyze dryrun result file, add Dryrun_item which represent
+ *  user selected encoding into GSList result.
+ */
+gboolean
+fsexam_dryrun_process (FsexamDryrun *info, GSList **result)
+{
+    g_return_val_if_fail (info != NULL, FALSE);
+
+    gchar    linebuf [PATH_MAX + 20];
+    gchar    *path = NULL, *encoding = NULL, *sample = NULL, *ptr = NULL;
+    GSList   *slist = NULL;
+    gboolean metpath = FALSE, metcode = FALSE, tab = FALSE;
+    gboolean ret = FALSE;
+
+    while (fsexam_dryrun_read (info, linebuf, sizeof (linebuf))) {
+        if (linebuf[strlen (linebuf) - 1] == '\n')
+            linebuf[strlen (linebuf) - 1] = '\0';
+
+        /* remove leading and trailing white space */
+        if ((ptr = str_compress (linebuf, &tab)) == NULL) {
+            continue;                       /* Empty line */
+        }
+
+        /* 
+         * Some files may not need convert at all, or have no 
+         * proper encoding. bypass it and continue.
+         */
+        if ((strcmp (ptr, FSEXAM_DRYRUN_NO_NEED_CONVERT) == 0)
+                || (strcmp (ptr, FSEXAM_DRYRUN_NO_PROPER_ENCODING) == 0)) {
+            if (!metpath) {
+                fsexam_errno = ERR_DRYRUN_FILE_INVALID;
+                goto done;
+            }
+
+            g_free (path);
+            path = NULL;
+            metpath = FALSE;
+            continue;
+        }
+        
+        if (tab) {
+            Dryrun_item *item = NULL;
+
+            if (!metpath) {
+                if (metcode) {      /* metpath will be false after first candidate */
+                    continue;       /* ignore non-first encoding candidate */
+                }else{
+                    fsexam_errno = ERR_DRYRUN_FILE_INVALID;
+                    goto done;
+                }
+            }
+
+            metcode = TRUE;
+
+            str_split (ptr, &encoding, &sample);
+            if ((encoding2id (encoding) == -1) || (sample == NULL)) {
+                fsexam_errno = ERR_DRYRUN_FILE_INVALID;
+                goto done;
+            }
+
+            /*
+             * Found one valid path/encoding pair.
+             */
+            if ((item = g_new0 (Dryrun_item, 1)) == NULL) {
+                fsexam_errno = ERR_NO_MEMORY;
+                goto done;
+            }
+
+            item->path = path;
+            item->encoding = encoding;
+
+            slist = g_slist_prepend (slist, item);
+
+            g_free (sample);
+            path = NULL;
+            encoding = NULL;
+            sample = NULL;
+
+            metpath = FALSE;
+        }else{
+            if (metpath) {
+                fsexam_errno = ERR_DRYRUN_FILE_INVALID;
+                goto done;
+            }
+
+            if ('/' == *ptr) {
+                path = g_strdup (ptr);
+            }else{
+                path = g_filename_from_uri (ptr, NULL, NULL);
+            }
+
+            if (NULL == path) {
+                fsexam_errno = ERR_DRYRUN_FILE_INVALID;
+                goto done;
+            }
+
+            metpath = TRUE;
+            metcode = FALSE;
+        }
+    }
+
+    if (NULL == slist)
+        fsexam_errno = ERR_DRYRUN_FILE_INVALID;
+    else
+        slist = g_slist_reverse (slist);
+
+    *result = slist;        /* caller must pass in this param */
+    ret = TRUE;
+
+done:
+    g_free (path);
+    g_free (encoding);
+    g_free (sample);
+
+    return ret;
+}
+
+void
+fsexam_dryrun_item_slist_free (GSList *slist)
+{
+    if (NULL == slist)
+        return;
+
+    while (slist != NULL) {
+        Dryrun_item *item = slist->data;
+
+        g_free (item->path);
+        g_free (item->encoding);
+        g_free (item);
+
+        slist = slist->next;
+    }
+
+    g_slist_free (slist);
+
+    return;
+}
+
+/* 
+ * Write one dryrun item into file
+ */
+gboolean
+fsexam_dryrun_puts (FsexamDryrun *info, 
+                    const gchar *fullpath, 
+                    Score score,            /* total score */
+                    GList *encoding_list, 
+                    ConvType convtype)
+{
+    gboolean    ret = TRUE;
+
+    if ((NULL == info) || (NULL == fullpath) || (NULL == encoding_list))
+        return FALSE;
+
+    if (! fsexam_dryrun_write_path (info, fullpath)) {
+        return FALSE;
+    }
+
+    if (score == FAIL){
+        if (! fsexam_dryrun_write_msg (info, 
+                                      _(FSEXAM_DRYRUN_NO_PROPER_ENCODING))){
+            fsexam_errno = ERR_CANNOT_WRITE_DRYRUN;
+            ret = FALSE;
+        }
+    }else if (score == ORIGINAL){
+        if (! fsexam_dryrun_write_msg (info, 
+                                       _(FSEXAM_DRYRUN_NO_NEED_CONVERT))) {
+            fsexam_errno = ERR_CANNOT_WRITE_DRYRUN;
+            ret = FALSE;
+        }
+    }else{
+        while (encoding_list) {
+            Encoding  *encoding = NULL;
+            gchar     *sample = NULL;
+            
+            encoding = (Encoding *)encoding_list->data; 
+            encoding_list = g_list_next (encoding_list);
+
+            if ((encoding->score == FAIL) || (encoding->score == ORIGINAL)){
+                continue;
+            }
+
+            if (convtype == ConvName) {
+                sample = encoding->u.converted_text;
+            }else{
+                sample = encoding->u.contents;
+            }
+
+            if (! fsexam_dryrun_write_candidate (info, 
+                                    id2encoding (encoding->encodingID),
+                                    sample)) {
+                fsexam_errno = ERR_CANNOT_WRITE_DRYRUN;
+                ret = FALSE;
+            }
+/*      BIG bug: double free
+            if (convtype != ConvName)
+                g_free (sample);
+*/
+        }
+    }
+
+    return ret;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-dryrun.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,141 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_DRYRUN_H
+#define _FSEXAM_DRYRUN_H
+
+#include <glib-object.h>
+
+/* --- Interface for handling dry run result --- */
+#define FSEXAM_TYPE_DRYRUN                  (fsexam_dryrun_get_type ())
+#define FSEXAM_DRYRUN(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSEXAM_TYPE_DRYRUN, FsexamDryrun))
+#define FSEXAM_IS_DRYRUN(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSEXAM_TYPE_DRYRUN))
+#define FSEXAM_DRYRUN_GET_INTERFACE(inst)   (G_TYPE_INSTANCE_GET_INTERFACE ((inst), FSEXAM_TYPE_DRYRUN, FsexamDryrunInterface)) 
+
+typedef struct _FsexamDryrun FsexamDryrun;  /* dummy object */
+typedef struct _FsexamDryrunInterface FsexamDryrunInterface;
+
+struct _FsexamDryrunInterface {
+    GTypeInterface parent;
+
+    /* write one string, may contain '\n' or not */
+    gboolean (*write) (FsexamDryrun *self, const gchar *string);
+    /* read one line */
+    gboolean (*read) (FsexamDryrun *self, gchar *buf, guint size);
+};
+
+GType    fsexam_dryrun_get_type (void);
+gboolean fsexam_dryrun_write (FsexamDryrun *self, const gchar *string);
+gboolean fsexam_dryrun_read (FsexamDryrun *self, gchar *buf, guint size);
+
+/* --- File implementation of the Interface --- */
+#define FSEXAM_TYPE_DRYRUN_FILE             (fsexam_dryrun_file_get_type ())
+#define FSEXAM_DRYRUN_FILE(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSEXAM_TYPE_DRYRUN_FILE, FsexamDryrunFile))
+#define FSEXAM_DRYRUN_FILE_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), FSEXAM_TYPE_DRYRUN_FILE, FsexamDryrunFileClass))
+#define FSEXAM_IS_DRYRUN_FILE(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSEXAM_TYPE_DRYRUN_FILE))
+#define FSEXAM_IS_DRYRUN_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSEXAM_TYPE_DRYRUN_FILE))
+#define FSEXAM_DRYRUN_FILE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), FSEXAM_TYPE_DRYRUN_FILE, FsexamDryrunFileClass))
+
+typedef struct _FsexamDryrunFile FsexamDryrunFile;
+typedef struct _FsexamDryrunFileClass FsexamDryrunFileClass;
+
+struct _FsexamDryrunFile {
+    GObject parent;
+
+    FILE *fp;
+};
+
+struct _FsexamDryrunFileClass {
+    GObjectClass parent;
+};
+
+GType fsexam_dryrun_file_get_type (void);
+FsexamDryrun *fsexam_dryrun_file_new (const gchar *file, gboolean);
+
+/* --- Widget implementation for Dryrun Interface --- */
+#define FSEXAM_TYPE_DRYRUN_BUFFER           (fsexam_dryrun_buffer_get_type ())
+#define FSEXAM_DRYRUN_BUFFER(obj)           (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSEXAM_TYPE_DRYRUN_BUFFER, FsexamDryrunBuffer))
+#define FSEXAM_DRYRUN_BUFFER_CLASS(klass)  (G_TYPE_CHECK_CLASS_CAST ((klass), FSEXAM_TYPE_DRYRUN_BUFFER, FsexamDryrunBufferClass))
+#define FSEXAM_IS_DRYRUN_BUFFER(obj)        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSEXAM_TYPE_DRYRUN_BUFFER))
+#define FSEXAM_IS_DRYRUN_BUFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSEXAM_TYPE_DRYRUN_BUFFER))
+#define FSEXAM_DRYRUN_BUFFER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), FSEXAM_TYPE_DRYRUN_BUFFER, FsexamDryrunBufferClass))
+
+typedef struct _FsexamDryrunBuffer FsexamDryrunBuffer;
+typedef struct _FsexamDryrunBufferClass FsexamDryrunBufferClass;
+
+struct _FsexamDryrunBuffer {
+    GObject parent;
+
+    GtkTextBuffer *buffer;
+    guint current_line;  /* used only for reading text from buffer */
+};
+
+struct _FsexamDryrunBufferClass {
+    GObjectClass parent;
+};
+
+GType        fsexam_dryrun_buffer_get_type (void);
+FsexamDryrun *fsexam_dryrun_buffer_new (void);
+FsexamDryrun *fsexam_dryrun_buffer_new_with_buffer (GtkTextBuffer *buffer);
+void         fsexam_dryrun_buffer_set_buffer (FsexamDryrunBuffer *buffer, GtkTextBuffer *buf);
+void         fsexam_dryrun_buffer_clear_buffer (FsexamDryrunBuffer *buffer);
+void         fsexam_dryrun_buffer_set_current_line (FsexamDryrunBuffer *buffer, guint line_no);
+
+
+/* --- Dryrun result content processing API --- */
+#define FSEXAM_DRYRUN_NO_PROPER_ENCODING    "No-proper-encoding"
+#define FSEXAM_DRYRUN_NO_NEED_CONVERT       "No-need-convert"
+
+typedef struct _Dryrun_item Dryrun_item;
+struct _Dryrun_item {
+    gchar *path;
+    gchar *encoding;
+};
+
+/*
+ * Write conversion type into dryrun result file 
+ */
+gboolean fsexam_dryrun_write_convtype (FsexamDryrun *info, ConvType convtype);
+gboolean fsexam_dryrun_get_convtype (FsexamDryrun *info, ConvType *type);
+
+/*
+ *  Write one dryrun item including all candidates
+ */
+gboolean fsexam_dryrun_puts (FsexamDryrun *info, 
+                             const gchar *fullpath, 
+                             Score score, 
+                             GList *encoding_list, 
+                             ConvType convtype);
+gboolean fsexam_dryrun_write_msg (FsexamDryrun *, const gchar *);
+
+/*
+ *  Read dryrun file and proces each item using given handler
+ */
+gboolean fsexam_dryrun_process (FsexamDryrun *info, GSList  **slist);
+void     fsexam_dryrun_item_slist_free (GSList *slist);
+
+#endif //_FSEXAM_DRYRUN_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-encoding-dialog.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,654 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <strings.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <gconf/gconf-client.h>
+#include <glade/glade.h>
+#include <gtk/gtk.h>
+
+#include "fsexam-header.h"
+#include "fsexam-encoding-dialog.h"
+#include "fsexam-preference-dialog.h"
+#include "fsexam-ui.h"
+
+/* the encoding has been selected, will used to update encoding treeview */
+static GSList *selected_encodings = NULL;
+
+/*
+ *  - convert encoding to locale for file(1)
+ *  - convert encoding to cononical name
+ *  - convert encoding to id
+ *  - auto_ef encoding
+ */
+static FsexamEncoding encodings[] = {
+    /* Index                    Charset        Cononical Name   Name                        locale */
+    { FSEXAM_ENCODING_BIG5,     "BIG5",        "BIG5",          N_("Chinese Traditional"),  "zh_TW.BIG5" },
+    { FSEXAM_ENCODING_HKSCS,    "BIG5-HKSCS",  "BIG5HKSCS",     N_("Chinese Traditional(Hong Kong)"),"zh_HK.BIG5HK" },
+    { FSEXAM_ENCODING_CP1250,   "CP1250",      "CP1250",        N_("Central European"),     NULL }, 
+    { FSEXAM_ENCODING_CP1251,   "CP1251",      "CP1251",        N_("Cyrillic"),             NULL },
+    { FSEXAM_ENCODING_CP1252,   "CP1252",      "CP1252",        N_("Western"),              NULL },
+    { FSEXAM_ENCODING_CP1253,   "CP1253",      "CP1253",        N_("Greek"),                NULL },
+    { FSEXAM_ENCODING_CP1254,   "CP1254",      "CP1254",        N_("Turkish"),              NULL },
+    { FSEXAM_ENCODING_CP1255,   "CP1255",      "CP1255",        N_("Hebrew"),               NULL },
+    { FSEXAM_ENCODING_CP1256,   "CP1256",      "CP1256",        N_("Arabic"),               NULL },
+    { FSEXAM_ENCODING_CP1257,   "CP1257",      "CP1257",        N_("Baltic"),               NULL },
+    { FSEXAM_ENCODING_CP1258,   "CP1258",      "CP1258",        N_("Vietnamese"),           NULL },
+    { FSEXAM_ENCODING_CP437,    "CP437",       "CP437",         N_("Western Europe"),       NULL },
+    { FSEXAM_ENCODING_CP737,    "CP737",       "CP737",         N_("Greek"),                NULL },
+    { FSEXAM_ENCODING_CP850,    "CP850",       "CP850",         N_("Western Europe"),       NULL },
+    { FSEXAM_ENCODING_CP852,    "CP852",       "CP852",         N_("Central Europe"),       NULL },
+    { FSEXAM_ENCODING_CP855,    "CP855",       "CP855",         N_("Russian"),              NULL },
+    { FSEXAM_ENCODING_CP857,    "CP857",       "CP857",         N_("Turkish"),              NULL },
+    { FSEXAM_ENCODING_CP860,    "CP860",       "CP860",         N_("Portuguese"),           NULL },
+    { FSEXAM_ENCODING_CP861,    "CP861",       "CP861",         N_("Icelandic"),            NULL },
+    { FSEXAM_ENCODING_CP863,    "CP863",       "CP863",         N_("French Canadian"),      NULL },
+    { FSEXAM_ENCODING_CP865,    "CP865",       "CP865",         N_("Nordic"),               NULL },
+    { FSEXAM_ENCODING_CP866,    "CP866",       "CP866",         N_("Cyrillic/Russian"),     NULL },
+    { FSEXAM_ENCODING_CP869,    "CP869",       "CP869",         N_("Greek"),                NULL },
+    { FSEXAM_ENCODING_CP949,    "CP874",       "CP874",         N_("Thai"),                 NULL },
+    { FSEXAM_ENCODING_CP949,    "CP932",       "CP932",         N_("Japanese"),             NULL },
+//  { FSEXAM_ENCODING_CP949,    "CP936",       "CP936",         N_("Simplified Chinese"),   NULL },
+    { FSEXAM_ENCODING_CP949,    "CP949",       "CP949",         N_("Korean"),               NULL },
+//  { FSEXAM_ENCODING_CP949,    "CP950",       "CP950",         N_("Traditional Chinese"),  NULL },
+    { FSEXAM_ENCODING_eucJP,    "eucJP",       "EUCJP",         N_("Japanese"),             "ja_JP.eucJP" },
+    { FSEXAM_ENCODING_EUC_KR,   "EUC-KR",      "EUCKR",         N_("Korean"),               "ko_KR.EUC" },
+    { FSEXAM_ENCODING_EUC_TH,   "EUC-TH",      "EUCTH",         N_("Thai"),                 NULL },
+    { FSEXAM_ENCODING_EUC_TW,   "EUC-TW",      "EUCTW",         N_("Chinese Traditional"),  "zh_TW.EUC" },
+    { FSEXAM_ENCODING_GB18030,  "GB18030",     "GB18030",       N_("Chinese Simplified"),   "zh_CN.GB18030" },
+    { FSEXAM_ENCODING_GB2312,   "GB2312",      "GB2312",        N_("Chinese Simplified"),   "zh" },
+    { FSEXAM_ENCODING_GBK,      "GBK",         "GBK",           N_("Chinese Simplified"),   "zh_CN.GBK" },
+    { FSEXAM_ENCODING_ISO_2022_CN,  "ISO-2022-CN",   "ISO2022CN",  N_("Chinese Simplified"), "zh" },
+    { FSEXAM_ENCODING_ISO_2022_JP,  "ISO-2022-JP",  "ISO2022JP",  N_("Japanese"),           "ja" },
+    { FSEXAM_ENCODING_ISO_2022_KR,  "ISO-2022-KR",  "ISO2022KR",  N_("Korean"),             "ko" },
+    { FSEXAM_ENCODING_8859_1,   "ISO-8859-1",   "ISO88591",     N_("Western"),              "de_AT.ISO8859-1" },    
+    { FSEXAM_ENCODING_8859_10,  "ISO-8859-10",  "ISO885910",    N_("Nordic"),               NULL },
+    { FSEXAM_ENCODING_8859_11,  "ISO-8859-11",  "ISO885911",    N_("Thai"),                 "th_TH.ISO8859-11"},
+    { FSEXAM_ENCODING_8859_13,  "ISO-8859-13",  "ISO885913",    N_("Baltic"),               "lv_LV.ISO8859-13"},
+    { FSEXAM_ENCODING_8859_14,  "ISO-8859-14",  "ISO885914",    N_("Celtic"),               NULL },
+    { FSEXAM_ENCODING_8859_15,  "ISO-8859-15",  "ISO885915",    N_("Western"),              "de_AT.ISO8859-15"},
+    { FSEXAM_ENCODING_8859_16,  "ISO-8859-16",  "ISO885916",    N_("Romanian"),             NULL },
+    { FSEXAM_ENCODING_8859_2,   "ISO-8859-2",   "ISO88592",     N_("Central European"),     "pl_PL.ISO8859-2" },
+    { FSEXAM_ENCODING_8859_3,   "ISO-8859-3",   "ISO88593",     N_("South European"),       NULL },
+    { FSEXAM_ENCODING_8859_4,   "ISO-8859-4",   "ISO88594",     N_("Baltic"),               NULL },
+    { FSEXAM_ENCODING_8859_5,   "ISO-8859-5",   "ISO88595",     N_("Cyrillic"),             "bg_BG.ISO8859-5" },
+    { FSEXAM_ENCODING_8859_6,   "ISO-8859-6",   "ISO88596",     N_("Arabic"),               NULL },
+    { FSEXAM_ENCODING_8859_7,   "ISO-8859-7",   "ISO88597",     N_("Greek"),                NULL },
+    { FSEXAM_ENCODING_8859_8,   "ISO-8859-8",   "ISO88598",     N_("Hebrew"),               NULL },
+    { FSEXAM_ENCODING_8859_9,   "ISO-8859-9",   "ISO88599",     N_("Turkish"),              "tr_TR.ISO8859-9"},
+    { FSEXAM_ENCODING_JOHAB,    "JOHAB",        "JOHAB",        N_("Korean"),               NULL },
+    { FSEXAM_ENCODING_SJIS,     "SJIS",         "SJIS",         N_("Japanese"),             "ja_JP.PCK" },
+/*   { FSEXAM_ENCODING_UTF_16,   "UTF-16",       "UTF16",        N_("Unicode"),              NULL },
+    { FSEXAM_ENCODING_UTF_16BE, "UTF-16BE",     "UTF16BE",      N_("Unicode"),              NULL },
+    { FSEXAM_ENCODING_UTF_16LE, "UTF-16LE",     "UTF16LE",      N_("Unicode"),              NULL },
+*/
+    { FSEXAM_ENCODING_UTF_8,    "UTF-8",        "UTF8",         N_("Unicode"),              NULL },
+};
+
+static short max_length = sizeof (encodings) / sizeof (encodings[0]);
+
+gchar *
+id2encoding (short id)
+{
+    if ((id < max_length) && (id >= 0))
+        return encodings[id].charset;
+    else
+        g_print (_("Warning: The encoding id %d is greater than max length %d.\n"),
+                 id, 
+                 max_length);
+
+    return NULL;
+}
+
+#define MAX_CODENAME_LEN    63
+
+/* The following characters do not exist in the normalized code names. */
+#define	SKIPPABLE_CHAR(c)	\
+	((c) == '-' || (c) == '_' || (c) == '.' || (c) == '@')
+
+short 
+encoding2id (const gchar *encoding_name)
+{
+    char  s[MAX_CODENAME_LEN + 1];
+    char  *tmp;
+	int   i;
+    short low = 0;
+    short high = max_length - 1;
+    short mid;
+
+    if (encoding_name == NULL)
+        return (short)-1;
+
+    /*
+	 * Normalize a code name, n, by not including skippable characters
+	 * and folding uppercase letters to corresponding lowercase letters.
+	 * We only fold 7-bit ASCII uppercase characters.
+	 */
+	for (i = 0, tmp = (char *)encoding_name; *tmp; tmp++) {
+		if (SKIPPABLE_CHAR(*tmp))
+			continue;
+
+		/* If unreasonably lengthy, we don't support such names. */
+		if (i >= MAX_CODENAME_LEN)
+			return (short)-1;
+
+		s[i++] = (*tmp >= 'a' && *tmp <= 'z') ? 
+                 *tmp - 'a' + 'A' : *tmp;
+	}
+	s[i] = '\0';
+
+    /* binsearch normalized name */
+    while (low <= high) {
+        gint   result;
+    
+        mid = (low + high) / 2;
+        result = g_ascii_strcasecmp (s, encodings[mid].normalized_name);
+
+        if (result == 0)
+            return mid;
+        else if (result > 0)
+            low = mid + 1;
+        else
+            high = mid - 1;
+    }
+
+    g_print (_("Encoding '%s' is not supported.\n"), encoding_name);
+
+    return (short)-1;
+}
+
+gchar *
+encoding_to_locale (const gchar *encoding)
+{
+    gint id = -1;
+
+    id = encoding2id (encoding);
+
+    if (id != -1)
+        return encodings[id].locale;
+    else
+        return NULL;
+}
+
+void
+show_avail_encoding ()
+{
+    gint i;
+
+    g_print (_("The supported encoding list:\n"));
+    for (i = 0; i < max_length; i ++) {
+        g_print ("\t%-15s\t%s\n", encodings[i].charset, _(encodings[i].name));
+    }
+
+    return;
+}
+
+/* Encoding manipulate dialog */
+
+enum {
+    ENCODING_COLUMN_NAME,
+    ENCODING_COLUMN_CHARSET,
+    ENCODING_N_COLUMNS
+};
+
+/*
+ * whether given encoding has in list already or not
+ */
+static gboolean
+encoding_in_selected_list (GSList *list, const gchar *name)
+{
+    GSList  *tmp = list;
+
+    if ((NULL == list) || (NULL == name))
+        return FALSE;
+
+    while (tmp != NULL) {
+        if (g_ascii_strcasecmp (name, (gchar *)tmp->data) == 0)
+            return TRUE;
+
+        tmp = g_slist_next (tmp);
+    }
+
+    return FALSE;
+}
+
+/*
+ *  Update selected encoding TreeView according to selected_encoding
+ */
+static void
+update_selected_tree_model (GtkListStore *store)
+{
+    GSList      *tmp = selected_encodings;
+    GtkTreeIter iter;
+
+    if (NULL == store)
+        return;
+
+    gtk_list_store_clear (store);
+
+    while (tmp != NULL) {
+        short encoding_id = encoding2id (tmp->data);
+        tmp = tmp->next;
+
+        if (encoding_id == -1)
+            continue;
+
+        gtk_list_store_append (store, &iter);
+        gtk_list_store_set (
+                store, &iter,
+                ENCODING_COLUMN_CHARSET, encodings[encoding_id].charset,
+                ENCODING_COLUMN_NAME, _(encodings[encoding_id].name),
+               -1);
+    }
+
+    return;
+}
+
+/*
+ *  Remove the selected encoding after click 'Remove' button
+ *  Just remove encoding from selected_encodings list.
+ */
+static void
+remove_encoding_of_cur_row (GtkTreeModel   *model,
+                            GtkTreePath    *path,
+                            GtkTreeIter    *iter,
+                            gpointer       data)
+{
+    gchar   *charset = NULL;
+    gchar   *name = NULL;
+    
+    gtk_tree_model_get (model, 
+                        iter,
+                        ENCODING_COLUMN_CHARSET, &charset,
+                        ENCODING_COLUMN_NAME, &name,
+                        -1);
+
+    selected_encodings = remove_string_from_slist (selected_encodings, charset);
+
+    g_free (charset);
+    g_free (name);
+
+    return;
+}
+
+/*
+ *  Add current selected encoding 
+ */
+static void
+add_encoding_of_cur_row (GtkTreeModel   *model,
+                         GtkTreePath    *path,
+                         GtkTreeIter    *iter,
+                         gpointer       data)
+{
+    GtkWidget *selected_treeview = data;
+    gchar     *charset = NULL;
+    gchar     *name = NULL;
+
+    gtk_tree_model_get (model, 
+                        iter,
+                        ENCODING_COLUMN_CHARSET, &charset,
+                        ENCODING_COLUMN_NAME, &name,
+                        -1);
+
+    if (! encoding_in_selected_list (selected_encodings, charset)) {
+        GtkTreeModel    *selected_model;
+        GtkTreeIter     selected_iter;
+
+        /* Add new encoding to selected tree view */
+        selected_model = gtk_tree_view_get_model (
+                                    GTK_TREE_VIEW (selected_treeview));
+        gtk_list_store_append (GTK_LIST_STORE (selected_model), &selected_iter);
+        gtk_list_store_set (GTK_LIST_STORE (selected_model), &selected_iter,
+                            ENCODING_COLUMN_CHARSET, charset,
+                            ENCODING_COLUMN_NAME, name,
+                            -1);
+        
+        /* Add new encoding to static gchar *selected_encodings */
+        selected_encodings = g_slist_append (selected_encodings, 
+                                             g_strdup (charset));
+    }
+
+    g_free (charset);
+    g_free (name);
+
+    return;
+}
+
+/*
+ * count the number of selected encoding. used for button sensitive
+ */
+static void
+count_selected_items_func (GtkTreeModel *model,
+                           GtkTreePath  *path,
+                           GtkTreeIter  *iter,
+                           gpointer     data)
+{
+    gint *count = data;
+
+    *count += 1;
+
+    return;
+}
+
+/*
+ *  callback for 'Add' button
+ */
+static void
+add_button_clicked_callback (GtkWidget *button, gpointer data)
+{
+    GtkWidget           *dialog = data;
+    GtkWidget           *treeview = NULL;
+    GtkTreeSelection    *selection = NULL;
+
+    treeview = g_object_get_data (G_OBJECT (dialog), 
+                                "encoding-dialog-available-treeview");
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
+
+    treeview = g_object_get_data (G_OBJECT (dialog), 
+                                "encoding-dialog-displayed-treeview");
+
+    gtk_tree_selection_selected_foreach (selection,
+                                         add_encoding_of_cur_row,
+                                         treeview);
+    
+    return;
+}
+
+/*
+ *  callback for 'Remove' button
+ */
+static void
+remove_button_clicked_callback (GtkWidget *button, gpointer data)
+{
+    GtkWidget           *dialog = data;
+    GtkWidget           *treeview = NULL;
+    GtkTreeSelection    *selection = NULL;
+    GtkListStore        *store = NULL;
+
+    treeview = g_object_get_data (G_OBJECT (dialog), 
+                                  "encoding-dialog-displayed-treeview");
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
+
+    /* Remove from selected_encoding list first */
+    gtk_tree_selection_selected_foreach (selection,
+                                         remove_encoding_of_cur_row,
+                                         NULL);
+
+    /* Then get the reference of store and update it */
+    store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (treeview)));
+    update_selected_tree_model (store);
+
+    return;
+}
+
+/*
+ *  Set the button's sensitivity
+ */
+static void
+available_selection_changed_callback (GtkTreeSelection *selection, 
+                                      gpointer data)
+{
+    GtkWidget   *dialog = data;
+    GtkWidget   *add_button = NULL;
+    gint        count = 0;
+
+    gtk_tree_selection_selected_foreach (selection,
+                                         count_selected_items_func,
+                                         &count);
+
+    add_button = g_object_get_data (G_OBJECT (dialog), "encoding-dialog-add");
+    gtk_widget_set_sensitive (add_button, count > 0);
+
+    return;
+}
+
+/*
+ * Set button's sensitivity.
+ */
+static void
+selected_selection_changed_callback (GtkTreeSelection *selection, gpointer data)
+{
+    GtkWidget   *dialog = data;
+    GtkWidget   *remove_button = NULL;
+    int         count = 0;
+
+    gtk_tree_selection_selected_foreach (selection,
+                                         count_selected_items_func,
+                                         &count);
+
+    remove_button = g_object_get_data (G_OBJECT (dialog), "encoding-dialog-remove");
+
+    gtk_widget_set_sensitive (remove_button, count > 0);
+
+    return;
+}
+
+/*
+ *  Create selected encoding GtkTreeModel
+ */
+static void
+register_selected_encoding_tree_model (GtkListStore *store, 
+                                       GSList *selected_list)
+{
+    GSList      *list = selected_list;
+    GtkTreeIter iter;
+
+    if ((NULL == store) || (NULL == selected_list))
+        return;
+
+    while (list) {
+        short   encoding_id = encoding2id ((gchar *)list->data);
+
+        if (encoding_id != -1) {
+            gtk_list_store_append (store, &iter);
+            gtk_list_store_set (store, &iter,
+                    ENCODING_COLUMN_CHARSET, id2encoding (encoding_id),
+                    ENCODING_COLUMN_NAME, _(encodings[encoding_id].name),
+                    -1);
+        }
+
+        list = g_slist_next (list);
+    }
+
+    return;
+}
+
+/* 
+ * Response call back for Encoding dialog
+ */
+static void
+dialog_response_callback (GtkWidget *window, gint id, gpointer data)
+{
+    GtkWidget *dialog = data;
+
+    if (id == GTK_RESPONSE_OK) {
+        /* 
+         * update encoding list in Preferences dialog 
+         * according to selected_encodings 
+         */
+        fsexam_prefdialog_update_encoding_model (dialog, selected_encodings);
+    }
+
+    /* free selected_encodings */
+    fsexam_slist_free (selected_encodings);
+    selected_encodings = NULL;
+
+    gtk_widget_destroy (GTK_WIDGET (window));
+
+    return;
+}
+
+/* 
+ *  callback for encoding Add event 
+ *      GtkWindow *parent: The preference dialog, used to generate 
+ *                         selected encoding list
+ */ 
+void
+cb_create_encoding_dialog (GtkWidget *parent)
+{
+    gint            i;
+    GladeXML        *xml =  NULL;
+    GtkWidget       *dialog = NULL;
+    GtkWidget       *widget = NULL;
+    GtkListStore    *tree = NULL;
+    GtkTreeIter     iter;
+    GtkTreeViewColumn *column = NULL;
+    GtkCellRenderer   *renderer = NULL;
+    GtkTreeSelection  *selection = NULL;
+
+    if (parent == NULL)
+        return;
+
+    xml = fsexam_gui_load_glade_file (FSEXAM_GLADE_FILE, 
+                                      "encodings-dialog",
+                                      GTK_WINDOW (view->mainwin));
+    if (xml == NULL)
+        return;
+
+    dialog = glade_xml_get_widget (xml, "encodings-dialog");
+    gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CANCEL);
+    g_signal_connect (G_OBJECT (dialog), "response",
+                      G_CALLBACK (dialog_response_callback),
+                      parent);
+
+    /* buttons */
+    widget = glade_xml_get_widget (xml, "add-button");
+    g_object_set_data (G_OBJECT (dialog),
+                       "encoding-dialog-add",
+                       widget);
+    g_signal_connect (G_OBJECT (widget), "clicked",
+                      G_CALLBACK (add_button_clicked_callback),
+                      dialog);
+
+    widget = glade_xml_get_widget (xml, "remove-button");
+    g_object_set_data (G_OBJECT (dialog),
+                       "encoding-dialog-remove",
+                       widget);
+    g_signal_connect (G_OBJECT (widget), "clicked",
+                      G_CALLBACK (remove_button_clicked_callback),
+                      dialog);
+
+    /* Create List Store (Model) */
+    tree = gtk_list_store_new (ENCODING_N_COLUMNS, 
+                               G_TYPE_STRING, 
+                               G_TYPE_STRING);
+
+    /* Add the data into Model */
+    i = 0;
+    while (i < (gint) G_N_ELEMENTS (encodings) - 1) { /* skip 'UTF-8' by -1 */
+        gtk_list_store_append (tree, &iter);
+        gtk_list_store_set (tree, &iter,
+                    ENCODING_COLUMN_CHARSET, encodings[i].charset,
+                    ENCODING_COLUMN_NAME, _(encodings[i].name),
+                    -1);
+        ++i;
+    }
+
+    /* Tree view of avaiable encodings */
+    widget = glade_xml_get_widget (xml, "available-treeview");
+    g_object_set_data (G_OBJECT (dialog),
+                       "encoding-dialog-available-treeview",
+                       widget);
+
+    renderer = gtk_cell_renderer_text_new ();
+    column = gtk_tree_view_column_new_with_attributes (
+                    _("_Description"), renderer,
+                    "text", ENCODING_COLUMN_NAME,
+                    NULL);
+    gtk_tree_view_append_column (GTK_TREE_VIEW (widget), column);
+    gtk_tree_view_column_set_sort_column_id (column, ENCODING_COLUMN_NAME);
+
+    renderer = gtk_cell_renderer_text_new ();
+    column = gtk_tree_view_column_new_with_attributes (
+                    _("_Encoding"), renderer,
+                    "text", ENCODING_COLUMN_CHARSET,
+                    NULL);
+    gtk_tree_view_append_column (GTK_TREE_VIEW (widget), column);
+    gtk_tree_view_column_set_sort_column_id (column, ENCODING_COLUMN_CHARSET);
+
+    gtk_tree_view_set_model (GTK_TREE_VIEW (widget), GTK_TREE_MODEL (tree));
+    g_object_unref (G_OBJECT (tree));
+
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
+    gtk_tree_selection_set_mode (GTK_TREE_SELECTION (selection),
+                                 GTK_SELECTION_MULTIPLE);
+
+    available_selection_changed_callback (selection, dialog);
+    g_signal_connect (G_OBJECT (selection), "changed",
+                      G_CALLBACK (available_selection_changed_callback),
+                      dialog);
+
+    /* Tree view of selected encodings */
+    widget = glade_xml_get_widget (xml, "displayed-treeview");
+    g_object_set_data (G_OBJECT (dialog),
+                       "encoding-dialog-displayed-treeview",
+                       widget);
+    tree = gtk_list_store_new (ENCODING_N_COLUMNS, 
+                               G_TYPE_STRING, 
+                               G_TYPE_STRING);
+    
+    renderer = gtk_cell_renderer_text_new ();
+    column = gtk_tree_view_column_new_with_attributes (
+                    _("_Description"), renderer,
+                    "text", ENCODING_COLUMN_NAME,
+                    NULL);
+    gtk_tree_view_append_column (GTK_TREE_VIEW (widget), column);
+    gtk_tree_view_column_set_sort_column_id (column, ENCODING_COLUMN_NAME);
+
+    renderer = gtk_cell_renderer_text_new ();
+    column = gtk_tree_view_column_new_with_attributes (
+                    _("_Encoding"), renderer,
+                    "text", ENCODING_COLUMN_CHARSET,
+                    NULL);
+    gtk_tree_view_append_column (GTK_TREE_VIEW (widget), column);
+    gtk_tree_view_column_set_sort_column_id (column, ENCODING_COLUMN_CHARSET);
+
+    /* Add the data */
+    selected_encodings = fsexam_prefdialog_get_encoding_list (parent);
+    register_selected_encoding_tree_model (tree, selected_encodings);
+
+    gtk_tree_view_set_model (GTK_TREE_VIEW (widget), GTK_TREE_MODEL (tree));
+    g_object_unref (G_OBJECT (tree));
+    
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
+    gtk_tree_selection_set_mode (GTK_TREE_SELECTION (selection),
+                                 GTK_SELECTION_MULTIPLE);
+
+    selected_selection_changed_callback (selection, dialog);
+    g_signal_connect (G_OBJECT (selection), "changed",
+                      G_CALLBACK (selected_selection_changed_callback),
+                      dialog);
+
+    gtk_dialog_run (GTK_DIALOG (dialog));
+    g_object_unref (G_OBJECT (xml));
+
+    return;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-encoding-dialog.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,110 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#ifndef _FSEXAM_ENCODING_DIALOG_H
+#define _FSEXAM_ENCODING_DIALOG_H
+
+typedef enum
+{
+    FSEXAM_ENCODING_8859_1,	/* 0 */
+    FSEXAM_ENCODING_8859_10,
+    FSEXAM_ENCODING_8859_11,
+    FSEXAM_ENCODING_8859_13,
+    FSEXAM_ENCODING_8859_14,
+    FSEXAM_ENCODING_8859_15,
+    FSEXAM_ENCODING_8859_16,
+    FSEXAM_ENCODING_8859_2,
+    FSEXAM_ENCODING_8859_3,
+    FSEXAM_ENCODING_8859_4,
+    FSEXAM_ENCODING_8859_5,	/* 10 */
+    FSEXAM_ENCODING_8859_6,
+    FSEXAM_ENCODING_8859_7,
+    FSEXAM_ENCODING_8859_8,
+    FSEXAM_ENCODING_8859_9,
+    FSEXAM_ENCODING_BIG5,
+    FSEXAM_ENCODING_HKSCS,
+    FSEXAM_ENCODING_CP1250, 
+    FSEXAM_ENCODING_CP1251,
+    FSEXAM_ENCODING_CP1252,
+    FSEXAM_ENCODING_CP1253,	/* 20 */
+    FSEXAM_ENCODING_CP1254,
+    FSEXAM_ENCODING_CP1255,
+    FSEXAM_ENCODING_CP1256,
+    FSEXAM_ENCODING_CP1257,
+    FSEXAM_ENCODING_CP1258,
+    FSEXAM_ENCODING_CP437,
+    FSEXAM_ENCODING_CP737,
+    FSEXAM_ENCODING_CP775,
+    FSEXAM_ENCODING_CP850,
+    FSEXAM_ENCODING_CP852,	/* 30 */
+    FSEXAM_ENCODING_CP855,
+    FSEXAM_ENCODING_CP857,
+    FSEXAM_ENCODING_CP860,
+    FSEXAM_ENCODING_CP861,
+    FSEXAM_ENCODING_CP862,
+    FSEXAM_ENCODING_CP863,
+    FSEXAM_ENCODING_CP864,
+    FSEXAM_ENCODING_CP865,
+    FSEXAM_ENCODING_CP866,
+    FSEXAM_ENCODING_CP869,	/* 40 */
+    FSEXAM_ENCODING_CP874,
+    FSEXAM_ENCODING_CP935,
+    FSEXAM_ENCODING_CP937,
+    FSEXAM_ENCODING_CP949,
+    FSEXAM_ENCODING_EUC_KR,
+    FSEXAM_ENCODING_EUC_TH,
+    FSEXAM_ENCODING_EUC_TW,
+    FSEXAM_ENCODING_eucJP,
+    FSEXAM_ENCODING_GB18030,
+    FSEXAM_ENCODING_GB2312,	/* 50 */
+    FSEXAM_ENCODING_GBK,
+    FSEXAM_ENCODING_ISO_2022_CN,
+    FSEXAM_ENCODING_ISO_2022_JP,
+    FSEXAM_ENCODING_ISO_2022_KR,
+    FSEXAM_ENCODING_JOHAB,
+    FSEXAM_ENCODING_SJIS,
+    FSEXAM_ENCODING_UTF_16,
+    FSEXAM_ENCODING_UTF_16BE,
+    FSEXAM_ENCODING_UTF_16LE,
+    FSEXAM_ENCODING_UTF_8	/* 60 */
+}FsexamEncodingIndex;
+
+typedef struct {
+    gint    index;              /* Numeric name of encoding */
+    gchar   *charset;           /* External encoding name for user */
+    gchar   *normalized_name;   /* normalized name for comparison */
+    gchar   *name;          	/* Country or region for this charset */
+    gchar   *locale;            /* used for file(1) */
+}FsexamEncoding;
+
+/* encoding & ID map */
+gchar   *id2encoding (short id);
+gchar   *encoding_to_locale (const gchar *encoding_name);
+short   encoding2id (const gchar *encoding_name);
+void    show_avail_encoding (void);
+
+void    cb_create_encoding_dialog (GtkWidget *parent);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-error.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,106 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#include "fsexam-error.h"
+
+#include <stdio.h>
+#include <glib/gi18n.h>
+
+char *errmsg[] = {
+    N_("Success"),                              /* ERR_OK */
+    N_("File name is UTF-8 already"),           /* ERR_NAME_UTF8_ALREADY */
+    N_("File content is UTF-8 already"),        /* ERR_CONTENT_UTF8_ALREADY */
+    N_("New name is the same as old name"),     /* ERR_NAME_SAME */
+
+    /* Error */
+    "holder for ERR_ERROR",
+    N_("File doesn't exist"),                   /* ERR_FILE_NONEXIST */
+    N_("No Memory"),                            /* ERR_NO_MEMORY */
+    N_("Invalid encoding index"),               /* ERR_ENCODING_INDEX_INVALID */
+    N_("Can't open file"),                      /* ERR_CANNOT_OPEN */
+    N_("Can't rename file"),                    /* ERR_CANNOT_RENAME */
+    N_("Can't write file"),                     /* ERR_CANNOT_WRITE */
+    N_("Given encoding list is not suitable"),  /* ERR_NO_PROPER_ENCODING */
+    N_("Is not regular file"),                  /* ERR_NOT_REG_FILE */
+    N_("Symlink target don't exist"),           /* ERR_SYMLINK_TARGET_NOEXIST */
+    N_("Can't convert given file"),             /* ERR_CANNOT_CONVERT */
+    N_("Can't read file"),                      /* ERR_CANNOT_READ */
+    N_("No proper permission"),                     /* ERR_NO_RIGHTS */
+    /* ERR_CANNOT_RM_SYMLINK */
+    N_("Can't relink symbolic link which will break symbolic link"), 
+    /* ERR_LOST_SYMLINK_FILE */
+    N_("Have deleted symbolic link file, but can't recreate it"), 
+    N_("Dryrun file format is invalid"),        /* ERR_DRYRUN_FILE_INVALID */
+    N_("Can't get current directory"),          /* ERR_GET_CWD */
+    N_("Can't change directory"),               /* ERR_CHDIR */
+   
+    /* Warning */
+   "HOLDER for ERR_WARNING", 
+    N_("No history information for current file"),   /* ERR_HIST_NO_ITEM  */
+    N_("No given files or all files are UTF-8 already"), /* ERR_TREE_IS_EMPTY */
+    /* ERR_NAME_EXIST */
+    N_("Same name file exists, will append 'utf-8' as suffix"),
+    N_("Skip hidden file"),                     /* ERR_IGNORE_HIDDEN_FILE */
+    N_("Skip non-local file"),                  /* ERR_IGNORE_REMOTE_FILE */
+    N_("Empty file"),                           /* ERR_EMPTY_FILE */
+    N_("No parameters"),                        /* ERR_NO_PARAMS */
+    N_("Error occurred during filtering"),      /* ERR_FILTER */
+    N_("Don't support this kind of file type"), /* ERR_FILE_TYPE_NOT_SUPPORT */
+    N_("Buffer overflow"),                      /* ERR_BUFFER_OVERFLOW */
+    N_("Canceled the conversion"),              /* ERR_CANCEL_CONVERSION */
+
+    /* Won't Log */
+    "HOLDER for won't log",
+    N_("Can't write dryrun result file"),       /* ERR_CANNOT_WRITE_DRYRUN */
+    N_("Can't open dryrun result file"),        /* ERR_CANNOT_OPEN_DYRRUN */
+    N_("Can't convert filename to URI"),        /* ERR_CANNOT_CONVERT_TO_URI */
+
+    /* MISC*/
+    N_("Unknown error occurred"),                /* ERR_MISC */
+};
+
+//TODO: store the errno in the system.
+ERROR_NO fsexam_errno = ERR_OK;
+
+const char *
+fsexam_error_get_msg ()
+{
+    return _(errmsg[fsexam_errno]);
+}
+
+void
+_fsexam_perror (char *errnofile, int line, char *filename)
+{
+    if (filename != NULL){
+        printf (_("ERROR ==> %s:%d (%s): %s\n"), errnofile, line, 
+                filename, _(errmsg[fsexam_errno]));
+        return;
+    }
+
+    printf (_("ERROR ==> %s:%d %s\n"), errnofile, line, _(errmsg[fsexam_errno]));
+
+    return;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-error.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,112 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_ERROR_H
+#define _FSEXAM_ERROR_H
+
+/*
+ * If change any ERR_*, exec 'make clean' before 'make'
+ */
+typedef enum {
+    /* INFO */
+    ERR_OK =                    0,
+    ERR_NAME_UTF8_ALREADY, 
+    ERR_CONTENT_UTF8_ALREADY,
+    ERR_NAME_SAME,
+    /* ERROR */
+    ERR_ERROR,                  /* 1 */ 
+    ERR_FILE_NONEXIST, 
+    ERR_NO_MEMORY, 
+    ERR_ENCODING_INDEX_INVALID,
+    ERR_CANNOT_OPEN,    
+    ERR_CANNOT_RENAME, 
+    ERR_CANNOT_WRITE,
+    ERR_NO_PROPER_ENCODING,
+    ERR_NOT_REG_FILE,
+    ERR_SYMLINK_TARGET_NOEXIST,
+    ERR_CANNOT_CONVERT, 
+    ERR_CANNOT_READ, 
+    ERR_NO_RIGHTS, 
+    ERR_CANNOT_RM_SYMLINK,
+    ERR_LOST_SYMLINK_FILE,
+    ERR_DRYRUN_FILE_INVALID,
+    ERR_GET_CWD,
+    ERR_CHDIR,
+    /* WARNING */
+    ERR_WARNING, 
+    ERR_HIST_NO_ITEM,
+    ERR_TREE_IS_EMPTY, 
+    ERR_NAME_EXIST, 
+    ERR_IGNORE_HIDDEN_FILE,
+    ERR_IGNORE_REMOTE_FILE,
+    ERR_EMPTY_FILE, 
+    ERR_NO_PARAMS, 
+    ERR_FILTER, 
+    ERR_FILE_TYPE_NOT_SUPPORT, 
+    ERR_BUFFER_OVERFLOW,
+    ERR_CANCEL_CONVERSION,
+    /* Won't write log */
+    ERR_WONNOT_LOG, 
+    ERR_CANNOT_WRITE_DRYRUN,
+    ERR_CANNOT_OPEN_DRYRUN,
+    ERR_CANNOT_CONVERT_TO_URI,
+    /* Misc error */
+    ERR_MISC, 
+} ERROR_NO;
+
+extern ERROR_NO fsexam_errno;
+
+const char  *fsexam_error_get_msg (void);
+
+void        _fsexam_perror (char *errnofile, int line, char *filename);
+
+#define fsexam_perror(filename) \
+        do {        \
+            _fsexam_perror (__FILE__, __LINE__, filename);  \
+        }while (0) 
+
+/*
+ * How to make one elegant error handling machanism?
+ *
+ *      - system error: errno need remember
+ *      - custermized error: fsexam_errno
+ *      - error context: such as 
+ *          - filename, may be more than one file
+ *          - Sometime there is error occured, but we still have
+ *            get some result, such as get_abs_path, we have get
+ *            the abs path, but can't rechange to old_cwd
+ *
+ *      - buffer overflow: do we need check and report?
+ *          - strlcpy, strlcat
+ *          - fgets
+ *
+ *      - Who need to check the input is NULL or not?
+ *          - caller?
+ *          - callee?
+ */
+
+#endif //_FSEXAM_ERROR_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-header.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,61 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_HEADER_H
+#define _FSEXAM_HEADER_H
+
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include <gconf/gconf-client.h>
+#include <glade/glade.h>
+
+#include "fsexam.h"
+#include "fsexam-debug.h"
+#include "auto-detect.h"
+#include "fsexam-helper.h"
+#include "encoding.h"
+#include "fsexam-log.h"
+#include "fsexam-history.h"
+#include "fsexam-dryrun.h"
+#include "fsexam-pref.h"
+#include "fsexam-setting.h"
+#include "fsexam-plaintext.h"
+#include "fsexam-specialfile.h"
+#include "fsexam-tree.h"
+#include "fsexam-error.h"
+#include "file-validate.h"
+#include "fsexam-convname.h"
+#include "fsexam-convcontent.h"
+#include "fsexam-encoding-dialog.h"
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-helper.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,824 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <ctype.h>
+#include <glib.h>
+#include <unistd.h>
+#include <libgen.h>
+#include <limits.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+
+#include <glib/gi18n.h>
+
+#include "fsexam-helper.h"
+#include "fsexam-error.h"
+#include "fsexam.h"
+
+short encoding2id (const gchar *encoding_name);
+
+gboolean
+str_isascii (const gchar *s, gint len)
+{
+    if (NULL == s)
+        return FALSE;
+
+    if (len <= 0)
+        len = strlen (s);
+
+    while ((len-- != 0 )&& (*s != '\0')) {
+        if (isascii((gint)*s++) == 0)
+            return FALSE;
+    }
+
+    return TRUE;
+}
+
+/*
+ * This function will resolve symbolic link also because of getcwd;
+ * Need remove any redundancy '/' in the full path
+ *
+ * Note:
+ *      It is hard to get the symlink path for arbitratry input.
+ *      pwd of bash can do this, but it do that througth 'PWD' env var
+ */
+gchar *
+get_abs_path (const gchar *file)
+{
+    if (file == NULL)
+        return NULL;
+
+    gchar       result[PATH_MAX];
+    gchar       old_cwd[PATH_MAX];
+    struct stat statbuf;
+
+    memset (old_cwd, 0, sizeof (old_cwd));
+
+    if (lstat (file, &statbuf) < 0) {
+        fsexam_errno = ERR_FILE_NONEXIST;
+        return NULL;
+    }
+
+    if (getcwd(old_cwd, sizeof (old_cwd)) == NULL) {
+        fsexam_errno = ERR_GET_CWD;
+        return NULL;
+    }
+
+    memset (result, sizeof (result), 0);
+
+    if (S_ISDIR (statbuf.st_mode)) {        /* is folder */
+        if ((chdir(file)) < 0){
+            fsexam_errno = ERR_CHDIR;
+            goto fail;
+        }
+        
+        if (getcwd(result, PATH_MAX) == NULL)
+            goto fail;
+
+        if (chdir (old_cwd) < 0) {
+            fsexam_errno = ERR_CHDIR;
+        }
+
+        return g_strdup (result);
+    } else {                                /* non folder */
+        gchar *dir = NULL;
+        gchar *base = NULL;
+
+        dir = g_path_get_dirname (file);
+        
+        if (chdir(dir) < 0){
+            fsexam_errno = ERR_CHDIR;
+            g_free (dir);
+            goto fail;
+        }
+
+        g_free (dir);
+
+        if (getcwd(result, PATH_MAX) == NULL){
+            fsexam_errno = ERR_GET_CWD;
+            goto fail;
+        }
+
+        if (chdir (old_cwd) < 0) {
+            fsexam_errno = ERR_CHDIR;
+        }
+
+        base = g_path_get_basename (file);
+
+        if (strcmp (base, ".") != 0){
+            strlcat (result, "/", PATH_MAX);
+            strlcat (result, base, PATH_MAX);
+        }
+
+        g_free (base);
+
+        return g_strdup (result);
+    }
+
+fail:
+    chdir (old_cwd);
+
+    return NULL;
+}
+
+/* 
+ * file exist and is regular | symlink | directory
+ */
+gboolean
+file_exist (gchar *file)
+{
+    struct stat buf;
+
+    if (lstat(file, &buf) == -1){
+        return FALSE;
+    }
+
+    if (!(S_ISREG(buf.st_mode)) && !(S_ISDIR(buf.st_mode)) && 
+            !(S_ISLNK(buf.st_mode))){
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
+/*
+ * Remove trailing space, '\n' and leading space
+ *
+ * Please take care if operate on dynamically allocated storage, 
+ * pointer will change
+ *
+ * g_strstrip is for this
+ */
+/*
+gchar * 
+str_chomp (gchar *str)
+{
+    gint    len, i, j;
+    gchar   *result = NULL;
+
+   if (str == NULL)
+       return NULL;
+
+    len = strlen (str);
+    result = str;
+
+    if (result[len-1] == '\n'){
+        result[len-1] = '\0';
+        len --;
+    }
+
+    i = j = 0;
+    for (; i < len; i++){
+        if (g_ascii_isspace(*(str+i))){
+            continue;
+        }else{
+            break;
+        }
+    }
+
+    if (i == len-1){
+        *result = '\0';
+    }else{
+        for (; i < len; i++){   
+            *(result+j) = *(str+i);
+            j++;
+        }
+        *(result+j) = '\0';
+    }
+
+    return result;
+}
+*/
+
+/*
+ * Remove leading and trailing space
+ * tab return TRUE if there is '\t' before any non-space characters
+ */
+gchar *
+str_compress (gchar *str, gboolean *tab)
+{
+    gchar *end = NULL;
+
+    *tab = FALSE;
+    if (str == NULL)
+        return NULL;
+
+    while (g_ascii_isspace (*str)){
+        if ('\t' == *str)
+            *tab = TRUE;
+
+        str ++;
+    }
+
+    if ('\0' == *str)
+        return NULL;
+
+    end = str + strlen (str) - 1;
+    
+    while (g_ascii_isspace (*end)){
+        *end -- = '\0';
+    }
+
+    return str;
+}
+
+/*
+ * split str to 2 string according to space
+ */
+void 
+str_split (gchar *str, gchar **str1, gchar **str2)
+{
+    gchar *end = str;
+
+    if (str == NULL)
+        return; 
+
+    while ((*end != '\0') && (! g_ascii_isspace (*end))){
+        end ++;
+    }
+
+    if (str1 != NULL)
+        *str1 = g_strndup (str, end - str);
+
+    if (str2 == NULL)
+        return;
+
+    if ('\0' == *end){
+        *str2 = NULL;
+        return;
+    }
+
+    while ((*end != '\0') && (g_ascii_isspace (*end))){
+        end ++;
+    }
+    if ('\0' == *end){
+        *str2 = NULL;
+    }else{
+        *str2 = g_strdup (end);
+    }
+
+    return;
+}
+
+void 
+list_free (gpointer data, gpointer user_data)
+{
+    if (data)
+        g_free ((gchar *)data);
+
+    return;
+}
+
+void 
+list_print (gpointer data, gpointer user_data)
+{
+    if (user_data)
+        fputs (user_data, stdout);
+    
+    fputs ("\t", stdout);
+    fputs (data, stdout);
+    fputs ("\n", stdout);
+
+    return;
+}
+
+/*
+ * split encoding string according to ':' or ';'
+ */
+GSList *
+encoding_string_parse (const gchar *en_text)
+{
+    GSList  *list = NULL;
+    gchar   *cur = NULL;
+
+    if ((en_text == NULL) || (*en_text == '\0'))
+        return NULL;
+
+    cur = (gchar *)en_text;
+    while (TRUE) {
+        if ((*cur == ':') || (*cur == ',')) {
+            *cur = '\0';
+            if (cur != en_text) {
+                if (encoding2id (en_text) == -1) {
+                    g_print (_("Encoding '%s' is not supported\n"),
+                            (char *)en_text);
+                } else {
+                    list = g_slist_append (list, g_strdup (en_text));
+                }
+            }
+            
+            en_text = ++cur;
+        } if (*cur == '\0') {   /* the last element */
+            if (cur != en_text) {
+                if (encoding2id (en_text) == -1) {
+                    g_print (_("Encoding '%s' is not supported\n"),
+                            (char *)en_text);
+                } else {
+                    list = g_slist_append (list, g_strdup (en_text));
+                }
+            }
+
+            break;
+        }else{
+            cur++;
+        }
+    }
+
+    return list;
+}
+
+/*
+ * Get the abs path for symlink's target file
+ */
+gchar *
+get_abs_path_for_symlink_target (const gchar *symlink)
+{
+    gchar   *target = NULL;
+    gchar   *abs_path = NULL;
+    
+    if (symlink == NULL)
+        return NULL;
+
+    target = g_file_read_link (symlink, NULL);
+    if (target == NULL) 
+        return NULL;
+
+    if (*target == '/') {
+        abs_path = get_abs_path (target);
+    } else {
+        gchar   *first = NULL;
+        gchar   *folder = g_path_get_dirname (symlink);    
+       
+        first = g_strdup_printf ("%s/%s", folder, target);
+        abs_path = get_abs_path (first);
+
+        g_free (folder);
+        g_free (first);
+    }
+
+    g_free (target);
+
+    return abs_path;
+}
+
+void 
+hash_print (gpointer key, gpointer value, gpointer data)
+{
+    g_print ("key = %s\n", (gchar *)key ?  (gchar *)key : "NULL");
+    
+    return;
+}
+
+void 
+fsexam_list_free (GList *list)
+{
+    if (NULL == list) 
+        return;
+
+    GList *tmp = list;
+
+    while (tmp){
+        g_free (tmp->data);
+
+        tmp = g_list_next (tmp);
+    }
+
+    g_list_free (list);
+
+    return;
+}
+
+void 
+fsexam_slist_free (GSList *list)
+{
+    if (NULL == list) return;
+
+    GSList *tmp = list;
+
+    while (tmp){
+        g_free (tmp->data);
+
+        tmp = g_slist_next (tmp);
+    }
+
+    g_slist_free (list);
+
+    return;
+}
+
+#define SAMPLE_MIN_LEN  30
+
+/*
+ *  Get one sample line which contain non-ascii characters from contents 
+ *  which is UTF-8 already
+ *  Get one sample line which contain non-ascii characters from contents. 
+ *  contents maybe in various encoding:
+ *      - ASCII: get first non_empty line which > MIN_LEN
+ *      - UTF-8: get the first non_ASCII line > MIN_LEN
+ *      - Other: get the first line which > MIN_LEN
+ */
+
+gchar *
+get_sample_text (const gchar *contents, guint *length)
+{
+    const gchar *start = contents;
+    const gchar *nonempty_line = NULL;
+    const gchar *nonascii_line = NULL;
+    const gchar *nonutf8_line = NULL;
+    gint        nonempty_len = 0;
+    gint        nonascii_len = 0;
+    gint        nonutf8_len = 0; 
+    gint        len;
+
+    if (NULL == contents)
+        return NULL;
+
+    while (TRUE) {
+        len = 0;
+        for (; (*contents != '\0') && (*contents != '\n'); contents++)  
+            len++;
+       
+        /* got one new line */
+        if (len == 0) {
+            if (*contents == '\0') {    /* EOF */
+                if (nonutf8_line != NULL) {
+                    if (length != NULL)
+                        *length = nonutf8_len;
+
+                    return g_strndup (nonutf8_line, nonutf8_len);
+                }else if (nonascii_line != NULL) {
+                    if (length != NULL)
+                        *length = nonascii_len;
+
+                    return g_strndup (nonascii_line, nonascii_len);
+                }else if (nonempty_line != NULL) {
+                    if (length != NULL)
+                        *length = nonempty_len;
+
+                    return g_strndup (nonempty_line, nonempty_len);
+                }else{
+                    if (length != NULL)
+                        *length = 1;
+
+                    return "";          /* all line is empty */
+                }
+            }else{                      /* empty line */
+                start = ++contents;
+            }
+
+            continue;
+        }
+
+        if ((NULL == nonempty_line) 
+                || ((nonempty_len < SAMPLE_MIN_LEN) && (len > nonempty_len))) {
+            nonempty_line = start;
+            nonempty_len = len;
+        }
+
+        if (str_isascii (start, len)) {                 /* pure ASCII line */
+            start = ++contents;         
+        }else if (g_utf8_validate (start, len, NULL)) { /* Non-ASCII UTF-8 */
+            if ((NULL == nonascii_line)
+                    || ((nonascii_len < SAMPLE_MIN_LEN) 
+                        && (len > nonascii_len)) ) {
+                nonascii_line = start;
+                nonascii_len = len;
+            } 
+
+            start = ++contents;         
+        }else{                                          /* Non-UTF8 line */ 
+            if (len > SAMPLE_MIN_LEN) {
+                break; 
+            }else{
+                if ((NULL == nonutf8_line) || (nonutf8_len < len)){
+                    nonutf8_line = start;
+                    nonutf8_len = len;
+                }
+
+                start = ++contents;     /* continue */
+            }
+        }
+    }
+
+    if (length != NULL)
+        *length = len;
+
+    return g_strndup (start, len);
+}
+
+/*
+ * Remove the first element containing user's data
+ */
+GSList *
+remove_string_from_slist (GSList *list, const gchar *str)
+{
+    GSList *tmp = list;
+
+    if ((NULL == list) || (NULL == str))
+        return list;
+
+    while (tmp != NULL) {
+        if (strcmp (tmp->data, str) == 0)
+            break;
+
+        tmp = tmp->next;
+    }
+
+    if (tmp != NULL) {
+        g_free (tmp->data);
+        list = g_slist_delete_link (list, tmp);
+    }
+
+    return list;
+}
+
+GList *
+remove_string_from_list (GList *list, const gchar *str)
+{
+    GList *tmp = list;
+
+    if ((NULL == list) || (NULL == str))
+        return list;
+
+    while (tmp != NULL) {
+        if (strcmp (tmp->data, str) == 0)
+            break;
+
+        tmp = tmp->next;
+    }
+
+    if (tmp != NULL) {
+        g_free (tmp->data);
+        list = g_list_delete_link (list, tmp);
+    }
+
+    return list;
+}
+
+static gboolean
+remove_hash_entry_or_not (gpointer key, gpointer value, gpointer data)
+{
+    return TRUE;
+}
+
+void
+fsexam_hash_remove_all (GHashTable *hash)
+{
+    if (hash == NULL)
+        return;
+
+    g_hash_table_foreach_remove (hash, remove_hash_entry_or_not, NULL);
+
+    return;
+}
+
+/*
+ * is path2 is subpath or parent of path1
+ */
+gboolean
+fsexam_is_subpath (const gchar *path1, const gchar *path2)
+{
+    gint        len;
+    const gchar *tmp;
+
+    if (! g_str_has_prefix (path1, path2))
+        return FALSE;
+
+    len = strlen (path2);
+    tmp = path1 + len;
+
+    if (*tmp == '\0' || *tmp == '/')
+        return TRUE;
+
+    return FALSE;
+}
+
+/*
+ * Get the display name
+ */
+gchar *
+fsexam_filename_display_name (const gchar *filename)
+{
+    gchar *end = NULL;
+    gchar *start = NULL;
+    gchar *result = NULL;
+
+    start = result = g_strdup (filename);
+
+    for (;;) {
+        gboolean valid;
+        valid = g_utf8_validate (start, -1, (const gchar **)&end);
+
+        if (!*end)
+            break;
+
+        if (!valid)
+            *end++ = '?';
+
+        start = end;
+    }
+
+    return result;
+}
+
+/* 
+ * Get the display basename 
+ */
+gchar *
+fsexam_filename_display_basename (const gchar *filename)
+{
+    //gchar *result = g_strdup (filename);
+    
+    return fsexam_filename_display_name (filename);
+    //return result;
+}
+
+/*
+ * Escape string
+ */
+gchar *
+fsexam_string_escape (const gchar *string)
+{
+    gint    len;
+    gchar   *escape = NULL, *tmp = NULL;
+    gchar   *result = NULL;
+
+    if (string == NULL)
+        return NULL;
+
+    len = strlen (string) * 4 + 1;
+    tmp = escape = g_new0 (gchar, len);
+
+    while (*string != '\0') {
+        if (*(guchar *)string >= 0x80) {
+            gchar *t;
+            t = g_strdup_printf ("\\x%X", *(guchar *)string);
+            strlcpy (tmp, t, len);
+            g_free (t);
+            tmp += 4;
+        }else{
+            *tmp++ = *string;
+        }
+
+        string ++;
+    }
+    
+    *tmp = '\0';
+    result = g_strdup (escape);
+    g_free (escape);
+
+    return result;
+}
+
+/*
+ * convert one string to hex format
+ */
+char *
+fsexam_print_hex(const char *str)
+{
+    char *result = NULL;
+    char *tmp;
+
+    if (str == NULL)
+        return "NULL";
+
+    if (*str == '\0')
+        return "";
+
+    result = g_malloc(PATH_MAX);
+    memset(result, 0, PATH_MAX);
+
+    tmp = result;
+    int len = PATH_MAX;
+
+    while (*str) {
+        int ch = (unsigned char)*str++;
+
+        if (ch > 0x7f) {
+            snprintf(tmp, len, "\\x%X", ch);
+            tmp += 4;
+            len -= 4;
+        } else {
+            snprintf(tmp, len, "\\x%02X", ch);
+            tmp += 4;
+            len -= 4;
+        }
+    }
+
+    return result;
+}
+
+
+#ifndef HAVE_STRLCPY
+/*
+ * strlcpy implement copied from opensolaris.org
+ */
+size_t
+strlcpy(char *dst, const char *src, size_t len)
+{
+    size_t slen = strlen(src);
+    size_t copied;
+
+    if (len == 0)
+        return (slen);
+
+    if (slen >= len)
+        copied = len - 1;
+    else
+        copied = slen;
+
+    (void) memcpy(dst, src, copied);
+    dst[copied] = '\0';
+
+    return (slen);
+}
+#endif
+
+#ifndef HAVE_STRLCAT
+/*
+ * strlcat implement copied from opensolaris.org
+ */
+size_t
+strlcat(char *dst, const char *src, size_t dstsize)
+{
+    char *df = dst;
+    size_t left = dstsize;
+    size_t l1;
+    size_t l2 = strlen(src);
+    size_t copied;
+
+    while (left-- != 0 && *df != '\0')
+        df++;
+
+    l1 = df - dst;
+    if (dstsize == l1)
+        return (l1 + l2);
+
+    copied = l1 + l2 > dstsize ? dstsize - l1 - 1 : l2;
+
+    (void) memcpy(dst + l1, src, copied);
+    dst[l1 + copied] = '\0';
+
+    return (l1 + l2);
+}
+#endif
+
+#ifdef HAVE_NO_GLIB_2_8
+/*
+ * Implement g_file_set_contents as it only exist in glib-2.8+
+ */
+gboolean
+g_file_set_contents(const gchar *filename,
+        const gchar *contents,
+        gssize length,
+        GError **error)
+{
+    FILE *fp = NULL;
+    gsize num;
+
+
+    fp = fopen (filename, "wb");
+    if (fp == NULL) {
+        return FALSE;
+    }
+
+    num = fwrite (contents, 1, length, fp);
+    fclose (fp);
+
+    if (num < length)
+        return FALSE;
+
+    return TRUE;
+}
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-helper.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,229 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_HELPER_H_
+#define _FSEXAM_HELPER_H_
+
+#define FREE(p) if (p) {        \
+                    free (p); \
+                    p = NULL;   \
+                }
+
+/*=========================================================================
+ *  Function Name:  str_isascii
+ *
+ *  Parameters:
+ *
+ *  Desc:
+ *      Determine whether the parameter str contains only ascii characters.
+ *
+ *  Return value:
+ *      Return True if str contain only ASCII
+ *      Otherwise False
+ *
+ *  Author:     Yandong Yao 2006/08/24
+ ========================================================================*/
+gboolean str_isascii (const gchar *str, gint len);
+
+/*============================================================================
+ *  Function Name:  get_abs_path
+ *
+ *  Parameters:
+ *      const gchar *file: the path
+ *
+ *  Desc:
+ *      Convert relative path to absolute path, eliminate all '.', '..' 
+ *      in the path
+ *
+ *  Return value:
+ *      If the file exist, then return its absolute path
+ *      if not exist or error occur, then return NULL.
+ *
+ *      As we can't determine whether the path is abs path already unless 
+ *      traverse the whole string, so we always return a new string which 
+ *      you need free when don't use them any more.
+ *
+ *  Author:     Yandong Yao 2006/08/24
+ ============================================================================*/
+gchar * get_abs_path (const gchar *file);
+
+/*============================================================================
+ *  Function Name:  file_exist
+ *
+ *  Parameters:
+ *
+ *  Desc:
+ *      Determine whether file exist and S_ISREG || s_ISDIR || S_ISLNK 
+ *
+ *  Return value:
+ *      Return True if file exist and S_ISREG || s_ISDIR || S_ISLNK 
+ *      Otherwise return False.
+ *
+ *  Author:     Yandong Yao 2006/08/24
+ ===========================================================================*/
+gboolean file_exist (gchar *file);
+
+/*============================================================================
+ *  Function Name:  str_chomp
+ *
+ *  Parameters:
+ *
+ *  Desc:   
+ *      Remove trailing newline '\n'
+ *      Remove heading space
+ *
+ *  Return value:
+ *      Return the original string, won't allocate any new memory
+ *
+ *  Author:     Yandong Yao 2006/08/24
+ ===========================================================================*/
+gchar * str_chomp (gchar *str);
+
+/*====================================================================
+ *  Function Name:  str_compress
+ *
+ *  Parameters:
+ *      gchar *string:  the original string, null terminated.
+ *      gboolean *tab:  whether contain '\t' before the first non-space char
+ *
+ *  Desc:
+ *      str_compress() function will remove any heading or tailing space.
+ *      The modification is in-place, so it will change the original string.
+ *
+ *      if string contain '\t' before first non-space char, then *tab = TRUE;
+ *
+ *  Return value:
+ *      The new start position in original string
+ *
+ *  Exception:
+ *
+ *  Author:     Yandong Yao 2006/08/30
+ ========================================================================*/ 
+gchar *str_compress (gchar *string, gboolean *tab);
+
+/*====================================================================
+ *  Function Name:  str_split
+ *
+ *  Parameters:
+ *      gchar *str: The original string
+ *      gchar **str1: pointer to the first string
+ *      gchar **str2: pointer to the second string
+ *
+ *  Desc:
+ *      Split the original string into two separate string according to space 
+ *      chars. If there is no space,the *str2 = NULL;
+ *
+ *  Return value:
+ *      N/A
+ *
+ *  Author:     Yandong Yao 2006/08/31
+ ========================================================================*/ 
+void str_split (gchar *str, gchar **str1, gchar **str2);
+
+/*===================================================================
+ *  Function Name:  list_free
+ *
+ *  Parameters:
+ *      gpointer data:  the data stored in GList or GSList
+ *      gpointer user_data: arbitrary user data
+ *
+ *  Desc:
+ *      This function is just a wrap of g_free, so that it can be
+ *      used as g_list_foreach to free the glist data memory
+ *
+ *  Return value:
+ *
+ *  Author:     Yandong Yao 2006/10/17
+ ======================================================================*/
+void list_free (gpointer data, gpointer user_data);
+
+void list_print (gpointer data, gpointer user_data);
+
+/*===================================================================
+ *  Function Name:  encoding_string_parse
+ *
+ *  Parameters:
+ *      const gchar *encoding_string: one string contain encoding name 
+ *      separated by ',' or ':'
+ *
+ *  Desc:
+ *      Split ',' or ':' separated encoding string into encoding list
+ *
+ *  Return value:
+ *      GSList *, need free when don't use at more
+ *
+ *  Author:     Yandong Yao 2006/11/15
+  ==========================================================================*/
+GSList *encoding_string_parse (const gchar *encoding_string);
+
+gchar *get_abs_path_for_symlink_target (const gchar *symlink);
+
+void hash_print (gpointer key, gpointer value, gpointer data);
+
+
+void fsexam_list_free (GList *list);
+void fsexam_slist_free (GSList *list);
+void fsexam_hash_remove_all (GHashTable *hash);
+
+gchar   *get_sample_text (const gchar *contents, guint *length);
+
+GList   *remove_string_from_list (GList *list, const gchar *str);
+GSList  *remove_string_from_slist (GSList *list, const gchar *str);
+
+gboolean fsexam_is_subpath (const gchar *path1, const gchar *path2);
+
+/* 
+ * get the display name
+ */
+gchar   *fsexam_filename_display_name (const gchar *filename);
+
+/*
+ * get the display name: this func will anaylize '/'
+ */
+gchar   *fsexam_filename_display_basename (const gchar *filename);
+
+/*
+ * escape string
+ */
+gchar   *fsexam_string_escape (const gchar *string);
+
+gchar   *fsexam_print_hex (const gchar *str);
+
+#ifndef HAVE_STRLCPY
+size_t strlcpy (char *dst, const char *src, size_t len);
+#endif
+
+#ifndef HAVE_STRLCAT
+size_t strlcat (char *dst, const char *src, size_t dstsize);
+#endif
+
+#ifdef HAVE_NO_GLIB_2_8
+gboolean g_file_set_contents (const gchar *filename, const gchar *contents,
+        gssize length, GError **error);
+#endif
+
+#endif //_FSEXAM_HELPER_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-history.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,594 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+#include <time.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <errno.h>
+
+#include "fsexam-debug.h"
+#include "encoding.h"
+#include "fsexam-history.h"
+#include "fsexam-header.h"
+
+/*
+ *  Print one Hist_item data structure 
+ */
+static void
+print_hist_item (gpointer data, gpointer user_data)
+{
+    Hist_item *item = (Hist_item *)data;
+
+    if (item == NULL)
+        return;
+
+    printf ("%d:\t%d -> %d: %s\n", item->serial, item->from_encoding, 
+                           item->to_encoding, 
+                           g_filename_from_uri (item->uri, NULL, NULL));
+
+    return;
+}
+
+/*
+ * Print the whole history info
+ */
+void
+print_history (Hist_info *info)
+{
+    gint current;
+    gint head;
+
+    if (NULL == info)
+        return;
+
+    head = info->head;
+    current = info->current;
+    if (current == -1) {
+        g_print ("History list is empty\n");
+        return;
+    }
+
+    g_print ("History_Info: head = %d, current = %d, max_len = %d," 
+            "last_serial = %d\n", 
+            current, head, 
+            info->max_len, info->last_serial);
+
+    current = (current + 1) % info->max_len;
+    head = (head + 1) % info->max_len;
+
+    while (head != current) {
+        GList *tmp = info->hist_array[head];
+        g_print ("------------------------------------------\n");
+        g_list_foreach (tmp, print_hist_item, NULL);
+
+        head = (head + 1) % info->max_len;
+    }
+
+    return;
+}
+
+static void 
+release_each_item (gpointer data_ptr, gpointer p)
+{
+    Hist_item *h = (Hist_item *) data_ptr;
+
+    if (h == NULL)
+        return;
+
+    g_free (h->uri);
+    g_free (h);
+
+    return;
+}
+
+/*
+ *  free the memory for Hist_item array list
+ */
+static void
+release_hist_array (Hist_info *info)
+{
+    gint head, current;
+
+    if (NULL == info)
+        return;
+
+    head = info->head;
+    current = info->current;
+
+    if (current == -1)
+        return;
+
+    while (current != head) {
+        g_list_foreach (info->hist_array[current], release_each_item, NULL);
+        g_list_free (info->hist_array[current]);
+        
+        current = (current + info->max_len - 1) % info->max_len;
+    }
+
+    /* restore to orignal state */
+    info->head = 0;
+    info->current = -1;
+    info->last_serial = 0;
+
+    return;
+}
+
+/* 
+ * when current catch up head, need free some of space, currently hardcode
+ * free 1/3 of space.
+ */
+static void
+reclaim_hist_elements (Hist_info *info)
+{
+    gint newhead, current;
+
+    if (NULL == info)
+        return;
+
+    newhead = (info->head + info->max_len / 3) % info->max_len;
+    current = newhead;
+
+    while (current != info->head) {
+        g_list_foreach (info->hist_array[current], release_each_item, NULL);
+        g_list_free (info->hist_array[current]);
+        info->hist_array[current] = NULL;
+
+        current = (current + info->max_len - 1) % info->max_len;
+    }
+
+    info->head = newhead;
+
+    return;
+}
+
+/*
+ *  Store one Hist_item into history stream
+ */
+static void 
+serialize_history_item (gpointer data_ptr, gpointer fp)
+{
+    FILE        *stream = (FILE *) fp;
+    Hist_item   *h = (Hist_item *) data_ptr;
+
+    if (VALID_CONVTYPE (h->convtype)) {
+        fprintf (stream, "%ud\27%d\27%d\27%d\27%s\n", 
+                 h->serial, 
+                 h->convtype, 
+                 h->from_encoding, 
+                 h->to_encoding, 
+                 h->uri);
+    }
+ 
+    return;
+}
+
+/* Initialize in-memory structure from disk file */
+static void
+deserialize_history_data (Hist_info *hist_info)
+{
+    Hist_item   *item = NULL;
+    gchar       linebuf[4096];
+    gint32      prev_serial = -1;
+    gint32      current = -1;
+    gboolean    first = TRUE;
+    
+    if ((NULL == hist_info) || (NULL == hist_info->fp)) {
+        g_print ("deserialize_history_data: file pointer is NULL\n");
+        return;
+    }
+
+    memset (linebuf, 0, sizeof(linebuf));
+
+    while ( fgets (linebuf, sizeof(linebuf), hist_info->fp) ) 
+    {
+        gchar    *serial = NULL;
+        gchar    *conv = NULL;
+        gchar    *from_encoding = NULL;
+        gchar    *to_encoding = NULL;
+        gchar    *uri = NULL;
+        gchar    *last_char = NULL;
+
+        if ( linebuf [sizeof(linebuf)-1] != '\0' &&
+             linebuf [sizeof(linebuf)-1] != '\n')
+        {
+            memset (linebuf, 0, sizeof(linebuf));
+            continue;       /* overflow */
+        }
+
+	if (linebuf[strlen (linebuf) - 1] == '\n')
+        	linebuf [strlen(linebuf)-1] = '\0';
+
+        serial = strtok_r (linebuf, "\27", &last_char);
+        conv = strtok_r (NULL, "\27", &last_char);
+        from_encoding = strtok_r (NULL, "\27", &last_char);
+        to_encoding = strtok_r (NULL, "\27", &last_char);
+        uri = last_char;
+
+        if (!serial || !conv || !from_encoding || !to_encoding || !uri)
+            continue;
+
+        item = g_new0 (Hist_item, 1);
+
+        item->serial = atoi (serial);
+        item->convtype = atoi (conv);
+        item->from_encoding = atoi (from_encoding);
+        item->to_encoding = atoi (to_encoding);
+        item->uri = g_strdup (uri);
+
+        if ((first) || (item->serial != prev_serial)) {
+            if (first) {
+                first = FALSE;
+                current = 1;
+            }else{
+                current = (current + 1) % hist_info->max_len;
+
+                /* current catch up head, free space */
+                if (current == hist_info->head) { 
+                    reclaim_hist_elements (hist_info);
+                }
+            }
+
+            prev_serial = item->serial;
+
+            hist_info->hist_array[current] = g_list_append (
+                                        hist_info->hist_array[current], 
+                                        item);
+        }else{  /* The same pass of action, won't increment current */
+            hist_info->hist_array[current] = g_list_append (
+                                        hist_info->hist_array[current], 
+                                        item);
+        }
+    }
+
+    if (current == -1) {        /* empty history */
+        hist_info->head = 0;
+        hist_info->current = -1;
+        hist_info->last_serial = 0;
+    }else{
+        Hist_item *item = (Hist_item *)(hist_info->hist_array[current])->data;
+        hist_info->current = current;
+        hist_info->last_serial = item->serial;
+    }
+
+    return;
+}
+
+/* write in-memory hist info into disk file */
+static gboolean
+serialize_history_data (Hist_info *info)
+{
+    gint head;
+    gint current;
+
+    if (NULL == info)
+        return FALSE;
+
+    if (! info->changed)
+        return TRUE;
+
+    if (info->current == -1)
+        return TRUE;
+
+    /* skip the head, cause head always pointer to NULL */
+    head = (info->head + 1) % info->max_len;
+    current = (info->current + 1) % info->max_len;
+
+    while (head != current) {
+        g_list_foreach (info->hist_array[head], 
+                        serialize_history_item, 
+                        info->fp);
+
+        head = (head + 1) % info->max_len;
+    }
+
+    return TRUE;
+}
+
+/*
+ * Remove the last array element in history array
+ */
+void
+fsexam_history_remove_last (Hist_info *info)
+{
+    gint      current;
+
+    if (NULL == info)
+        return;
+
+    current = info->current;
+
+    if (current == -1)
+        return;
+
+    g_list_foreach (info->hist_array[current], release_each_item, NULL);
+    g_list_free (info->hist_array[current]);
+
+    info->changed = TRUE;
+    info->hist_array[current] = NULL;
+
+    info->current = (current + info->max_len - 1) % info->max_len;
+
+    if (info->current == info->head) { /* empty now */
+        info->head = 0;
+        info->current = -1;
+        info->last_serial = 0;
+    } else {
+        Hist_item *item = (info->hist_array[info->current])->data;
+        info->last_serial = item->serial;
+    }
+
+    return;
+}
+
+/*
+ *  Get the last conversion list in history file
+ *      For archive or compress file, we only get the compress or archive 
+ *      file name
+ */
+GList *
+fsexam_history_get_last_list (Hist_info *info, ConvType *conv_type)
+{
+    GList       *file_list = NULL; 
+    GList       *hist_list = NULL;
+    GHashTable  *special_file_hash = NULL;
+    Hist_item   *item = NULL;
+
+    if (info == NULL)
+        return NULL;
+
+    if ((hist_list = info->hist_array[info->current])== NULL)
+        return NULL;
+
+    if (conv_type != NULL) {
+        item = hist_list->data;
+        *conv_type = item ? item->convtype : ConvInvalid;
+    }
+
+    while (hist_list) {
+        gchar *filename = NULL;
+
+        item = hist_list->data;
+        filename = g_filename_from_uri (item->uri, NULL, NULL);
+
+        if ((item->convtype == ConvNameSpecial) 
+                || (item->convtype == ConvContentSpecial)) {
+            gint  len = 0;
+            gchar *tmp = filename;
+
+            if (special_file_hash == NULL) {
+                special_file_hash = g_hash_table_new_full (
+                        g_str_hash, 
+                        g_str_equal,
+                        (GDestroyNotify) g_free,
+                        NULL);
+            }
+            
+            while ((*filename != '\t') && (*filename != '\0')) {
+                filename ++;
+                len ++;
+            }
+
+            filename = g_strndup (tmp, len);
+            g_free (tmp);
+
+            if (! g_hash_table_lookup (special_file_hash, filename)) {
+                file_list = g_list_prepend (file_list, g_strdup (filename));
+                g_hash_table_insert (special_file_hash, filename, (gchar *)-1);
+            }
+        }else{
+            file_list = g_list_prepend (file_list, filename);
+        }
+
+
+        hist_list = g_list_next (hist_list);
+    }
+
+    if (special_file_hash != NULL) {
+        g_hash_table_destroy (special_file_hash);
+    }
+
+    return file_list;
+}
+
+/*
+ * put a history item in the info->histlist.
+ */
+void
+fsexam_history_put (Hist_info *info, 
+                    ConvType convtype,
+                    const gchar *filename, 
+                    gint from_encoding,
+                    gint to_encoding,
+                    gboolean same_serial)
+{
+    if ((NULL == filename) || (NULL == info))
+        return;
+
+    Hist_item *h = g_new0 (Hist_item, 1);
+
+    h->convtype = convtype;
+    h->from_encoding = from_encoding;
+    h->to_encoding = to_encoding;
+    h->uri = g_filename_to_uri (filename, NULL, NULL);
+
+    if (! same_serial) {
+        info->last_serial++;
+        if (info->current == -1)
+            info->current = 1;
+        else
+            info->current = (info->current + 1) % info->max_len;
+
+        if (info->current == info->head) {
+            reclaim_hist_elements (info);
+        }
+        
+    }
+
+    h->serial = info->last_serial;
+    info->hist_array[info->current] = g_list_append (
+                                            info->hist_array[info->current], 
+                                            h);
+
+    info->changed = TRUE;
+    
+    return;
+}
+
+/*
+ * If the file specified by filename exist and open properly, 
+ * deserialize the data from file to list of History_items.
+ */
+Hist_info *
+fsexam_history_open (const gchar *filename, gint max_len)
+{
+    struct stat stat_buf;
+    Hist_info *info = NULL;
+
+    if (NULL == filename)
+        return NULL;
+    
+    info = g_new0 (Hist_info, 1);
+
+    if (stat (filename, &stat_buf) == -1)
+        info->fp = fopen (filename, "w+b");     /* create file if not exist */
+    else
+        info->fp = fopen (filename, "r+b");     /* open for update */
+
+    /* allocate hist_array */
+    info->max_len = max_len;
+    info->hist_array = g_new0 (GList *, info->max_len);
+
+    /* Initial state of Hist_info */
+    info->head = 0;
+    info->current = -1;
+    info->last_serial = 0;
+    info->changed = FALSE;
+
+    deserialize_history_data (info);    /* init history array */
+
+    if (fsexam_debug () & FSEXAM_DBG_HISTORY) {
+        print_history (info);
+    }
+    
+    return info;
+}
+
+/*
+ * During search in the history list, we only differentiate 
+ * ConvName and non-ConvName
+ */
+Hist_item *
+fsexam_history_search (Hist_info *info, const gchar *path, gboolean convname)
+{
+    if ((NULL == info) || (NULL == path))
+        return NULL;
+
+    Hist_item   *item = NULL;
+    gint        current = info->current;
+    gint        head = info->head;
+    gchar       *path_uri = NULL;
+
+    if (current == -1)
+        return NULL;
+
+    path_uri = g_filename_to_uri (path, NULL, NULL);
+
+    while (current != head) {
+        GList *one_pass = info->hist_array[current];
+
+        while (one_pass) {
+            Hist_item   *tmp = (Hist_item *)one_pass->data;
+            if ((tmp == NULL) || (tmp->uri == NULL))
+                continue;
+            
+            if ((strcmp (tmp->uri , path_uri) == 0)
+                    && ((convname && ((tmp->convtype == ConvName) 
+                                    || (tmp->convtype == ConvNameSpecial))) 
+                        || (!convname 
+                                    && (tmp->convtype != ConvName) 
+                                    && (tmp->convtype != ConvNameSpecial)))) {
+                item = tmp;                             /* found match */
+            }
+
+
+            if (item != NULL)
+                break;
+            
+            one_pass = g_list_next (one_pass);
+        }
+
+        if (item != NULL)
+            break;
+
+        current = (current - 1 + info->max_len) % info->max_len;
+    }
+
+    g_free (path_uri);
+
+    return item;
+}
+
+/* 
+ * Get the latest serial
+ */
+gint32
+fsexam_history_get_serial (Hist_info *info)
+{
+    if (NULL == info)
+        return -1;
+
+    return info->last_serial;
+}
+
+/* 
+ * Serialize list of History_items, and save to info->fp.
+ * At last, close info->fp, and release info->histlist.
+ */
+gboolean
+fsexam_history_close (Hist_info *info)
+{
+    if (info->fp) {
+        fseek (info->fp, SEEK_SET, 0);
+        serialize_history_data (info);      /* save data into disk */
+        fclose (info->fp);
+    }
+
+    release_hist_array (info);
+
+    g_free (info->hist_array);
+    g_free (info);
+
+    return TRUE;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-history.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,89 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _FSEXAM_HISTORY_
+#define _FSEXAM_HISTORY_
+
+#define HIST_LEN 100
+
+typedef struct _History_item
+{
+    gint32    serial;           /* used by undo */
+    ConvType  convtype;
+    gint      from_encoding;
+    gint      to_encoding;
+    gchar     *uri;             /* always is uri */
+}Hist_item;
+
+/* 
+ * defined to History_info in header file 
+ *
+ * 1) Empty state:
+ *      head = 0;
+ *      current = -1;
+ *      last_serial = 0;
+ *
+ * 2) Only one element:
+ *      head = 0;
+ *      current = -1
+ *
+ * 3) Full
+ *      current + 1 == head
+ */
+struct _History_info
+{
+    FILE      *fp;              /* FILE stream pointer for ~/.fsexam.history */
+    GList     **hist_array;     /* the list of History_item */
+    gint32    max_len;         /* The total length of history */
+    gint32    head;             /* always point to NUL element as condition  */
+    gint32    current;          /* the last used element */
+    gint32    last_serial;
+    gboolean  changed;
+};
+
+typedef struct _History_info Hist_info;
+
+/* 
+ * to make life easier, history use uri internally 
+ * both in disk and in memory 
+ */
+
+Hist_info * fsexam_history_open (const gchar *filename, gint max_len);
+gboolean    fsexam_history_close (Hist_info *);
+void        fsexam_history_remove_last (Hist_info *);
+gint32      fsexam_history_get_serial (Hist_info *info);
+GList     * fsexam_history_get_last_list (Hist_info *info, ConvType *type);
+Hist_item * fsexam_history_search (Hist_info *info, 
+                                   const gchar *path, 
+                                   gboolean convname);
+void        fsexam_history_put (Hist_info *,
+                                ConvType convtype,
+                                const gchar *filename,
+                                gint from_encoding,
+                                gint to_encoding,
+                                gboolean same_serial);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-log.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,173 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <stdio.h>
+
+#include "encoding.h"
+#include "fsexam-log.h"
+#include "fsexam-error.h"
+#include "fsexam-helper.h"
+
+static gboolean log_puts (Log_info *info, 
+                          const gchar *category, 
+                          const gchar *filename, 
+                          const gchar *msg);
+
+Log_info *
+fsexam_log_open (const gchar *logfile)
+{
+    Log_info *log_info = NULL;
+
+    if (NULL == logfile)
+        return NULL;
+
+    log_info = g_new0 (Log_info, 1);
+
+    log_info->fp = fopen (logfile, "a");
+    if (log_info->fp == NULL){
+        fsexam_errno = ERR_CANNOT_OPEN;
+    };
+
+    return log_info;
+}
+
+static gboolean
+log_puts (Log_info *info, 
+          const gchar *category, 
+          const gchar *filename, 
+          const gchar *msg)
+{
+    gint ret;
+
+    if (filename) {
+        if (g_utf8_validate (filename, -1, NULL)) {
+            ret = fprintf (info->fp, "%s %s: %s\n", 
+                           category, 
+                           filename, 
+                           msg ? msg : "");
+        }else{
+            gchar *uri = g_filename_to_uri (filename, NULL, NULL);
+            ret = fprintf (info->fp, "%s %s: %s\n", 
+                           category, 
+                           uri, 
+                           msg ? msg : "");
+            g_free (uri);
+        }
+    }else{
+        ret = fprintf (info->fp, "%s %s\n", category, msg ? msg : "");
+    }
+
+    if (ret < 0) {
+        fsexam_errno = ERR_CANNOT_WRITE;
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
+gboolean 
+fsexam_log_puts (Log_info *info, const gchar *filename, const gchar *msg)
+{
+    gboolean    ret = TRUE;
+    const char  *messages = NULL;
+
+    if ((info == NULL) || (info->fp == NULL)) {
+        return FALSE;
+    }
+
+    if (msg == NULL)
+        messages = fsexam_error_get_msg ();
+    else
+        messages = msg;
+
+    if (fsexam_errno < ERR_ERROR) {
+        /* Information */
+        ret = log_puts (info, LOG_INFO, filename, messages);
+    }else if (fsexam_errno < ERR_WARNING) {
+        /* ERROR */
+        ret = log_puts (info, LOG_ERROR, filename, messages);
+    }else if (fsexam_errno < ERR_WONNOT_LOG) {
+        /* WARNING */
+        ret = log_puts (info, LOG_WARNING, filename, messages);
+    }else if (fsexam_errno < ERR_MISC) {
+        /* won't log */
+    }else{
+        /* unknow error */
+        ret = log_puts (info, LOG_ERROR, filename, _("Unknown error occurred"));
+    }
+
+    return ret;
+}
+
+gboolean
+fsexam_log_puts_folder_and_name (Log_info *info, 
+                                 const gchar *dirname, 
+                                 const gchar *filename, 
+                                 const gchar *msg)
+{
+    gchar     *fullpath = NULL;
+    gboolean  ret;
+
+    if ((NULL == info) || (NULL == info->fp))
+        return FALSE;
+
+    fullpath = g_strdup_printf ("%s/%s", dirname, filename);
+    if (fullpath == NULL)
+        return FALSE;
+
+    ret = fsexam_log_puts (info, fullpath, msg);
+
+    g_free (fullpath);
+
+    return ret;
+}
+
+void
+fsexam_log_flush (Log_info *info)
+{
+    if (info == NULL || info->fp == NULL)
+        return;
+
+    fflush (info->fp);
+
+    return;
+}
+
+void 
+fsexam_log_close (Log_info *info)
+{
+    if ((info == NULL) || (info->fp == NULL))
+        return;
+
+    fclose (info->fp);
+
+    return;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-log.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,90 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_LOG_H
+#define _FSEXAM_LOG_H
+
+/*
+ * What is need log and what is not.
+ *
+ * The problem is that when we want to write log/mes info to the
+ * terminal, we need the fullpath, while the subcoponent of fullpath
+ * may contain NON-UTF8 characters.
+ *
+ * We can always met with such problem if we have no rights to 
+ * modify filename on the disk, but we can always reduce this kind
+ * of problem as far as possible.
+ *
+ * So we defer the error msg during constructing tree and handle them
+ * during convertsion to ensure the path name conatin no non-utf8 name
+ * as far as possible.
+ *
+ *  - File doesn't exist
+ *
+ *  - File Type Not Supported
+ * 
+ *  - No History Item:
+ *      Display in log file when there is no history info.
+ *
+ *  -----------------------------------------------------
+ *  - Symlink target doesn't exist: 
+ *      the target file does't exist: get_abs_path_for_symlink_target == NULL
+ *      log when traverse tree and after we convert symlink's filename
+ *      Restore: 
+ *
+ *  - UTF-8 already:    
+ *      Restore: Don't display such kind of error info, cause it is proper 
+ *      behavior
+ *
+ *  - Remote file
+ *
+ *  - Hidden file
+ *
+ */
+
+typedef struct _Log_info Log_info;
+struct _Log_info {
+    FILE *fp;
+};
+
+#define LOG_INFO    "(II)"
+#define LOG_WARNING "(WW)"
+#define LOG_ERROR   "(EE)"
+
+Log_info *  fsexam_log_open (const gchar *logfile);
+gboolean    fsexam_log_puts (Log_info *info, 
+                             const gchar *filename, 
+                             const gchar *msg);
+gboolean    fsexam_log_puts_folder_and_name (Log_info *info, 
+                             const gchar *dirname, 
+                             const gchar *filename, 
+                             const gchar *msg);
+
+void        fsexam_log_flush (Log_info *info);
+void        fsexam_log_close (Log_info *info);
+
+#endif //_FSEXAM_LOG_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-plaintext.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,237 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <locale.h>
+
+#include <glib.h>
+
+#include "fsexam-header.h"
+#include "fsexam-plaintext.h"
+
+#define FILE_CMD    "/usr/bin/file"
+
+static gchar * 
+get_utf8_locale (void)
+{
+    gchar       buf[50];
+    FILE        *fp = NULL;
+    gchar       **argv = NULL;
+    GError      *error = NULL;
+    gint        child_stdout;
+    gboolean    find = FALSE;
+
+    memset (buf, 0, sizeof (buf));
+
+    argv = g_new0 (gchar *, 3);
+    argv[0] = "/usr/bin/locale"; 
+    argv[1] = "-a";
+    argv[2] = NULL;
+
+    if (!g_spawn_async_with_pipes (NULL, argv, NULL,
+                0, 	/* GSpawnFlags */
+                NULL,   /* child setup func */
+                NULL,   /* user data */
+                NULL,   /* pid */
+                NULL,
+                &child_stdout,
+                NULL,
+                &error)) {
+        g_print (error->message);
+        goto done;
+    }
+
+    if ((fp = fdopen (child_stdout, "r")) == NULL) {
+        g_print (_("Can't open pipe file descriptor.\n"));
+        goto done;
+    }
+
+    while (fgets (buf, sizeof (buf), fp) != NULL) {
+        if (buf[strlen (buf) - 1] == '\n')
+            buf[strlen (buf) -1] = '\0';
+
+        if (g_str_has_suffix (buf, "UTF-8")) {
+            find = TRUE;
+            break;
+        }
+    }
+
+done:
+    if (error != NULL)
+        g_error_free (error);
+
+    if (fp != NULL)
+        fclose (fp);
+
+    g_free (argv);
+
+    if (! find) {
+        g_print (_("The system has no UTF-8 locale\n"));
+        return NULL;
+    }
+
+    return g_strdup (buf);
+}
+
+static gboolean
+is_plain_text_by_locale (const gchar *name, const gchar *locale)
+{
+    gchar       buf[256];
+    FILE        *fp = NULL;
+    gchar       **argv = NULL;
+    gchar       **envp = NULL;
+    GError      *error = NULL;
+    gint        child_stdout;
+    gboolean    retval = FALSE;
+
+    argv = g_new0 (gchar *, 3);
+    argv[0] = FILE_CMD;
+    argv[1] = (gchar *) name;
+    argv[2] = NULL;
+
+    envp = g_new0 (gchar *, 4);
+    envp[0] = "LC_ALL=";
+    envp[1] = "LC_MESSAGES=C";
+    if (locale) {
+        envp[2] = g_strdup_printf ("LC_CTYPE=%s", locale);
+    }else{
+        envp[2] = NULL;
+    }
+    envp[3] = NULL;
+
+    if (!g_spawn_async_with_pipes (NULL, argv, envp,
+                0, 	    /* GSpawnFlags */
+                NULL,   /* child setup func */
+                NULL,   /* user data */
+                NULL,   /* pid */
+                NULL,
+                &child_stdout,
+                NULL,
+                &error)) {
+        g_print (error->message);
+        goto done;
+    }
+
+    if ((fp = fdopen (child_stdout, "r")) == NULL) {
+        g_print (_("Can't open pipe file descriptor.\n"));
+        goto done;
+    }
+
+    memset (buf, 0, sizeof (buf));
+    fgets (buf, sizeof (buf), fp);
+
+    if (fsexam_debug () & FSEXAM_DBG_PLAIN_TEXT) {
+        gchar *lc_all = NULL;
+        gchar *lc_ctype = NULL;
+
+        lc_all = getenv ("LC_ALL");
+        setenv ("LC_ALL", "", TRUE);    /* unset LC_ALL to get LC_CTYPE */
+
+        if (locale == NULL)
+            lc_ctype = setlocale (LC_CTYPE, NULL);
+        else
+            lc_ctype = (char *)locale;
+        g_print ("LC_CTYPE=%s, file type: %s\n", 
+                lc_ctype ? lc_ctype : "NULL",
+                buf ? buf : "Unknown");
+    
+        if (lc_all != NULL)
+            setenv ("LC_ALL", lc_all, TRUE);    /* reset LC_ALL */
+    }
+
+    if (*buf != '\0') {
+        gchar *p = buf;
+        while (*p != ':') 
+            ++p;
+        ++p;
+        while (isspace (*p)) 
+            ++p;
+
+        if (strstr (p, "text"))
+            retval = TRUE;
+    }
+
+done:
+    if (error != NULL)
+        g_error_free (error);
+    if (fp != NULL)
+        fclose (fp);
+
+    g_free (argv);
+    g_free (envp[2]);
+    g_free (envp);
+
+    return retval;
+}
+
+gboolean
+fsexam_is_plain_text (const gchar *name, FSEXAM_setting *setting)
+{
+    static gboolean first = TRUE;
+    gboolean    retval = FALSE;
+    GList       *p = NULL;
+    GList       *encode_list = NULL;
+
+    if (setting->pref->force)
+        return TRUE;
+
+    /* fast check in current locale */
+    if (is_plain_text_by_locale (name, NULL))
+        return TRUE;
+
+    /* check on UTF-8 locale */
+    if (first) {
+        setting->utf8_locale = get_utf8_locale ();
+        first = FALSE;
+    }
+
+    if (setting->utf8_locale != NULL &&
+            is_plain_text_by_locale (name, setting->utf8_locale))
+        return TRUE;
+
+    encode_list = setting->pref->encode_list;
+    for (p = encode_list; p; p = p->next)
+    {
+        const gchar *locale = encoding_to_locale (id2encoding (
+                                    ((Encoding*) p->data)->encodingID));
+
+        if (locale == NULL)
+            continue;
+
+        if (is_plain_text_by_locale (name, locale)) {
+            retval = TRUE;
+            break;
+        }
+    }
+
+    return retval;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-plaintext.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,33 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_PLAINTEXT_H
+#define _FSEXAM_PLAINTEXT_H
+
+gboolean fsexam_is_plain_text (const gchar *filename, FSEXAM_setting *setting);
+
+#endif //_FSEXAM_PLAINTEXT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-pref.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,292 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib.h>
+#include <gtk/gtk.h>
+#include <gconf/gconf-client.h>
+
+#include "fsexam.h"
+#include "fsexam-header.h"
+
+void cb_toolbar_style (GConfClient *, guint, GConfEntry *, gpointer);
+
+static GSList *
+remove_duplicated_encoding_name (GSList *list, GSList *standard)
+{
+    GSList *result = list;
+
+    while (list != NULL) {
+        GSList *second = standard;
+        
+        while (second != NULL) {
+            if (encoding2id (list->data) == encoding2id (second->data))
+                break;
+            second = g_slist_next (second);
+        }
+
+        if (second != NULL) {       /* duplicated, remove it */
+            GSList *next = NULL;
+
+            next = g_slist_next (list);
+            result = g_slist_delete_link (result, list);
+            list = next;
+        } else {
+            list = g_slist_next (list);
+        }
+    }
+
+    return result;
+}
+
+FSEXAM_pref *
+fsexam_pref_init (gboolean cmd_mode)
+{
+    FSEXAM_pref *pref = NULL;
+    GConfClient *gconf_client = NULL;
+
+    pref = g_new0 (FSEXAM_pref, 1);
+
+    gconf_client = pref->gconf_client = gconf_client_get_default ();
+    pref->hist_len = gconf_client_get_int (gconf_client, HISTLEN, NULL);
+
+    if (cmd_mode){
+        pref->auto_detect = FALSE;
+        pref->hidden = FALSE;
+        pref->auto_conversion= FALSE;
+        pref->recursive = FALSE;
+        pref->remote = FALSE;
+        pref->follow = FALSE;
+        pref->no_check_symlink_content = FALSE;
+        pref->use_log = FALSE;
+        pref->log_file = NULL;
+        pref->suffix_list = NULL;
+        pref->special = 0;
+    }else{
+		gconf_client_notify_add (gconf_client,
+				TOOLBAR_STYLE,
+				cb_toolbar_style,
+				NULL, NULL, NULL);
+
+        pref->auto_detect = gconf_client_get_bool (gconf_client,
+                                    AUTODETECTMODE,
+                                    NULL);
+        pref->hidden = gconf_client_get_bool (gconf_client,
+                                    HIDDENMODE,
+                                    NULL);
+        pref->auto_conversion= gconf_client_get_bool (gconf_client,
+                                    INTERACTIVEMODE,
+                                    NULL);
+        pref->recursive = gconf_client_get_bool (gconf_client,
+                                    RECURSIVEMODE,
+                                    NULL);
+        pref->remote = gconf_client_get_bool (gconf_client,
+                                    REMOTEMODE,
+                                    NULL);
+        pref->follow = gconf_client_get_bool (gconf_client,
+                                    FOLLOWMODE,
+                                    NULL);
+        pref->use_log = gconf_client_get_bool (gconf_client,
+                                    USELOG,
+                                    NULL);
+        pref->no_check_symlink_content = gconf_client_get_bool (gconf_client,
+                                    CHECKSYMLINKTARGETMODE,
+                                    NULL);
+        pref->suffix_list = (GSList *) gconf_client_get_list (gconf_client,
+                                    SUFFIXLIST,
+                                    GCONF_VALUE_STRING,
+                                    NULL);
+        pref->log_file = gconf_client_get_string (gconf_client,
+                                    LOGFILE,
+                                    NULL);
+        pref->special = gconf_client_get_int (gconf_client,
+                                    SPECIAL,
+                                    NULL);
+    }
+
+    pref->conv_content = FALSE;
+    pref->dry_run = FALSE;
+    pref->force = FALSE;
+
+    pref->encode_list = NULL;
+    pref->encode_name_list = NULL;
+
+    return pref;
+}
+
+void
+fsexam_pref_destroy (FSEXAM_pref *pref)
+{
+    if (NULL == pref)
+        return;
+
+    g_object_unref (pref->gconf_client);
+    fsexam_encoding_destroy (pref->encode_list);
+
+    fsexam_slist_free (pref->encode_name_list);
+    fsexam_slist_free (pref->suffix_list);
+
+    g_free (pref->log_file);
+    g_free (pref);
+}
+
+/*
+ *  Init encoding_list and encoding_name_list from gconf and CLI option
+ */
+void
+fsexam_pref_set_encoding_list (FSEXAM_pref *pref,
+                               gchar *encoding_string,
+                               gboolean append,
+                               gboolean prepend,
+                               gboolean save)
+{
+    GConfClient     *client;
+
+    if (NULL == pref)
+        return;
+
+    client = pref->gconf_client;
+
+    if (encoding_string == NULL){   /* Use GConf Encoding list only */
+        pref->encode_name_list = (GSList *)gconf_client_get_list (client,
+                                                    ENCODINGLIST,
+                                                    GCONF_VALUE_STRING,
+                                                    NULL);
+        pref->encode_list = fsexam_encoding_init (pref->encode_name_list);
+    }else{
+        GSList      *encode_text;
+
+        /* encoding list from command line arguments */
+        pref->encode_name_list = encoding_string_parse (encoding_string);
+
+        /* encoding list from gconf database */
+        encode_text = (GSList *)gconf_client_get_list (client,
+                                                       ENCODINGLIST,
+                                                       GCONF_VALUE_STRING,
+                                                       NULL);
+        
+        if (append) {
+            pref->encode_name_list = remove_duplicated_encoding_name (
+                    pref->encode_name_list,
+                    encode_text);
+            pref->encode_name_list = g_slist_concat (encode_text, 
+                                                     pref->encode_name_list);
+        }else if (prepend){
+            pref->encode_name_list = remove_duplicated_encoding_name (
+                    pref->encode_name_list,
+                    encode_text);
+            pref->encode_name_list = g_slist_concat (pref->encode_name_list, 
+                                                     encode_text);
+        }else{
+            fsexam_slist_free (encode_text);    /* free encode from gconf */
+        }
+
+        if (save){
+            gconf_client_set_list (client,
+                                   ENCODINGLIST,
+                                   GCONF_VALUE_STRING,
+                                   pref->encode_name_list,
+                                   NULL);
+        }
+
+        pref->encode_list = fsexam_encoding_init (pref->encode_name_list);
+    }
+
+    return;
+}
+
+/* 
+ * Update FSEAM_pref encoding name and encoding list, save to gconf
+ * if client != NULL
+ *
+ * slist will be used directly, so caller don't free it 
+ */
+void
+fsexam_pref_update_encoding (FSEXAM_pref *pref, 
+                             GSList *slist, 
+                             GConfClient *client)
+{
+    if (NULL == pref) {
+		fsexam_slist_free (slist);
+        return;
+	}
+
+    if (client != NULL) {   /* save to gconf */
+        gconf_client_set_list (client,
+                               ENCODINGLIST,
+                               GCONF_VALUE_STRING,
+                               slist,
+                               NULL);
+    }
+
+    /* free the old data */
+    fsexam_slist_free (pref->encode_name_list);
+    fsexam_encoding_destroy (pref->encode_list);
+   
+    /* init with new data */
+    pref->encode_name_list = slist;
+    pref->encode_list = fsexam_encoding_init (pref->encode_name_list);
+
+    return;
+}
+
+/*
+ *  Save the user's preference setting into gconf database
+ */
+void
+fsexam_pref_save_to_gconf (FSEXAM_pref *pref, 
+                           GConfClient *client, 
+                           gboolean save_encoding)
+{
+    if ((NULL == pref) || (NULL == client))
+        return;
+
+    gconf_client_set_bool (client, AUTODETECTMODE, pref->auto_detect, NULL);
+    gconf_client_set_bool (client, HIDDENMODE, pref->hidden, NULL);
+    gconf_client_set_bool (client, RECURSIVEMODE, pref->recursive, NULL);
+    gconf_client_set_bool (client, REMOTEMODE, pref->remote, NULL);
+    gconf_client_set_bool (client, FOLLOWMODE, pref->follow, NULL);
+    gconf_client_set_bool (client, USELOG, pref->use_log, NULL);
+    gconf_client_set_bool (client, INTERACTIVEMODE, 
+                           pref->auto_conversion, NULL);
+    gconf_client_set_bool (client, CHECKSYMLINKTARGETMODE, 
+                           pref->no_check_symlink_content, NULL);
+
+    if (pref->log_file != NULL)
+    	gconf_client_set_string (client, LOGFILE, pref->log_file, NULL);
+    gconf_client_set_int (client, SPECIAL, pref->special, NULL);
+    gconf_client_set_int (client, HISTLEN, pref->hist_len, NULL);
+
+    if (save_encoding)
+        gconf_client_set_list (client, ENCODINGLIST,
+                               GCONF_VALUE_STRING, pref->encode_name_list,
+                               NULL);
+
+    return;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-pref.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,93 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_PREF_H
+#define _FSEXAM_PREF_H
+
+#define AUTODETECTMODE  "/apps/fsexam/auto_detect"
+#define INTERACTIVEMODE "/apps/fsexam/auto_mode"
+#define RECURSIVEMODE   "/apps/fsexam/recur_mode"
+#define HIDDENMODE      "/apps/fsexam/hidden"
+#define REMOTEMODE      "/apps/fsexam/remote"
+#define FOLLOWMODE      "/apps/fsexam/follow"
+#define SUFFIXLIST      "/apps/fsexam/suffix"
+#define CHECKSYMLINKTARGETMODE  "/apps/fsexam/no_check_symlink_content"
+#define USELOG          "/apps/fsexam/uselog"
+#define LOGFILE         "/apps/fsexam/logfile"
+#define HISTLEN         "/apps/fsexam/hist_len"
+#define SPECIAL         "/apps/fsexam/special"
+#define ENCODINGLIST    "/apps/fsexam/encoding"
+
+#define TOOLBAR_STYLE	"/desktop/gnome/interface/toolbar_style"
+
+typedef struct _FSEXAM_pref FSEXAM_pref;
+
+struct _FSEXAM_pref {
+    GConfClient *gconf_client;
+
+    gboolean    auto_detect;
+    gboolean    auto_conversion;
+    gboolean    follow;
+    gboolean    hidden;
+    gboolean    recursive;
+    gboolean    remote;
+    gboolean    no_check_symlink_content;
+
+    gboolean    force;
+    gboolean    dry_run;
+    gboolean    conv_content;
+    gboolean    use_log;
+
+    gint        hist_len;   /* history info len */
+    gint        special;    /* special file type */
+
+    GList       *encode_list;       /* Encoding data structure list */
+    GSList      *encode_name_list;  /* contains only encoding name */
+    GSList      *suffix_list;   /* not use now */
+
+    gchar       *log_file;
+};
+
+FSEXAM_pref *   fsexam_pref_init (gboolean cmd_mode);
+
+void            fsexam_pref_set_encoding_list (FSEXAM_pref *pref,
+                                               gchar *encoding_string, 
+                                               gboolean append, 
+                                               gboolean prepend, 
+                                               gboolean save);
+
+void            fsexam_pref_update_encoding (FSEXAM_pref *pref, 
+                                             GSList *slist, 
+                                             GConfClient *client);
+
+void            fsexam_pref_save_to_gconf (FSEXAM_pref *pref, 
+                                           GConfClient *client,
+                                           gboolean save_encoding);
+
+void            fsexam_pref_destroy (FSEXAM_pref *pref);
+
+#endif //_FSEXAM_PREPROCESS_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-preference-dialog.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,803 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <libgen.h>
+#include <strings.h>
+#include <string.h>
+
+#include <glade/glade.h>
+#include <gtk/gtk.h>
+#include <glib.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
+#include <glib/gi18n.h>
+#include <gconf/gconf-client.h>
+
+#include "fsexam-header.h"
+#include "fsexam-debug.h"
+#include "fsexam-preference-dialog.h"
+#include "fsexam-ui.h"
+#include "callbacks.h"
+
+enum {
+    COLUMN_ENCODING_NAME = 0,
+    ENCODING_NUM_COLS
+};
+
+typedef enum {
+    ActionInvalid,
+    ActionAutoDetect,
+    ActionAutoConversion,
+    ActionRecursive,
+    ActionHidden,
+    ActionFollow,
+    ActionRemote,
+    ActionNoCheckSymlink,
+    ActionSpecial,
+    ActionCompress,
+    ActionUseLog,
+    ActionLogFile,
+    ActionHistLen,
+    ENCODING_UP,
+    ENCODING_DOWN,
+    ENCODING_ADD,
+    ENCODING_DELETE,
+    ENCODING_SAVE,
+    ENCODING_RESET
+} EncodingActionType;
+
+static gboolean get_encoding_name_of_row (GtkTreeModel *,
+                                          GtkTreePath *,
+                                          GtkTreeIter *,
+                                          gpointer);
+static void selection_changed_callback (GtkTreeSelection *, gpointer);
+static void handle_encoding_action (EncodingActionType, GtkWidget *);
+static void cb_set_sensitive (GtkWidget *, gpointer);
+static void cb_pref_reset (GtkDialog *, FSEXAM_pref *);
+static void cb_encoding_manipulate (GtkWidget *, gpointer);
+static void selection_changed_callback (GtkTreeSelection *, gpointer);
+static void pref_dialog_response_callback (GtkWidget *, int, gpointer);
+static void create_encodings_treeview (GtkTreeView *, GtkWidget *);
+static void show_pref_help(void);
+
+/*
+ * Get the current rows encoding name, and append it to the user
+ * provided list
+ */
+static gboolean
+get_encoding_name_of_row (GtkTreeModel *model,
+                          GtkTreePath  *path,
+                          GtkTreeIter  *iter,
+                          gpointer     user_data)
+{
+    GSList  **list = user_data;
+    gchar   *name = NULL;
+
+    gtk_tree_model_get (model, iter, COLUMN_ENCODING_NAME, &name, -1);
+    *list = g_slist_prepend (*list, name);  /* free name when free list */
+
+    return FALSE;
+}
+
+/*
+ *  Event handler for Up/Down/Add/Remove/Save button of encoding treeview
+ */
+static void
+handle_encoding_action (EncodingActionType type, GtkWidget *dialog)
+{
+    GtkTreeSelection *selection = NULL;
+    GtkTreeModel     *model = NULL;
+    GtkWidget        *view = NULL;
+    GtkTreeIter      iter_cur, iter_other;
+
+    if (type == ActionInvalid)
+        return;
+
+    view = g_object_get_data (G_OBJECT (dialog), "treeview_encoding_list");
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view));
+
+    if (gtk_tree_selection_get_selected (selection, &model, &iter_cur)) {
+        GtkTreePath *treepath = gtk_tree_model_get_path (model, &iter_cur);
+        iter_other = iter_cur;
+
+        switch (type) {
+            case ENCODING_UP:
+                if ((gtk_tree_path_prev (treepath)) 
+                    && (gtk_tree_model_get_iter (model, &iter_other, treepath)))
+                {
+                        gtk_list_store_swap (GTK_LIST_STORE (model), 
+                                             &iter_cur, 
+                                             &iter_other);
+                }
+
+                gtk_widget_set_sensitive (
+                        g_object_get_data (G_OBJECT (dialog), "button_down"),
+                        TRUE);
+                if (! gtk_tree_path_prev (treepath)) {
+                    gtk_widget_set_sensitive (
+                            g_object_get_data (G_OBJECT (dialog), "button_up"),
+                            FALSE);
+                }
+                
+                break;
+            case ENCODING_DOWN:
+                if (gtk_tree_model_iter_next (model, &iter_other)) {
+                    gtk_list_store_swap (GTK_LIST_STORE (model), 
+                                         &iter_cur, 
+                                         &iter_other);
+                }
+
+                gtk_widget_set_sensitive (
+                        g_object_get_data (G_OBJECT (dialog), "button_up"),
+                        TRUE);
+                if (! gtk_tree_model_iter_next (model, &iter_cur)) {
+                    gtk_widget_set_sensitive (
+                        g_object_get_data (G_OBJECT (dialog), "button_down"),
+                        FALSE);
+                }
+            
+                break;
+            case ENCODING_DELETE:
+                gtk_list_store_remove (GTK_LIST_STORE (model), &iter_cur);
+
+                break;
+
+            default:
+                break;
+        }
+
+        if (treepath != NULL)
+            gtk_tree_path_free (treepath);
+    }
+
+    return;
+}
+
+/*
+ * Make related button sensitive or not,
+ * according to 'Button Specail' and 'Button Use Log"
+ */
+static void
+cb_set_sensitive (GtkWidget *widget, gpointer data)
+{
+    GtkWidget   *dialog = data;
+    gboolean    active; 
+
+    active = gtk_toggle_button_get_active (
+                g_object_get_data (G_OBJECT (dialog), "special"));
+    gtk_widget_set_sensitive(
+                g_object_get_data (G_OBJECT (dialog), "compress"), 
+                active);
+
+    active = gtk_toggle_button_get_active (
+                g_object_get_data (G_OBJECT (dialog), "use_log"));
+    gtk_widget_set_sensitive (
+                g_object_get_data (G_OBJECT (dialog), "log_file"), 
+                active);
+    gtk_widget_set_sensitive (
+                g_object_get_data (G_OBJECT (dialog), "label_log_file"), 
+                active);
+
+    return;
+}
+
+/*
+ * Refresh FSEXAM_pref data structure after clicked preference dialog's
+ * 'OK' Button
+ *
+ * TODO: Use flags to indicate what we have changed.
+ */
+static void
+cb_pref_reset (GtkDialog *dialog, FSEXAM_pref *pref)
+{
+    gboolean    active;
+    GtkWidget   *w = NULL;
+
+    w = g_object_get_data (G_OBJECT (dialog), "auto_detect");
+    pref->auto_detect = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+
+    w = g_object_get_data (G_OBJECT (dialog), "auto_convert");
+    pref->auto_conversion = gtk_toggle_button_get_active (
+                                    GTK_TOGGLE_BUTTON (w));
+
+    w = g_object_get_data (G_OBJECT (dialog), "recursive");
+    pref->recursive = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+
+    w = g_object_get_data (G_OBJECT (dialog), "hidden");
+    pref->hidden = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+
+    w = g_object_get_data (G_OBJECT (dialog), "follow");
+    pref->follow = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+
+    w = g_object_get_data (G_OBJECT (dialog), "remote");
+    pref->remote = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+
+    w = g_object_get_data (G_OBJECT (dialog), "nocheck_symlink");
+    pref->no_check_symlink_content = gtk_toggle_button_get_active (
+                                    GTK_TOGGLE_BUTTON (w));
+
+    /* Special type handling setting */
+    w = g_object_get_data (G_OBJECT (dialog), "special");
+    active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+
+    if (active) {		/* enable special handling */
+        w = g_object_get_data (G_OBJECT (dialog), "compress");
+        active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+        if (active) {
+            pref->special |= SPECIAL_COMPRESS;
+        }else{
+            pref->special &= ~SPECIAL_COMPRESS;
+        }
+    }else{
+        pref->special = SPECIAL_NO;
+    }
+
+    /* Log setting */
+    w = g_object_get_data (G_OBJECT (dialog), "use_log");
+    active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+    
+    if (active) {
+        gchar *new_log_name = NULL;
+
+        pref->use_log = TRUE;
+
+        w = g_object_get_data (G_OBJECT (dialog), "log_file");
+        new_log_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (w));
+
+        if ((pref->log_file == NULL) || ((new_log_name != NULL) 
+			&& (strcmp (new_log_name, pref->log_file) != 0))) {
+            Log_info  *new_log_info = fsexam_log_open (new_log_name);
+
+            if (new_log_info != NULL) { /* change to new log struct */
+                fsexam_log_close (view->setting->log_info);
+                g_free (pref->log_file);
+
+                pref->log_file = g_strdup (new_log_name);
+                view->setting->log_info = new_log_info;
+            }
+        }
+
+        g_free (new_log_name);
+    }else{
+        pref->use_log = FALSE;
+
+        if (view->setting->log_info != NULL) {
+            /*
+             * We won't gfree(pref->log_file), result in it will remember the
+             * last setting: will be written to gconf before exit.
+             */
+            fsexam_log_close (view->setting->log_info);
+            view->setting->log_info = NULL;
+        }
+    }
+
+    /* history length */
+    w = g_object_get_data (G_OBJECT (dialog), "spinbutton_hist_len");
+    pref->hist_len = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (w));
+
+    /* update encoding */
+    fsexam_pref_update_encoding (
+                    view->setting->pref,
+                    fsexam_prefdialog_get_encoding_list (GTK_WIDGET (dialog)),
+                    NULL);
+
+    return;
+}
+
+/* wrapper for cb_create_encoding_dialog func in other source file */
+static void
+create_encoding_dialog (GtkWidget *widget, gpointer data)
+{
+    GtkWidget   *parent = data;
+
+    cb_create_encoding_dialog (parent);
+
+    return;
+}
+
+/*
+ *  Wrapper for handle_encoding_action: handle actions on encoding
+ */
+static void
+cb_encoding_manipulate (GtkWidget *widget, gpointer user_data)
+{
+    GtkWidget   *dialog = user_data;
+
+    EncodingActionType type = ActionInvalid;
+
+    if (g_object_get_data (G_OBJECT (dialog), "button_up") == widget)
+        type = ENCODING_UP;
+    else if (g_object_get_data (G_OBJECT (dialog), "button_down") == widget)
+        type = ENCODING_DOWN;
+    else if (g_object_get_data (G_OBJECT (dialog), "button_delete") == widget)
+        type = ENCODING_DELETE;
+    else if (g_object_get_data (G_OBJECT (dialog), "button_reset") == widget)
+        type = ENCODING_RESET;
+    
+    handle_encoding_action (type, dialog);
+
+    if (GTK_WIDGET_CAN_FOCUS (widget))
+        gtk_widget_grab_focus (widget);
+
+    return;
+}
+
+/* 
+ * callback for 'Save' button:
+ * save encoding into gconf and sync with Encoding list
+ */
+static void
+save_encoding_list (GtkWidget *widget, gpointer data)
+{
+    GtkWidget *dialog = data;
+    GtkWidget *confirm_dlg = NULL;
+    gint      response;
+
+    confirm_dlg = gtk_message_dialog_new (
+                    GTK_WINDOW (view->mainwin),
+                    GTK_DIALOG_DESTROY_WITH_PARENT,
+                    GTK_MESSAGE_WARNING,
+                    GTK_BUTTONS_YES_NO,
+                    _("Do you want to save this encoding list permanently?"));
+
+    response = gtk_dialog_run (GTK_DIALOG (confirm_dlg));
+
+    if (response == GTK_RESPONSE_YES) {
+        GSList *list;
+
+        list = fsexam_prefdialog_get_encoding_list (dialog);
+        fsexam_pref_update_encoding (view->setting->pref, 
+                                     list, 
+                                     view->setting->pref->gconf_client);
+    }
+
+    gtk_widget_destroy (confirm_dlg);
+
+    return;
+}
+
+/*
+ *  Fill in Model data according to Encoding List
+ */
+static void
+set_encodings_treeview_model (GtkTreeView *view, GSList *encoding_list)
+{
+    GtkListStore  *store = NULL;
+    GtkTreeIter   iter;
+    GSList        *list = encoding_list;
+
+    store = (GTK_LIST_STORE (gtk_tree_view_get_model (view)));
+	gtk_list_store_clear (store);
+
+    while (list) {
+        short encoding_id = encoding2id ((gchar *)list->data);
+        list = g_slist_next (list);
+
+        if (encoding_id == -1)
+            continue;
+
+        gtk_list_store_append (store, &iter);
+        gtk_list_store_set (store, &iter,
+                            COLUMN_ENCODING_NAME, id2encoding (encoding_id),
+                            -1);
+    }
+
+	return;
+}
+
+/*
+ * Create GtkTreeView and empty TreeModel
+ */
+static void
+create_encodings_treeview (GtkTreeView *encode_view, 
+                           GtkWidget *dialog)
+{
+    GtkCellRenderer     *renderer = NULL;
+    GtkTreeViewColumn   *column = NULL;
+    GtkTreeSelection    *selection = NULL;
+	GtkListStore		*store = NULL;
+    
+    renderer = gtk_cell_renderer_text_new ();
+    column = gtk_tree_view_column_new_with_attributes (NULL,
+                                    renderer,
+                                    "text", COLUMN_ENCODING_NAME,
+                                    NULL);
+    gtk_tree_view_append_column (GTK_TREE_VIEW (encode_view), column);
+    gtk_tree_view_set_search_column (GTK_TREE_VIEW (encode_view),
+                                    COLUMN_ENCODING_NAME);
+
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (encode_view)),
+    gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
+
+    /* selection event handler */
+    selection_changed_callback (selection, dialog);
+    g_signal_connect (G_OBJECT (selection), 
+                      "changed",
+                      G_CALLBACK (selection_changed_callback), 
+                      dialog);
+
+	/* create empty model */
+	store = gtk_list_store_new (ENCODING_NUM_COLS, G_TYPE_STRING);
+    gtk_tree_view_set_model (GTK_TREE_VIEW (encode_view), 
+							 GTK_TREE_MODEL (store));
+    g_object_unref (store);
+
+    return;
+
+}
+
+/*
+ * callback to handle sensitive/insensitive of buttons
+ */
+static void
+selection_changed_callback (GtkTreeSelection *selection, gpointer data)
+{
+    GtkWidget       *dialog = data;
+    GtkWidget       *up_button = NULL;
+    GtkWidget       *down_button = NULL;
+    GtkWidget       *delete_button = NULL;
+    GtkTreeModel    *model = NULL;
+    GtkTreeIter     iter;
+    gboolean        has_selection;
+
+    up_button = g_object_get_data (G_OBJECT (dialog), "button_up");
+    down_button = g_object_get_data (G_OBJECT (dialog), "button_down");
+    delete_button = g_object_get_data (G_OBJECT (dialog), "button_delete");
+
+    has_selection = gtk_tree_selection_get_selected (
+                                        selection,
+                                        &model,
+                                        &iter);
+
+    if (has_selection) {
+        GtkTreePath *treepath = NULL;
+    
+        treepath = gtk_tree_model_get_path (model, &iter);
+
+        gtk_widget_set_sensitive (delete_button, TRUE);
+
+        if (! gtk_tree_path_prev (treepath))
+            gtk_widget_set_sensitive (up_button, FALSE);
+        else
+            gtk_widget_set_sensitive (up_button, TRUE);
+        
+        if (! gtk_tree_model_iter_next (model, &iter))
+            gtk_widget_set_sensitive (down_button, FALSE);
+        else
+            gtk_widget_set_sensitive (down_button, TRUE);
+
+        gtk_tree_path_free (treepath);
+    }else{
+        gtk_widget_set_sensitive (up_button, FALSE);
+        gtk_widget_set_sensitive (down_button, FALSE);
+        gtk_widget_set_sensitive (delete_button, FALSE);
+    }
+
+    return;
+}
+
+static void 
+show_pref_help(void)
+{
+    GError *err = NULL;
+
+    gnome_help_display ("fsexam.xml", "fsexam-prefs", &err);
+
+    if (err) {
+        GtkWidget *dialog;
+        dialog = gtk_message_dialog_new (
+                        GTK_WINDOW (view->mainwin),
+                        GTK_DIALOG_DESTROY_WITH_PARENT,
+                        GTK_MESSAGE_ERROR,
+                        GTK_BUTTONS_CLOSE,
+                        _("There was an error when displaying help: %s"),
+                        err->message);
+
+        g_signal_connect (G_OBJECT (dialog),
+                          "response",
+                          G_CALLBACK (gtk_widget_destroy),
+                          NULL);
+
+        gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
+        gtk_widget_show (dialog);
+        g_error_free (err);
+    }
+
+    return;
+}
+
+/*
+ * Dialog response event hander 
+ */
+static void
+pref_dialog_response_callback (GtkWidget *window, gint id, gpointer data)
+{
+    FSEXAM_pref     *pref = data;
+
+    if (id == GTK_RESPONSE_OK) {
+        cb_pref_reset (GTK_DIALOG (window), pref);
+
+        if (fsexam_debug() & FSEXAM_DBG_OPTION) {
+            fsexam_setting_print (view->setting);
+        }
+    } else if (id == GTK_RESPONSE_HELP) {
+        show_pref_help ();
+        return;
+    }
+
+    gtk_widget_destroy (window);
+
+    return;
+}
+
+/*
+ *  callback for 'Preferences' menu: create preference dialog 
+ */
+void
+cb_create_pref_dialog ()
+{
+    FSEXAM_pref  *pref = view->setting->pref;
+    GtkWidget    *dialog = NULL;
+    GtkWidget    *w = NULL;
+    GladeXML     *xml = NULL;
+		
+    xml = fsexam_gui_load_glade_file (FSEXAM_GLADE_FILE, 
+                                      "pref_dialog",
+                                      GTK_WINDOW (view->mainwin));
+    if (xml == NULL)
+        return;
+
+    /* main dialog */
+    dialog = glade_xml_get_widget (xml, "pref_dialog");
+    gtk_dialog_set_default_response (GTK_DIALOG (dialog), 
+    		GTK_RESPONSE_CANCEL);
+    g_signal_connect (G_OBJECT (dialog), "response",
+    		G_CALLBACK (pref_dialog_response_callback),
+    		pref);
+
+    /* buttons */
+    w = glade_xml_get_widget (xml, "chkbtn_auto_detect");
+    g_object_set_data (G_OBJECT (dialog), "auto_detect", w);
+
+    w = glade_xml_get_widget (xml, "chkbtn_auto_convert");
+    g_object_set_data (G_OBJECT (dialog), "auto_convert", w);
+    
+    w = glade_xml_get_widget (xml, "chkbtn_recursive");
+    g_object_set_data (G_OBJECT (dialog), "recursive", w);
+
+    w = glade_xml_get_widget (xml, "chkbtn_hidden");
+    g_object_set_data (G_OBJECT (dialog), "hidden", w);
+
+    w = glade_xml_get_widget (xml, "chkbtn_follow");
+    g_object_set_data (G_OBJECT (dialog), "follow", w);
+
+    w = glade_xml_get_widget (xml, "chkbtn_remote");
+    g_object_set_data (G_OBJECT (dialog), "remote", w);
+
+    w = glade_xml_get_widget (xml, "chkbtn_nocheck_symlink");
+    g_object_set_data (G_OBJECT (dialog), "nocheck_symlink", w);
+
+    /* Special file type */
+    w = glade_xml_get_widget (xml, "chkbtn_special");
+    g_object_set_data (G_OBJECT (dialog), "special", w);
+    g_signal_connect (G_OBJECT (w), "toggled",
+                      G_CALLBACK (cb_set_sensitive), dialog);
+
+    w = glade_xml_get_widget (xml, "chkbtn_compress");
+    g_object_set_data (G_OBJECT (dialog), "compress", w);
+
+    /* Use log or not */
+    w = glade_xml_get_widget (xml, "chkbtn_use_log");
+    g_object_set_data (G_OBJECT (dialog), "use_log", w);
+    g_signal_connect (G_OBJECT (w), "toggled", 
+                      G_CALLBACK (cb_set_sensitive), dialog);
+
+    w = glade_xml_get_widget (xml, "label_log_file");
+    g_object_set_data (G_OBJECT (dialog), "label_log_file", w);
+
+    w = glade_xml_get_widget (xml, "filebtn_log_file");
+    g_object_set_data (G_OBJECT (dialog), "log_file", w);
+
+    w = glade_xml_get_widget (xml, "spinbutton_hist_len");
+    g_object_set_data (G_OBJECT (dialog), "spinbutton_hist_len", w);
+
+    /* Up/Down/Add/Delete buttons */
+    w = glade_xml_get_widget (xml, "chkbtn_up");
+    g_object_set_data (G_OBJECT (dialog), "button_up", w);
+    g_signal_connect (G_OBJECT (w), 
+                      "clicked",
+                      G_CALLBACK (cb_encoding_manipulate),
+                      dialog);
+
+    w = glade_xml_get_widget (xml, "chkbtn_down");
+    g_object_set_data (G_OBJECT (dialog), "button_down", w);
+    g_signal_connect (G_OBJECT (w), 
+                      "clicked",
+                      G_CALLBACK (cb_encoding_manipulate),
+                      dialog);
+
+    w = glade_xml_get_widget (xml, "chkbtn_delete");
+    g_object_set_data (G_OBJECT (dialog), "button_delete", w);
+    g_signal_connect (G_OBJECT (w), 
+                      "clicked",
+                      G_CALLBACK (cb_encoding_manipulate),
+                      dialog);
+
+    w = glade_xml_get_widget (xml, "chkbtn_save");
+    g_object_set_data (G_OBJECT (dialog), "button_save", w);
+    g_signal_connect (G_OBJECT (w), 
+                      "clicked",
+                      G_CALLBACK (save_encoding_list),
+                      dialog);
+
+    w = glade_xml_get_widget (xml, "chkbtn_add");
+    g_signal_connect (G_OBJECT (w), 
+                      "clicked",
+                      G_CALLBACK (create_encoding_dialog),
+                      dialog);
+
+    /* Init encoding list from FSEXAM_setting->pref->encoding_list */
+    w  = glade_xml_get_widget (xml, "treeview_encoding_list");
+    g_object_set_data (G_OBJECT (dialog), "treeview_encoding_list", w);
+
+    /* create tree view and empty tree model */
+    create_encodings_treeview (GTK_TREE_VIEW (w), dialog); 
+   
+    g_object_unref (xml);       /* destroy xml */
+
+    /* buttons */
+    w = g_object_get_data (G_OBJECT (dialog), "auto_detect");
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), pref->auto_detect);
+
+    w = g_object_get_data (G_OBJECT (dialog), "auto_convert");
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), pref->auto_conversion);
+    
+    w = g_object_get_data (G_OBJECT (dialog), "recursive");
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), pref->recursive);
+
+    w = g_object_get_data (G_OBJECT (dialog), "hidden");
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), pref->hidden);
+
+    w = g_object_get_data (G_OBJECT (dialog), "follow");
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), pref->follow);
+
+    w = g_object_get_data (G_OBJECT (dialog), "remote");
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),  pref->remote);
+
+    w = g_object_get_data (G_OBJECT (dialog), "nocheck_symlink");
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), 
+                                  pref->no_check_symlink_content);
+
+    /* Special file type */
+    w = g_object_get_data (G_OBJECT (dialog), "special");
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), 
+                                  pref->special == 0 ? FALSE : TRUE);
+
+    w = g_object_get_data (G_OBJECT (dialog), "compress");
+
+    gtk_widget_set_sensitive (w, pref->special == 0 ? FALSE : TRUE);
+    if ((pref->special & SPECIAL_COMPRESS) != 0) {
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), TRUE);
+    }else{
+        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), FALSE);
+    }
+
+    /* Use log or not */
+    w = g_object_get_data (G_OBJECT (dialog), "use_log");
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), pref->use_log);
+
+    w = g_object_get_data (G_OBJECT (dialog), "log_file");
+
+    if (pref->log_file != NULL) {
+        gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (w), pref->log_file);
+    }
+
+    /* Use log or not */
+    if (pref->use_log) {
+        gtk_widget_set_sensitive (w, TRUE);
+        gtk_widget_set_sensitive (
+                g_object_get_data (G_OBJECT (dialog), "label_log_file"),
+                TRUE);
+    }else{
+        gtk_widget_set_sensitive (w, FALSE);
+        gtk_widget_set_sensitive (
+                g_object_get_data (G_OBJECT (dialog), "label_log_file"),
+                FALSE);
+    }
+
+    w = g_object_get_data (G_OBJECT (dialog), "spinbutton_hist_len");
+    gtk_spin_button_set_value (GTK_SPIN_BUTTON (w), (gdouble)pref->hist_len);
+
+    /* Init encoding list from FSEXAM_setting->pref->encoding_list */
+    w  = g_object_get_data (G_OBJECT (dialog), "treeview_encoding_list");
+    set_encodings_treeview_model (GTK_TREE_VIEW (w), pref->encode_name_list);
+   
+    gtk_dialog_run (GTK_DIALOG (dialog));
+
+    return;
+}
+
+/*
+ *  Return a new list containing encoding names.
+ *  Need free it when no one use it any more.
+ */
+GSList *
+fsexam_prefdialog_get_encoding_list (GtkWidget *window)
+{
+    GtkWidget       *treeview = NULL;
+    GtkTreeModel    *treemodel = NULL;
+    GSList          *result = NULL;
+
+    treeview  = g_object_get_data (G_OBJECT (window), "treeview_encoding_list");
+    treemodel = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
+
+    gtk_tree_model_foreach (treemodel, 
+                            get_encoding_name_of_row, 
+                            (gpointer) &result);
+
+    result = g_slist_reverse (result);
+    
+    return result;
+}
+
+/*
+ *  Update encoding treeview according to new encoding list
+ */
+void
+fsexam_prefdialog_update_encoding_model (GtkWidget *window, 
+                                         GSList *new_encoding_list)
+{
+    GtkWidget       *treeview = NULL;
+    GtkListStore    *store = NULL;
+    GtkTreeIter     iter;
+    GSList          *tmp = new_encoding_list;
+
+    treeview = g_object_get_data (G_OBJECT (window), "treeview_encoding_list");
+    store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (treeview)));
+
+    gtk_list_store_clear (store);
+
+    while (tmp != NULL) {
+        gchar *name = tmp->data;
+        short encoding_id = encoding2id (name);
+
+        tmp = tmp->next;
+
+        if (encoding_id == -1)
+            continue;
+
+        gtk_list_store_append (store, &iter);
+        gtk_list_store_set (store, &iter,
+                            COLUMN_ENCODING_NAME, name,
+                            -1);
+    }
+
+    return;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-preference-dialog.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,37 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_PREFERENCE_DIALOG_H
+#define _FSEXAM_PREFERENCE_DIALOG_H
+
+void    cb_create_pref_dialog (void);
+void    fsexam_prefdialog_update_encoding_model (
+                              GtkWidget *window, 
+                              GSList *new_encoding_list);
+GSList  *fsexam_prefdialog_get_encoding_list (GtkWidget *window);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-setting.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,174 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "fsexam-header.h"
+
+/*
+ * Init FSEXAM_setting structure
+ */
+FSEXAM_setting *
+fsexam_setting_init (gboolean cmd_mode)
+{
+    FSEXAM_setting *setting = NULL;
+
+    setting = g_new0 (FSEXAM_setting, 1);
+
+    setting->pref = fsexam_pref_init (cmd_mode);
+    setting->gold_index = -1;
+    setting->utf8_locale = NULL;
+    setting->flags = 0;
+    setting->hist_info = NULL;
+    setting->remote_path = NULL;
+    
+    if (cmd_mode){
+        setting->dryrun_info = NULL;
+        setting->log_info = NULL;
+    }else{
+        if (setting->pref->use_log && (setting->pref->log_file != NULL)){
+            setting->log_info = fsexam_log_open (setting->pref->log_file);
+        }
+
+        /* Init dryrun at the beginning for GUI dryrun */
+        setting->dryrun_info = fsexam_dryrun_buffer_new ();
+    }
+
+    fsexam_setting_reset_stats (setting);
+    
+    return setting;
+}
+
+/*
+ * Reset the statistics variable for FSEXAM_setting
+ */
+void
+fsexam_setting_reset_stats (FSEXAM_setting *setting)
+{
+    g_return_if_fail (setting != NULL);
+
+    setting->passin_num = 0;
+    setting->total_num = 0;
+    setting->succ_num = 0;
+    setting->fail_num = 0;
+    setting->ignore_num = 0;
+
+    /* reset gold_index also */
+    setting->gold_index = -1;
+
+    return;
+}
+
+/*
+ * Display the statistics information
+ */
+void
+fsexam_setting_display_stats (FSEXAM_setting *setting)
+{
+    g_return_if_fail (setting != NULL);
+
+    g_print (_("Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"),
+            setting->passin_num,
+            setting->total_num,
+            setting->ignore_num,
+            setting->fail_num,
+            setting->succ_num);
+
+    return;
+}
+
+/*
+ * Destroy FSEXAM_setting structure 
+ */
+void 
+fsexam_setting_destroy (FSEXAM_setting *setting)
+{
+    if (NULL == setting)
+        return;
+
+    if (setting->pref != NULL){
+        fsexam_pref_destroy (setting->pref);
+    }
+
+    g_free (setting->utf8_locale);
+
+    if (setting->hist_info)
+        fsexam_history_close (setting->hist_info);
+    if (setting->log_info)
+        fsexam_log_close (setting->log_info);
+    if (setting->dryrun_info)
+        g_object_unref (setting->dryrun_info);
+    if (setting->remote_path)
+        fsexam_list_free (setting->remote_path);
+    
+    g_free (setting);
+
+    return;
+}
+
+/*
+ *  Print FSEXAM_setting structure
+ */
+void
+fsexam_setting_print (FSEXAM_setting *setting)
+{
+    if ((setting == NULL) || (setting->pref == NULL)) {
+        g_print ("seting or setting->pref is NULL\n");
+        return;
+    }
+
+    g_print ("===========================Setting=================\n");
+    g_print ("\tPreference\n");
+    g_print ("\t\tconvcontent = %s\n", 
+             setting->pref->conv_content ? "TRUE" : "False");
+    g_print ("\t\tautodetect = %s\n", 
+             setting->pref->auto_detect ? "TRUE" : "False");
+    g_print ("\t\tdryrun= %s\n", setting->pref->dry_run ? "TRUE" : "False");
+    g_print ("\t\tforce = %s\n", setting->pref->force ? "TRUE" : "False");
+    g_print ("\t\thidden = %s\n", setting->pref->hidden ? "TRUE" : "False");
+    g_print ("\t\tauto_conversion= %s\n", 
+             setting->pref->auto_conversion? "TRUE" : "False");
+    g_print ("\t\trecursive = %s\n", 
+             setting->pref->recursive ? "TRUE" : "False");
+    g_print ("\t\tno-check-symlink-content= %s\n", 
+             setting->pref->no_check_symlink_content ? "TRUE" : "FALSE");
+    g_print ("\t\tfollow = %s\n", setting->pref->follow ? "TRUE" : "False");
+    g_print ("\t\tremote = %s\n", setting->pref->remote ? "TRUE" : "False");
+    g_print ("\t\tuse_log = %s\n", setting->pref->use_log ? "TRUE" : "False");
+    g_print ("\t\thist_len = %d\n", setting->pref->hist_len);
+
+    g_print ("\t\tlog_file = %s\n", 
+             setting->pref->log_file ? setting->pref->log_file : "NULL");
+    if (setting->remote_path) {
+        g_print ("\tNFS mount point\n");
+        g_list_foreach (setting->remote_path, list_print, "\t");
+    }
+    g_print ("======================== End of Setting ============\n");
+
+    return;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-setting.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,85 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_SETTING_H
+#define _FSEXAM_SETTING_H
+
+/* Use same serial for history item or not */
+#define FSEXAM_SETTING_FLAGS_DIFF_SERIAL    (1<<0)  
+/* Don't write history information during UNDO */
+#define FSEXAM_SETTING_FLAGS_UNDO           (1<<1)
+#define FSEXAM_SETTING_FLAGS_SCENARIO       (1<<2)
+#define FSEXAM_SETTING_FLAGS_STOP           (1<<3)
+
+typedef struct _FSEXAM_setting FSEXAM_setting;
+
+struct _FSEXAM_setting {
+    FSEXAM_pref     *pref;          /* Config preferences */
+    guint           flags;          /* Flags for one pass of conversion */
+    /* encoding index for current pass, -1 means nop */
+    gint            gold_index;
+    gchar           *utf8_locale;   /* UTF-8 locale name */
+   
+    Hist_info       *hist_info;     /* For history */
+    Log_info        *log_info;      /* For log */
+    FsexamDryrun    *dryrun_info;   /* For dryrun */
+    GList           *remote_path;   /* For NFS/Local file */
+
+    /* The number of files passed in by user */
+    guint           passin_num;     
+    /* The total number of files processed */
+    guint           total_num;     
+    /* The number of files are ignored, including no hist, doesn't exist ...*/
+    guint           ignore_num;     
+    /* The number of files which are converted successfully */
+    guint           succ_num;       
+    /* The No. of files which met error during converting: such as no rights */
+    guint           fail_num;       
+
+    /* Function pointer to handle GUI/CMD diff */
+
+    /* get the candidate index */
+    gint (*get_index)  (GList *encoding_list, gboolean forname);    
+    /* update GUI after conversion */
+    void (*update_gui) (FSEXAM_setting *setting,                    
+                        const gchar *path, 
+                        const gchar *oldname, 
+                        const gchar *newname);
+    /* display information */
+    void (*display_msg) (const gchar *fname, const gchar *msg);     
+    /* display statistics information */
+    void (*display_stats) (FSEXAM_setting *setting);
+};
+
+FSEXAM_setting *fsexam_setting_init (gboolean cmd_mode);
+void            fsexam_setting_destroy (FSEXAM_setting *setting);
+
+void            fsexam_setting_reset_stats (FSEXAM_setting *setting);
+void            fsexam_setting_display_stats (FSEXAM_setting *setting);
+void            fsexam_setting_print (FSEXAM_setting *setting);
+
+#endif //_FSEXAM_SETTING_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-specialfile.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,1847 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <locale.h>
+#include <strings.h>
+#include <string.h>
+#include <unistd.h>
+#include <libgen.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <dirent.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+
+#include "fsexam-header.h"
+#include "fsexam-specialfile.h"
+
+/* -------------  Compress file type implementation ------------ */
+typedef enum {
+    COMP_TARGZ = 0,
+    COMP_TARBZ2,
+    COMP_TAR,
+    COMP_ZIP,
+    COMP_Z,
+}Compress_Type; 
+
+typedef struct {
+    gchar *result_path;      /* used to generate hist path */
+    gchar *search_path;      /* used to generate hist search path */
+    gchar *log_path;         /* used to generate log_path */
+    gint  temp_dir_len;
+}Compress_info;
+
+static gchar    *iso8859_locale = NULL;
+const gchar *compress_pair[][3] = {
+    /* Type         UNCOMPRESS                 COMPRESS */
+    {".tar.gz",  "LC_ALL=%s gzcat %s | tar -xf - 2>/dev/null",    "LC_ALL=%s tar -cf - . | gzip > ../%s"},
+    {".tar.bz2", "LC_ALL=%s bzcat %s | tar -xf - 2>/dev/null",    "LC_ALL=%s tar -cf - . | bzip2 -z > ../%s"},
+    {".tar",     "LC_ALL=%s tar -xf %s 2>/dev/null",              "LC_ALL=%s tar -cf - . > ../%s"},
+    {".zip",     "unzip -q %s 2>/dev/null",             "zip -qr %s .; mv %s .."},
+    {".tar.Z",   "uncompress -c %s | tar -xf - 2>/dev/null", "tar -cf - . | compress -fc > ../%s"},
+};
+
+#define TARCMD  "/usr/sfw/bin/gtar"
+
+static gboolean fsexam_special_is_compress (const gchar *, Compress_Type *);
+static gboolean compress_common_convert (const gchar *,
+        Compress_info *,
+        FSEXAM_setting *,
+        gboolean restore,
+        gboolean nameconvert);
+static gboolean compress_convert_content (const gchar *,
+        Compress_info *,
+        FSEXAM_setting *,
+        gboolean restore);
+
+static Compress_info *
+compress_info_new (const gchar *result_path,
+        const gchar *search_path,
+        const gchar *log_path)
+{
+    Compress_info *info = NULL;
+
+    if (NULL == result_path)
+        return NULL;
+
+    info = g_new0 (Compress_info, 1);
+    info->result_path = g_strdup (result_path);
+    info->search_path = g_strdup (search_path ? search_path : result_path);
+    info->log_path = g_strdup (log_path ? log_path : result_path);
+
+    return info;
+}
+            
+static void
+compress_info_free (Compress_info *info)
+{
+    if (info == NULL) {
+        return;
+    }
+
+    g_free (info->result_path);
+    g_free (info->search_path);
+    g_free (info->log_path);
+    g_free (info);
+
+    return;
+}
+
+/*
+ *  ensure $PWD is the directory of temparay directory
+ */
+static gchar *
+compose_compress_cmd (Compress_Type type, const gchar *bname)
+{
+    if (type == COMP_ZIP) {
+        return g_strdup_printf (compress_pair[type][2], bname, bname);
+    }
+   
+    if (type <= COMP_TAR) {
+        return g_strdup_printf (compress_pair[type][2], iso8859_locale, bname);
+    }
+
+    return g_strdup_printf (compress_pair[type][2], bname);
+}
+
+/* 
+ * Generate history path or log path for compress file.
+ *      Please note that we may nested to handling compress file. so 
+ *      orig_compress_file 
+ *      may be in the form "/tmp/test/test.tar[src/test.tar][cmd/data.tar]
+ *                          -------------------------------  ------------
+ *                          orig_compress_file               fullpath - temp..
+ *
+ *      fullpath: the full path of compress file in question such as /tmp/a.tar
+ *
+ * The sequence of converting compress filename and content:
+ *      regurlar: first file name , then file content. otherwise the log/hist
+ *                info is not consistent with disk data.
+ *      resotre ; first filecontent, then file name itself, otherwise 
+ *                        can't search the history  correctly
+ */
+static gchar *
+compose_path (const gchar *fullpath, 
+        Compress_info *info, 
+        gboolean forhist,
+        gboolean restore)
+{
+    const gchar *relative_path;
+    gchar       *result = NULL;
+#define URI_HEAD_LEN    7
+
+    if ((NULL == fullpath) || (NULL == info))
+        return NULL;
+    
+    relative_path = fullpath + info->temp_dir_len + 1;
+
+    if (forhist) { 
+        /* 
+         *  Convert hist_path to uri, remove 'file://' then concat with
+         *  relative_path
+         */
+        gchar *uri;
+        
+        uri = g_filename_to_uri (
+                restore ? info->search_path : info->result_path, 
+                NULL, 
+                NULL);
+        result = g_strdup_printf ("%s\t%s", 
+                uri + URI_HEAD_LEN, 
+                relative_path);
+
+        g_free (uri);
+    }else {
+        gchar *esc_path = NULL;
+
+        if (! g_utf8_validate (relative_path, -1, NULL)) {
+            esc_path = g_strescape (relative_path, NULL);
+        }
+
+        if (g_utf8_validate (info->log_path, -1, NULL)) {
+            result = g_strdup_printf ("%s [%s]", 
+                    info->log_path, 
+                    esc_path ? esc_path : relative_path);
+        }else{
+            gchar *uri = g_filename_to_uri (info->log_path, NULL, NULL);
+            result = g_strdup_printf ("%s [%s]", 
+                    uri, 
+                    esc_path ? esc_path : relative_path);
+            g_free (uri);
+        }
+    }
+
+    return result;
+}
+
+/*
+ *  caller pass in orig_compress_file;
+ */
+static gboolean
+compress_write_to_disk (FSEXAM_setting *setting, 
+            const gchar *path,      /* the path of current file */
+            const gchar *origname,  /* old base name            */
+            const gchar *utf8name,  /* new base name            */
+            Compress_info *info,
+            short from_encoding,    /* from encoding            */
+            short to_encoding,      /* to encoding              */
+            gchar **actualname)      /* return the actual used   */
+{
+    static gchar    oldname[PATH_MAX];
+    static gchar    newname[PATH_MAX];
+    gchar           *retname = NULL;
+    gchar           *fname = NULL;
+    gchar           *log_path = NULL;
+    gboolean        ret = FALSE;
+
+    fsexam_errno = ERR_OK;
+
+    /* construct full old name and full new name */
+    g_snprintf (oldname, PATH_MAX - 1, "%s/%s", path, origname);
+    g_snprintf (newname, PATH_MAX - 1, "%s/%s", path, utf8name);
+
+    if (g_file_test (newname, G_FILE_TEST_EXISTS)) {
+        fsexam_errno = ERR_NAME_EXIST;
+        fname = find_non_exist_name (newname);
+
+        if (fname == NULL) {
+            fsexam_errno = ERR_CANNOT_RENAME;
+        }else if (rename(oldname, fname) == 0){
+            retname = g_strdup (basename (fname));
+            ret = TRUE;
+        }else{
+            fsexam_errno = ERR_CANNOT_RENAME;
+        }
+    }else{
+        if (rename(oldname, newname) == 0){
+            retname = g_strdup (utf8name);
+            ret = TRUE;
+        }else{
+            fsexam_errno = ERR_CANNOT_RENAME;
+        }
+    }
+
+    /* history file; GUI vs. CLI */
+    if ((ret)  && (! (setting->flags & FSEXAM_SETTING_FLAGS_UNDO))) {
+        gboolean same_serial = TRUE;
+        if (setting->flags & FSEXAM_SETTING_FLAGS_DIFF_SERIAL) {
+            setting->flags &= ~FSEXAM_SETTING_FLAGS_DIFF_SERIAL;
+            same_serial = FALSE;
+        }
+
+        gchar *hist_path =  compose_path (newname, info, TRUE, FALSE);
+
+        fsexam_history_put (setting->hist_info, 
+                            ConvNameSpecial, 
+                            hist_path,
+                            from_encoding, 
+                            to_encoding, 
+                            same_serial);
+
+        g_free (hist_path);
+    } 
+  
+    ret ? ++setting->succ_num : ++setting->fail_num;
+
+    log_path = compose_path (ret ? newname : oldname, info, FALSE, FALSE);
+
+    /* log file */
+    if (fsexam_errno == ERR_OK) {
+        gchar   *msg = g_strdup_printf ("%s -> %s", 
+                        id2encoding (from_encoding), 
+                        id2encoding (to_encoding));
+        fsexam_log_puts (setting->log_info, log_path, msg);
+        if (setting->display_msg) {
+            setting->display_msg (log_path, msg);
+        }
+        g_free (msg);
+    }else if (fsexam_errno == ERR_NAME_EXIST) {
+        fsexam_log_puts (setting->log_info, log_path, NULL);
+        if (setting->display_msg) {
+            setting->display_msg (log_path, fsexam_error_get_msg ());
+        }
+    }else{
+        fsexam_log_puts (setting->log_info, log_path, NULL);
+        if (setting->display_msg) {
+            setting->display_msg (log_path, fsexam_error_get_msg ());
+        }
+
+    }
+
+    if (actualname != NULL)
+        *actualname = retname;  //freed outside
+    else
+        g_free (retname);
+
+    g_free (log_path);
+    g_free (fname);
+
+    return ret;
+}
+
+/*
+ * Restore single file.
+ *
+ * Note that search path is in info directly, don't use compose any more.
+ * This is diff with non-restore operation.
+ */
+static gboolean
+compress_restore_single_filename (FSEXAM_setting *setting,
+        const gchar *fullpath,
+        const gchar *dname,
+        const gchar *bname,
+        Compress_info *info,
+        gchar **newname)
+{
+    gboolean ret = FALSE;
+    Hist_item *item = NULL;
+    gchar     *converted_text = NULL;
+    gchar     *log_path;
+
+    fsexam_errno = ERR_OK;
+
+    item = fsexam_history_search (setting->hist_info, info->search_path, TRUE);
+
+    if ((item == NULL) || (item->convtype != ConvNameSpecial)) {
+        fsexam_errno = ERR_HIST_NO_ITEM;
+        goto done;
+    }
+
+    converted_text = g_convert (bname,
+            strlen (bname),
+            id2encoding (item->from_encoding),
+            id2encoding (item->to_encoding),
+            NULL,
+            NULL,
+            NULL);
+    
+    if (converted_text == NULL) {
+        fsexam_errno = ERR_CANNOT_CONVERT;
+        goto done;
+    }
+
+    ret = compress_write_to_disk (setting,
+            dname,
+            bname,
+            converted_text,
+            info,
+            item->to_encoding,
+            item->from_encoding,
+            newname);
+
+    g_free (converted_text);
+
+    return ret;
+
+done:
+    log_path = compose_path (fullpath, info, FALSE, FALSE);
+    fsexam_log_puts (setting->log_info, log_path, NULL);
+    if (setting->display_msg)
+        setting->display_msg (log_path, fsexam_error_get_msg());
+
+    g_free (log_path);
+
+
+    return ret;
+}
+
+/*
+ *
+ */
+static gboolean
+compress_convert_single_filename (FSEXAM_setting *setting,
+        const gchar *fullpath,
+        const gchar *dname, /* info->log path, info->dname */
+        const gchar *bname,
+        Compress_info *info,
+        gchar **newname)
+{
+    Score       score;
+    Encoding    *encoding = NULL;
+    gboolean    ret = FALSE;
+
+    fsexam_errno = ERR_OK;  /* initialize fsexam_errno */
+
+    if (setting->pref->auto_detect) { /* handle encoding auto detection */
+        GList *detected_encoding = str_encoding_detect (bname, 
+                DEFAULT_DETECTING_FLAG);
+        setting->pref->encode_list = fsexam_encoding_add_auto (
+                setting->pref->encode_list, 
+                detected_encoding);
+        auto_encoding_free (detected_encoding);
+    }
+
+    score = fsexam_encoding_decode (setting->pref->encode_list, 
+                             ConvName, 
+                             (char *)bname, 
+                             strlen(bname), 
+                             setting->pref->force);
+
+
+    if (setting->pref->dry_run){    /* dry run */
+        //don't support dryrun
+    } else {                    /* real convert */  
+        gint     index = 0;
+        gchar    *actualname = NULL;
+
+        if ((score == FAIL) || (score == ORIGINAL)){
+            fsexam_errno = (score == FAIL) ? ERR_NO_PROPER_ENCODING 
+                                           : ERR_NAME_UTF8_ALREADY;
+            
+            goto done;
+        }   
+       
+        if (setting->gold_index != -1) {
+            index = setting->gold_index;
+	    } else if (setting->pref->auto_conversion) {
+            index = fsexam_encoding_get_first_index (
+                    setting->pref->encode_list);
+        } else {
+            index = setting->get_index (setting->pref->encode_list, TRUE);
+        }
+
+        if (-1 == index) {
+            goto cleanup;
+        }
+
+        encoding = (Encoding *)g_list_nth_data (setting->pref->encode_list, 
+                index);
+        if (NULL == encoding){
+            fsexam_errno = ERR_ENCODING_INDEX_INVALID;
+            goto done;
+        }
+
+        ret = compress_write_to_disk (setting, 
+                dname, 
+                bname, 
+                encoding->u.converted_text, 
+                info,
+                encoding->encodingID, 
+                encoding2id ("UTF-8"),
+                &actualname);
+
+        if ((ret) && (newname)) {   // Return new name
+            *newname = actualname;
+        }else{
+            g_free (actualname);
+        }
+
+        return ret;
+    }
+    
+done:
+    if (fsexam_errno != ERR_OK && !setting->pref->dry_run) {
+        gchar *log_path;
+
+        log_path = compose_path (fullpath, info, FALSE, FALSE);
+        fsexam_log_puts (setting->log_info, log_path, NULL);
+        if (setting->display_msg)
+            setting->display_msg (log_path, fsexam_error_get_msg());
+
+        g_free (log_path);
+    }
+
+cleanup:
+
+    if (setting->pref->auto_detect)
+        setting->pref->encode_list = fsexam_encoding_remove_auto (
+                setting->pref->encode_list);
+
+    return ret;
+}
+
+/*
+ * Convert the name of files in archive/compress type file
+ * And will handle flags
+ */
+static gboolean
+compress_convert_filename (const gchar *fullpath, 
+        Compress_info *info,
+        FSEXAM_setting *setting, 
+        gboolean restore)
+{
+    gchar           *bname = NULL;
+    gchar           *dname = NULL;
+    gchar           *newname = NULL;
+    gchar           *abs_path = NULL;
+    struct stat     statbuf;
+    gboolean        ret = FALSE;
+    gboolean        need_free_newname = FALSE;
+
+    if ((NULL == fullpath) || (NULL == info) || (NULL == setting))
+        return FALSE;
+
+    fsexam_errno = ERR_OK;
+    bname = g_path_get_basename (fullpath);
+    dname = g_path_get_dirname (fullpath);
+
+    if (lstat (fullpath, &statbuf) == -1) 
+        fsexam_errno = ERR_FILE_NONEXIST;
+    else if (!(S_ISREG(statbuf.st_mode)) 
+            && !(S_ISDIR(statbuf.st_mode)) && !(S_ISLNK(statbuf.st_mode))){
+        fsexam_errno = ERR_FILE_TYPE_NOT_SUPPORT; 
+    }else if ((! setting->pref->hidden) && (*bname == '.')){
+        fsexam_errno = ERR_IGNORE_HIDDEN_FILE;
+    }else if ((!setting->pref->remote) 
+            && (is_remote_file (setting->remote_path, fullpath))) {
+        fsexam_errno = ERR_IGNORE_REMOTE_FILE;
+    }
+
+    if (fsexam_errno != ERR_OK) {
+        gchar *log_path = compose_path (fullpath, info, FALSE, FALSE);
+
+        fsexam_log_puts (setting->log_info, log_path, NULL);
+        if (setting->display_msg)
+            setting->display_msg (log_path, fsexam_error_get_msg());
+        g_free (log_path);
+
+        goto done;
+    }
+   
+    if (restore && (strlen (fullpath) != info->temp_dir_len)) {
+       ret = compress_restore_single_filename (setting,
+                fullpath, 
+                dname,
+                bname,
+                info, 
+                &newname);
+    }else if (strlen (fullpath) != info->temp_dir_len) {
+        if ((!setting->pref->force) 
+                && (str_isutf8 (bname, DEFAULT_DETECTING_FLAG))) {
+            gchar *log_path = compose_path (fullpath, info, FALSE, FALSE);
+            fsexam_errno = ERR_NAME_UTF8_ALREADY;
+
+            fsexam_log_puts (setting->log_info, log_path, NULL);
+            if (setting->display_msg)
+                setting->display_msg (log_path, fsexam_error_get_msg());
+            g_free (log_path);
+        }else{
+            ret = compress_convert_single_filename (setting,
+                fullpath,
+                dname,
+                bname,
+                info,
+                &newname);
+        }
+    }
+
+    if (ret && newname != NULL) {
+        abs_path = g_strdup_printf ("%s/%s", dname, newname);
+        need_free_newname = TRUE;
+    }else{
+        abs_path = (gchar *)fullpath;
+    }
+
+    if (setting->flags & FSEXAM_SETTING_FLAGS_STOP)
+        goto done;
+
+    if (fsexam_special_is_compress (abs_path, NULL)){ 
+        /* nested compress file */
+        gchar   *log_path = compose_path (abs_path, info, FALSE, FALSE);
+        gchar   *result_path = compose_path (abs_path, info, TRUE, FALSE);
+        gchar   *search_path; 
+       
+        if (restore) {
+            search_path = g_filename_to_uri (info->search_path, NULL, NULL);
+
+        }else{
+            search_path = compose_path (abs_path, info, TRUE, TRUE);
+        }
+            
+        Compress_info *new_info = compress_info_new (result_path, 
+                search_path + URI_HEAD_LEN, 
+                log_path);
+
+        g_free (log_path); 
+        g_free (result_path);
+        g_free (search_path);
+
+        if (NULL == new_info) {
+            goto done;
+        }
+
+        compress_common_convert (abs_path, 
+                new_info,
+                setting, 
+                restore, 
+                TRUE);
+
+        compress_info_free (new_info);
+    } else if (setting->pref->recursive 
+            && S_ISDIR (statbuf.st_mode)) { /* Directory */
+        const gchar *filename = NULL;
+        gchar       *old_search_path = g_strdup (info->search_path);
+        GDir        *dp = g_dir_open (abs_path, 0, NULL);
+
+        if (dp == NULL)
+            goto done;
+
+        while ((filename = g_dir_read_name (dp)) != NULL) {
+            gchar *childname = g_strdup_printf ("%s/%s", abs_path, filename);
+
+            if (restore) {
+                gchar *tmp;
+                tmp = g_strdup_printf (
+                        info->temp_dir_len == strlen (abs_path) ? "%s\t%s" 
+                                                                : "%s/%s",
+                        old_search_path, 
+                        filename);
+                g_free (info->search_path);
+                info->search_path = tmp;
+            }
+
+            compress_convert_filename (childname, 
+                    info,
+                    setting, 
+                    restore);
+
+            g_free (childname);
+
+            if (setting->flags & FSEXAM_SETTING_FLAGS_STOP)
+                break;
+        }
+
+        g_free (old_search_path);
+        g_dir_close (dp);
+    }
+
+done:
+    if (need_free_newname) {
+        g_free (newname);
+    }
+
+    g_free (bname);
+    g_free (dname);
+
+    return ret;
+}
+
+/*
+ * Modify file content on the disk
+ */
+static gboolean
+compress_write_back_contents (FSEXAM_setting *setting, 
+        const gchar *fullpath, 
+        Compress_info *info,
+        gchar *converted_contents, 
+        short fid, 
+        short tid)
+{
+    gsize       length;
+    gchar       *hist_path = NULL;
+    gchar       *log_path = NULL;
+    gboolean    same_serial = TRUE;
+    gboolean    need_free = FALSE;
+    gboolean    ret = FALSE;
+    const gchar  *from_encoding = id2encoding (fid);
+    const gchar  *to_encoding = id2encoding (tid);
+
+    if (converted_contents == NULL) {
+        gchar        *contents = NULL;
+        gboolean    err;
+
+        err = g_file_get_contents (fullpath, &contents, &length, NULL);
+
+        if (err && !contents) {
+            fsexam_errno = ERR_CANNOT_READ;
+            goto done;
+        } else if (length == 0) {
+            fsexam_errno = ERR_EMPTY_FILE;
+            goto done;
+        }
+    
+        converted_contents = g_convert (contents,
+                                        length,
+                                        to_encoding,
+                                        from_encoding,
+                                        NULL,
+                                        NULL,
+                                        NULL);
+
+        g_free (contents);
+
+        if (converted_contents == NULL) {
+            fsexam_errno = ERR_CANNOT_CONVERT;
+            goto done;
+        }
+
+        need_free = TRUE;
+    }
+
+    length = strlen (converted_contents);
+
+    /* Modify file contents on the disk */
+    if (g_file_set_contents (fullpath, converted_contents, length, NULL)) {
+        ret = TRUE;
+        ++setting->succ_num;
+    }else{
+        fsexam_errno = ERR_CANNOT_WRITE;
+        ++setting->fail_num;
+        goto done;
+    }
+    
+
+    if (setting->flags & FSEXAM_SETTING_FLAGS_UNDO) {
+        goto done;
+    }
+
+    if (setting->flags & FSEXAM_SETTING_FLAGS_DIFF_SERIAL) {
+        setting->flags &= ~FSEXAM_SETTING_FLAGS_DIFF_SERIAL;
+        same_serial = FALSE;
+    }
+
+    hist_path = compose_path (fullpath, info, TRUE, FALSE);
+    
+    fsexam_history_put (setting->hist_info, 
+                        ConvContentSpecial, 
+                        hist_path,
+                        fid,
+                        tid,
+                        same_serial);
+
+done:
+    log_path = compose_path (fullpath, info, FALSE, FALSE);
+
+    /* log file */
+    if (fsexam_errno == ERR_OK) {
+        gchar   *msg = g_strdup_printf (_("[Content] %s -> %s"), 
+                        from_encoding, 
+                        to_encoding);
+        fsexam_log_puts (setting->log_info, log_path, msg);
+        if (setting->display_msg) {
+            setting->display_msg (log_path, msg);
+        }
+        g_free (msg);
+    }else{
+        fsexam_log_puts (setting->log_info, log_path, NULL);
+        if (setting->display_msg) {
+            setting->display_msg (log_path, fsexam_error_get_msg ());
+        }
+    }
+
+
+    g_free (hist_path);
+    g_free (log_path);
+
+    if (need_free)
+        g_free (converted_contents);
+
+    return ret;
+}
+
+/*
+ * Restore single file's content.
+ */
+static gboolean
+compress_restore_single_file_content (const gchar *fullpath, 
+        Compress_info *info,
+        FSEXAM_setting *setting)
+{
+    gboolean    ret = FALSE;
+    gchar       *hist_path = NULL;
+    gchar       *log_path = NULL;
+    Hist_item   *item = NULL;
+
+    ++setting->total_num;
+    fsexam_errno = ERR_OK;
+
+    hist_path = compose_path (fullpath, info, TRUE, TRUE);
+    item = fsexam_history_search (setting->hist_info, hist_path, FALSE);
+
+    if ((item == NULL) || (item->convtype != ConvContentSpecial)) {
+        fsexam_errno = ERR_HIST_NO_ITEM;
+        goto done;
+    }
+
+    ret = compress_write_back_contents (setting, 
+            fullpath, 
+            info,                   /* Compress info struct */
+            NULL,                   /* contents pointer */
+            item->to_encoding, 
+            item->from_encoding);
+
+    goto cleanup;
+    
+done:
+    log_path = compose_path (fullpath, info, FALSE, FALSE);
+
+    fsexam_log_puts (setting->log_info, log_path, NULL);
+    if (setting->display_msg)
+        setting->display_msg (log_path, fsexam_error_get_msg());
+   
+cleanup:
+    g_free (hist_path);
+    g_free (log_path);
+
+    return ret;
+}
+
+/* 
+ * Convert single one file's content. Don't care flags
+ */
+static gboolean
+compress_convert_single_file_content (const gchar *fullpath, 
+        Compress_info *info,
+        FSEXAM_setting *setting)
+{
+    Score       score;
+    Encoding    *encoding = NULL;
+    gboolean    err;
+    gchar       *sample_contents = NULL;
+    gchar       *contents = NULL;
+    gsize       length;
+    gint        index = 0;
+    gboolean    need_free_contents = FALSE;
+    gboolean    ret = FALSE;
+
+    fsexam_errno = ERR_OK;
+    ++setting->total_num;
+
+    if (! file_validate_for_contentconv (fullpath, setting)) { 
+        /* Don't need convert current file's content */
+        goto done; 
+    }
+
+    /* handle encoding auto detection, plain text need this */
+    if (setting->pref->auto_detect) { 
+        GList *detected_encoding;
+        
+        detected_encoding = file_encoding_detect (fullpath, 
+                DEFAULT_DETECTING_FLAG);
+        setting->pref->encode_list = fsexam_encoding_add_auto (
+                setting->pref->encode_list, 
+                detected_encoding);
+        auto_encoding_free (detected_encoding);
+    }
+
+    if (! fsexam_is_plain_text (fullpath, setting)) {
+        fsexam_errno = ERR_FILE_TYPE_NOT_SUPPORT;
+        goto done;
+    }
+
+    /* plain text now */
+    err = g_file_get_contents (fullpath, &contents, &length, NULL);
+    if (err && !contents) {
+        fsexam_errno = ERR_CANNOT_READ;
+        goto done;
+    } else if (length == 0) {
+        fsexam_errno = ERR_EMPTY_FILE;
+        goto done;
+    }
+
+    sample_contents = get_sample_text (contents, &length);
+    score = fsexam_encoding_decode (setting->pref->encode_list,
+                        ConvContent,
+                        sample_contents,
+                        length,
+                        setting->pref->force);
+
+    g_free (contents);
+    g_free (sample_contents);
+
+    need_free_contents = TRUE;      /* free contents in encoding_list */
+
+    if (setting->pref->dry_run) {
+        /* Don't support dry run for special file */
+    }else{
+        if ((score == FAIL) || (score == ORIGINAL)){
+            fsexam_errno = (score == FAIL) ? ERR_NO_PROPER_ENCODING 
+                                           : ERR_CONTENT_UTF8_ALREADY;
+            goto done;
+        }   
+        
+        if (setting->gold_index != -1) {
+            index = setting->gold_index;
+        } else if (setting->pref->auto_conversion) {
+            index = fsexam_encoding_get_first_index (
+                            setting->pref->encode_list);
+        } else {
+            index = setting->get_index (setting->pref->encode_list, FALSE);
+        }
+
+        if (index == -1) {
+            goto cleanup; 
+        }
+
+        encoding = (Encoding *)g_list_nth_data (setting->pref->encode_list, 
+                                                index);
+        if (NULL == encoding){
+            fsexam_errno = ERR_ENCODING_INDEX_INVALID;
+            goto done;
+        }
+
+        ret = compress_write_back_contents (setting, 
+                    fullpath, 
+                    info,
+                    NULL,       /* contents pointer */
+                    encoding->encodingID, 
+                    encoding2id ("UTF-8"));
+    }
+        
+done:
+    if (fsexam_errno != ERR_OK && !setting->pref->dry_run) {
+        gchar *log_path = compose_path (fullpath, info, FALSE, FALSE);
+        
+        fsexam_log_puts (setting->log_info, log_path, NULL);
+        if (setting->display_msg)
+            setting->display_msg (log_path, fsexam_error_get_msg());
+
+        g_free (log_path);
+    }
+
+cleanup:
+    if (setting->pref->auto_detect)
+        setting->pref->encode_list = fsexam_encoding_remove_auto (
+                                            setting->pref->encode_list);
+
+    if (need_free_contents)
+        fsexam_encoding_cleanup_content (setting->pref->encode_list);
+
+    return ret;
+}
+
+/*
+ *  Convert the content of unarchive/uncompress files.
+ *  don't handle symlink for special type file.
+ */
+static gboolean
+compress_convert_content (const gchar *fullpath, 
+        Compress_info *info,
+        FSEXAM_setting *setting, 
+        gboolean restore)
+{
+    gboolean ret = FALSE;
+    gchar   *abs_path = get_abs_path (fullpath);
+    struct  stat statbuf;
+
+    if ((abs_path == NULL) || (setting == NULL) || (info == NULL))
+        return FALSE;
+
+    if (lstat (abs_path, &statbuf) == -1) {
+        fsexam_errno = ERR_CANNOT_OPEN;
+        goto done;
+    }
+
+    if (fsexam_special_is_compress (abs_path, NULL)){ 
+        /* nested compress file */
+        gchar   *search_path = compose_path (abs_path, info, TRUE, TRUE);
+        gchar   *result_path = compose_path (abs_path, info, TRUE, FALSE);
+        gchar   *log_path = compose_path (abs_path, info, FALSE, FALSE);
+        Compress_info *new_info = compress_info_new (result_path, 
+                                                    search_path, 
+                                                    log_path);
+        if (NULL == new_info) {
+            goto done;
+        }
+
+        compress_common_convert (abs_path, 
+                new_info,
+                setting, 
+                restore, 
+                FALSE);
+
+        compress_info_free (new_info);
+    }else if (S_ISREG (statbuf.st_mode)) {  /* regular file */
+        if (restore) {
+            compress_restore_single_file_content (abs_path, 
+                    info,
+                    setting);
+        }else{
+            compress_convert_single_file_content (abs_path, 
+                    info,
+                    setting);
+        }
+    } else if (setting->pref->recursive 
+            && S_ISDIR (statbuf.st_mode)) { /* Directory */
+        const gchar *filename = NULL;
+        GDir        *dp = g_dir_open (abs_path, 0, NULL);
+
+        if (dp == NULL)
+            goto done;
+
+        while ((filename = g_dir_read_name (dp)) != NULL) {
+            gchar *childname = g_strdup_printf ("%s/%s", abs_path, filename);
+
+            compress_convert_content (childname, 
+                    info,
+                    setting, 
+                    restore);
+
+            g_free (childname);
+
+            if (setting->flags && FSEXAM_SETTING_FLAGS_STOP)
+                break;
+        }
+
+        g_dir_close (dp);
+    }
+
+done:
+    g_free (abs_path);
+
+    return ret;
+}
+
+/*
+ * Whether give file is supported archive/compress file or not
+ */
+static gboolean
+fsexam_special_is_compress (const gchar *filename, Compress_Type *type)
+{
+    int i;
+
+    if (NULL == filename) {
+        return FALSE;
+    }
+
+    for (i = 0; i < sizeof (compress_pair)/sizeof (compress_pair[0]); i++) {
+        if (g_str_has_suffix (filename, compress_pair[i][0])) {
+            if (type != NULL)
+                *type = (Compress_Type) i;
+
+            return TRUE;
+        }
+    }
+    
+    return FALSE;
+}
+
+static gboolean
+get_iso8859_locale (FSEXAM_setting *setting)
+{
+    static gboolean first = TRUE;
+
+    if (first) {
+        char  *old_locale = setlocale (LC_ALL, NULL);
+
+        if ((setlocale (LC_ALL, "en_US.ISO8859-1")) != NULL) {
+            iso8859_locale = "en_US.ISO8859-1";
+        }else if ((setlocale (LC_ALL, "fr_FR.ISO8859-1")) != NULL) {
+            iso8859_locale = "fr_FR.ISO8859-1";
+        }else if ((setlocale (LC_ALL, "de_DE.ISO8859-1")) != NULL) {
+            iso8859_locale = "de_DE.ISO8859-1";
+        }else if ((setlocale (LC_ALL, "es_ES.ISO8859-1")) != NULL) {
+            iso8859_locale = "es_ES.ISO8859-1";
+        }else if ((setlocale (LC_ALL, "it_IT.ISO8859-1")) != NULL) {
+            iso8859_locale = "it_IT.ISO8859-1";
+        }else if ((setlocale (LC_ALL, "sv_SE.ISO8859-1")) != NULL) {
+            iso8859_locale = "sv_SE.ISO8859-1";
+        }else{
+            iso8859_locale = NULL;
+        }
+
+        /* reset locale */
+        if (old_locale != NULL)
+            setlocale (LC_ALL, old_locale);
+
+        first = FALSE;
+    }
+
+    if (iso8859_locale == NULL && setting->display_msg) 
+        setting->display_msg (NULL, _("Can not run tar command due to lack of iso8859-1 locale, please see fsexam(1) man page for more info."));
+ 
+    return (iso8859_locale != NULL);
+}
+
+static gboolean
+run_cmd (gchar **argv, gchar **envp, FSEXAM_setting *setting)
+{
+    FILE *fp = NULL;
+    gchar tmp[200];
+    GError *error = NULL;
+    gboolean ret = FALSE;
+    gint child_stderr;
+
+    if (! g_spawn_async_with_pipes (NULL, argv, envp, 0,
+                NULL, NULL, NULL, NULL,
+                NULL,
+                &child_stderr,
+                &error)) {
+        setting->display_msg (NULL, error->message); 
+        g_error_free (error);
+        goto DONE;
+    }
+
+    fp = fdopen (child_stderr, "r");
+    if (fp == NULL) {
+        goto DONE;
+    }
+
+    if (fgets (tmp, sizeof (tmp), fp) != NULL) {
+        setting->display_msg (NULL, tmp); 
+        goto DONE;
+    }
+
+    ret = TRUE;
+
+DONE:
+    if (fp != NULL)
+        fclose (fp);
+
+    return ret;
+}
+
+static gboolean
+uncompress_pre (const gchar *fullpath, const gchar *tmpdir,
+        FSEXAM_setting *setting)
+{
+    gchar **argv = NULL;
+    gboolean ret = FALSE;
+
+    if (! get_iso8859_locale (setting)) {
+       return FALSE;
+    }
+
+    /* cp target file into current directory */
+    argv = g_malloc (sizeof (gchar **) * 4);
+    argv[0] = "/usr/bin/cp";
+    argv[1] = (gchar *)fullpath;
+    argv[2] = (gchar *)tmpdir;
+    argv[3] = NULL;
+
+    if (! run_cmd (argv, NULL, setting))
+        goto DONE;
+
+    ret = TRUE;
+
+DONE:
+    g_free (argv);
+
+    return ret;
+}
+
+static gboolean
+delete_files (const gchar *filename, FSEXAM_setting *setting)
+{
+    gchar **argv = NULL;
+    gboolean ret = FALSE;
+
+    /* rm target file into current directory */
+    argv = g_malloc (sizeof (gchar **) * 4);
+    argv[0] = "/usr/bin/rm";
+    argv[1] = "-rf";
+    argv[2] = (gchar *)filename;
+    argv[3] = NULL;
+
+    if (! run_cmd (argv, NULL, setting))
+        goto DONE;
+
+    ret = TRUE;
+
+DONE:
+    g_free (argv);
+
+    return ret;
+}
+
+static gboolean
+uncompress_post (const gchar *filename, FSEXAM_setting *setting)
+{
+   if (! delete_files (filename, setting))
+       return FALSE;
+
+   return TRUE;
+}
+
+static gboolean
+uncompress_bz2 (const gchar *fullpath, const gchar *tmpdir,
+        FSEXAM_setting *setting)
+{
+    gchar *bname = NULL;
+    gchar **argv = NULL;
+    gchar **envp = NULL;
+    gboolean ret = FALSE;
+        
+    if (! uncompress_pre (fullpath, tmpdir, setting)) {
+        return FALSE;
+    }
+
+    bname = g_path_get_basename (fullpath);
+
+    argv = g_malloc (sizeof (gchar **) * 4);
+    argv[0] = "/usr/bin/bunzip2";
+    argv[1] = bname;
+    argv[2] = NULL;
+
+    /* bunzip2 */
+    if (! run_cmd (argv, NULL, setting)) {
+        goto DONE;
+    }
+
+    /* untar */
+    *(bname + strlen (bname) - 4) = '\0';  /* 4 is strlen(".bz2") */
+    argv[0] = TARCMD;
+    argv[1] = "-xf";
+    argv[2] = bname;
+    argv[3] = NULL;
+
+    envp = g_malloc (sizeof (gchar **) * 2);
+    envp[0] = iso8859_locale;
+    envp[1] = NULL;
+
+    if (! run_cmd (argv, envp, setting)) 
+        goto DONE;
+
+    /* delete bname */
+    if (! uncompress_post (bname, setting))
+        goto DONE;
+
+
+    ret = TRUE;
+
+DONE:
+    g_free (bname);
+    g_free (argv);
+    g_free (envp);
+
+    return ret;
+}
+
+static gboolean
+uncompress_gz (const gchar *fullpath, const gchar *tmpdir,
+        FSEXAM_setting *setting)
+{
+    gchar *bname = NULL;
+    gchar **argv = NULL;
+    gchar **envp = NULL;
+    gboolean ret = FALSE;
+        
+    if (! uncompress_pre (fullpath, tmpdir, setting)) {
+        return FALSE;
+    }
+
+    bname = g_path_get_basename (fullpath);
+
+    argv = g_malloc (sizeof (gchar **) * 4);
+    argv[0] = "/usr/bin/gunzip";
+    argv[1] = bname;
+    argv[2] = NULL;
+
+    /* bunzip2 */
+    if (! run_cmd (argv, NULL, setting)) {
+        goto DONE;
+    }
+
+    /* untar */
+    *(bname + strlen (bname) - 3) = '\0';  /* 3 is strlen(".gz") */
+    argv[0] = TARCMD;
+    argv[1] = "-xf";
+    argv[2] = bname;
+    argv[3] = NULL;
+
+    envp = g_malloc (sizeof (gchar **) * 2);
+    envp[0] = iso8859_locale;
+    envp[1] = NULL;
+
+    if (! run_cmd (argv, envp, setting)) 
+        goto DONE;
+
+    /* delete bname */
+    if (! uncompress_post (bname, setting))
+        goto DONE;
+
+
+    ret = TRUE;
+
+DONE:
+    g_free (bname);
+    g_free (argv);
+    g_free (envp);
+
+    return ret;
+}
+
+static gboolean
+uncompress_tar (const gchar *fullpath, FSEXAM_setting *setting)
+{
+    gchar **argv = NULL;
+    gchar **envp = NULL;
+    gboolean ret = FALSE;
+        
+    if (! get_iso8859_locale (setting))
+        return FALSE;
+
+    argv = g_malloc (sizeof (gchar **) * 4);
+    argv[0] = TARCMD;
+    argv[1] = "-xf";
+    argv[2] = (gchar *)fullpath;
+    argv[3] = NULL;
+
+    envp = g_malloc (sizeof (gchar **) * 2);
+    envp[0] = iso8859_locale;
+    envp[1] = NULL;
+
+    if (! run_cmd (argv, envp, setting)) 
+        goto DONE;
+
+    ret = TRUE;
+
+DONE:
+    g_free (argv);
+    g_free (envp);
+
+    return ret;
+}
+
+static gboolean
+uncompress_unzip (const gchar *fullpath, FSEXAM_setting *setting)
+{
+    gchar **argv = NULL;
+    gboolean ret = FALSE;
+        
+    argv = g_malloc (sizeof (gchar **) * 4);
+    argv[0] = "/usr/bin/unzip";
+    argv[1] = "-q";
+    argv[2] = (gchar *)fullpath;
+    argv[3] = NULL;
+
+    if (! run_cmd (argv, NULL, setting)) 
+        goto DONE;
+
+    ret = TRUE;
+
+DONE:
+    g_free (argv);
+
+    return ret;
+}
+
+static gboolean
+uncompress_Z (const gchar *fullpath, const gchar *tmpdir,
+        FSEXAM_setting *setting)
+{
+    gchar *bname = NULL;
+    gchar **argv = NULL;
+    gchar **envp = NULL;
+    gboolean ret = FALSE;
+        
+    if (! uncompress_pre (fullpath, tmpdir, setting)) {
+        return FALSE;
+    }
+
+    bname = g_path_get_basename (fullpath);
+
+    argv = g_malloc (sizeof (gchar **) * 4);
+    argv[0] = "/usr/bin/uncompress";
+    argv[1] = "-c";
+    argv[2] = bname;
+    argv[3] = NULL;
+
+    /* bunzip2 */
+    if (! run_cmd (argv, NULL, setting)) {
+        goto DONE;
+    }
+
+    /* untar */
+    *(bname + strlen (bname) - 2) = '\0';  /* 2 is strlen(".Z") */
+    argv[0] = TARCMD;
+    argv[1] = "-xf";
+    argv[2] = bname;
+    argv[3] = NULL;
+
+    envp = g_malloc (sizeof (gchar **) * 2);
+    envp[0] = iso8859_locale;
+    envp[1] = NULL;
+
+    if (! run_cmd (argv, envp, setting)) 
+        goto DONE;
+
+    /* delete bname */
+    if (! uncompress_post (bname, setting))
+        goto DONE;
+
+
+    ret = TRUE;
+
+DONE:
+    g_free (bname);
+    g_free (argv);
+    g_free (envp);
+
+    return ret;
+}
+
+/*
+ * Uncompress .bz2, .gz, .zip, .Z
+ */
+static gboolean
+fsexam_uncompress (const gchar *fullpath, const gchar *tmpdir,
+        Compress_Type type, FSEXAM_setting *setting)
+{
+    /* uncompress */
+    if (type == COMP_TARGZ) {
+        return uncompress_gz (fullpath, tmpdir, setting);
+    } else if (type == COMP_TARBZ2) {
+        return uncompress_bz2 (fullpath, tmpdir, setting);
+    } else if (type == COMP_TAR) {
+        return uncompress_tar (fullpath, setting);
+    } else if (type == COMP_ZIP) {
+        return uncompress_unzip (fullpath, setting);
+    } else if (type == COMP_Z) {
+        return uncompress_Z (fullpath, tmpdir, setting);
+    } else {
+         if (setting->display_msg)
+             setting->display_msg (fullpath,
+                     _("Don't support this file type"));
+    }
+
+    return FALSE;
+}
+
+static gboolean
+compress_bz2 (const gchar *target_name, FSEXAM_setting *setting)
+{
+    gchar **argv = NULL;
+    gboolean ret = FALSE;
+
+    argv = g_malloc (sizeof (gchar **) * 5);
+    argv[0] = TARCMD;
+    argv[1] = "-cjf";
+    argv[2] = (gchar *)target_name;
+    argv[3] = ".";
+    argv[4] = NULL;
+
+    if (! run_cmd (argv, NULL, setting)) {
+        goto DONE;
+    }
+
+    ret = TRUE;
+
+DONE:
+    g_free (argv);
+
+    return ret;
+}
+
+static gboolean
+compress_tar (const gchar *target_name, FSEXAM_setting *setting)
+{
+    gchar **argv = NULL;
+    gboolean ret = FALSE;
+
+    argv = g_malloc (sizeof (gchar **) * 5);
+    argv[0] = TARCMD;
+    argv[1] = "-cf";
+    argv[2] = (gchar *)target_name;
+    argv[3] = ".";
+    argv[4] = NULL;
+
+    if (! run_cmd (argv, NULL, setting)) {
+        goto DONE;
+    }
+
+    ret = TRUE;
+
+DONE:
+    g_free (argv);
+
+    return ret;
+}
+
+static gboolean
+compress_Z (const gchar *target_name, FSEXAM_setting *setting)
+{
+    gchar **argv = NULL;
+    gboolean ret = FALSE;
+
+    argv = g_malloc (sizeof (gchar **) * 5);
+    argv[0] = TARCMD;
+    argv[1] = "-cZf";
+    argv[2] = (gchar *)target_name;
+    argv[3] = ".";
+    argv[4] = NULL;
+
+    if (! run_cmd (argv, NULL, setting)) {
+        goto DONE;
+    }
+
+    ret = TRUE;
+
+DONE:
+    g_free (argv);
+
+    return ret;
+}
+
+/*
+ * zip in the current directory, then move to target dir.
+ * Otherwise zip(1) will append the new files into old file
+ */
+static gboolean
+compress_zip (const gchar *target_name, const gchar *tmpdir,
+        FSEXAM_setting *setting)
+{
+    gchar **argv = NULL;
+    gboolean ret = FALSE;
+    gchar *bname = NULL;
+    gchar *tmpname = NULL;
+
+    bname = g_path_get_basename (target_name);
+    tmpname = g_strdup_printf ("%s/%s", tmpdir, bname);
+
+    argv = g_malloc (sizeof (gchar **) * 5);
+    argv[0] = "/usr/bin/zip";
+    argv[1] = "-qr";
+    argv[2] = tmpname;
+    argv[3] = ".";
+    argv[4] = NULL;
+
+    if (! run_cmd (argv, NULL, setting)) {
+        goto DONE;
+    }
+
+    argv[0] = "/usr/bin/cp";
+    argv[1] = tmpname;
+    argv[2] = (gchar *)target_name;
+    argv[3] = NULL;
+
+    if (! run_cmd (argv, NULL, setting))
+        goto DONE;
+
+    ret = TRUE;
+
+DONE:
+    g_free (argv);
+    g_free (bname);
+    g_free (tmpname);
+
+    return ret;
+}
+
+
+static gboolean
+compress_gz (const gchar *target_name, FSEXAM_setting *setting)
+{
+    gchar **argv = NULL;
+    gboolean ret = FALSE;
+
+    argv = g_malloc (sizeof (gchar **) * 5);
+    argv[0] = TARCMD;
+    argv[1] = "-czf";
+    argv[2] = (gchar *)target_name;
+    argv[3] = ".";
+    argv[4] = NULL;
+
+    if (! run_cmd (argv, NULL, setting)) {
+        goto DONE;
+    }
+
+    ret = TRUE;
+
+DONE:
+    g_free (argv);
+
+    return ret;
+}
+
+
+/*
+ * Compress .bz2, .gz, .zip, .Z
+ *  dname: the directory name which will contain the result file
+ *  bname: the result filename, such as *.tar.bz2
+ */
+static gboolean
+fsexam_compress (const gchar *target_name, const gchar *tmpdir,
+        Compress_Type type, FSEXAM_setting *setting)
+{
+    /* uncompress */
+    if (type == COMP_TARGZ) {
+        return compress_gz (target_name, setting);
+    } else if (type == COMP_TARBZ2) {
+        return compress_bz2 (target_name, setting);
+    } else if (type == COMP_TAR) {
+        return compress_tar (target_name, setting);
+    } else if (type == COMP_ZIP) {
+        return compress_zip (target_name, tmpdir, setting);
+    } else if (type == COMP_Z) {
+        return compress_Z (target_name, setting);
+    } else {
+         if (setting->display_msg)
+             setting->display_msg (target_name,
+                     _("Don't support this file type"));
+    }
+
+    return FALSE;
+}
+
+/*
+ * Description: 
+ *      Unarchive/Uncompress file, execute name or content conversion, then
+ *      Rearchive/Recompress and replace the original file.
+ * 
+ * Parameter:
+ *      fullpath: the full path of compress file, such as /tmp/a.tar
+ *      info:     Path needed by compress conversion 
+ */
+static gboolean
+compress_common_convert (const gchar *fullpath, 
+        Compress_info *info,
+        FSEXAM_setting *setting, 
+        gboolean restore, 
+        gboolean nameconvert)
+{
+    Compress_Type   type;
+    gchar    oldcwd[PATH_MAX];
+    gchar    *bname = NULL;
+    gchar    *dname = NULL;
+    gchar    *tempdir = NULL;       /* temparay directory */
+    gchar    *template = NULL;      /* template for temp dir */
+    gchar    *compress_cmd = NULL;
+
+    if (! fsexam_special_is_compress (fullpath, &type)) {
+        return FALSE;
+    }
+
+    /* 
+     * cd to temparary directory at the same directory 
+     * with original file  and then uncompress.
+     */
+    if (getcwd (oldcwd, PATH_MAX) == NULL) {
+        fsexam_errno = ERR_GET_CWD;
+        goto done;
+    }
+
+    bname = g_path_get_basename (fullpath);
+    dname = g_path_get_dirname (fullpath);
+
+    template = g_strdup_printf ("%sXXXXXX", fullpath);
+    tempdir = mkdtemp (template);
+
+    if (tempdir == NULL) {
+        if (fsexam_debug () & FSEXAM_DBG_ARCHIVE)
+            g_print ("mkdtemp return NULL\n");
+
+        fsexam_errno = ERR_NO_RIGHTS;
+        goto done;
+    }
+
+    if (fsexam_debug () & FSEXAM_DBG_ARCHIVE)
+        g_print ("Succeed to create tempdir %s\n", tempdir);
+
+    if (chdir (tempdir)) {          /* uncompress file into temp dir */
+        fsexam_errno = ERR_NO_RIGHTS;
+        goto done;
+    }
+    
+    if (! fsexam_uncompress (fullpath, tempdir, type, setting)) {
+        if (fsexam_debug () & FSEXAM_DBG_ARCHIVE) {
+            g_print ("Error when uncompress %s to %s\n", fullpath, tempdir);
+        }
+        /* chdir to orig dir at error */
+        chdir (oldcwd);
+        goto done;
+    }
+
+    if (fsexam_debug () & FSEXAM_DBG_ARCHIVE)
+        g_print ("Succeed to uncompress %s to %s\n", fullpath, tempdir);
+
+    /* 
+     * Before converting, ensure the tempdir is not empty.
+     * If it is empty, this means that the archive file
+     * may have absolute path, this will dangerous. Or
+     * we met with unknow error.
+     */
+    if (rmdir (tempdir) == 0) {
+        if (fsexam_debug () & FSEXAM_DBG_ARCHIVE) {
+            g_print ("Error: archive use absolute path or met unknow error\n");
+        }
+
+        if (setting->display_msg)
+            setting->display_msg (NULL, 
+                    _("The archive file is empty or has absolute path, so can not convert files in this archive file"));
+        chdir (oldcwd);
+        goto done;
+    }
+
+    info->temp_dir_len = strlen (tempdir);
+
+    if (nameconvert) {      /* name conversion */
+        compress_convert_filename (tempdir,     /* contain unarchived files */
+                info,
+                setting, 
+                restore);
+    } else {                /* content conversion */
+        compress_convert_content (tempdir,      /* contain unarchived files */
+                info,
+                setting, 
+                restore);
+    }
+
+    /* recompress */
+    if (! fsexam_compress (fullpath, tempdir, type, setting)) {
+        /* chdir to orig dir at error */
+        if (fsexam_debug () & FSEXAM_DBG_ARCHIVE) {
+            g_print ("Error when recompress %s to %s\n", tempdir, fullpath);
+        }
+    }
+
+    if (fsexam_debug () & FSEXAM_DBG_ARCHIVE)
+        g_print ("Succeed to recompress %s to %s\n", tempdir, fullpath);
+
+    chdir (oldcwd);
+    if (! delete_files (tempdir, setting)) {
+        if (fsexam_debug () & FSEXAM_DBG_ARCHIVE) {
+            g_print ("Error when delete tempdir: %s\n", tempdir);
+        }
+    }
+
+    if (fsexam_debug () & FSEXAM_DBG_ARCHIVE)
+        g_print ("Succeed to delete tempdir %s\n", tempdir);
+    
+done:
+    g_free (dname);
+    g_free (bname);
+    g_free (template);
+
+    return TRUE;
+}
+
+/* content conversion */
+static gboolean
+fsexam_compress_convert_content (const gchar *fullpath, 
+        FSEXAM_setting *setting, 
+        gboolean restore)
+{
+    Compress_info *info;
+    gboolean      ret;
+
+    info = compress_info_new (fullpath, NULL, NULL);
+
+    if (info == NULL)
+        return FALSE;
+
+    ret = compress_common_convert (fullpath,   /* abs path of archive file */
+                info,
+                setting, 
+                restore,    /* Convert or Restore */
+                FALSE);     /* Content conversion instead of name conversion */
+
+    compress_info_free (info);
+
+    return ret;
+}
+
+
+
+
+/* ----------- For content conversion --------------------------- */
+
+gboolean 
+fsexam_special_is_special_for_content (const gchar *fullpath, 
+        FSEXAM_setting *setting)
+{
+    return fsexam_special_is_compress (fullpath, NULL);
+}
+
+/*
+ * Iterate every special file handling module. This assumes that no two special
+ * module will handle the same one file.  Return True if file has been 
+ * proccessed by one special module; otherwise return False.
+ */
+gboolean 
+fsexam_special_convert_content (const gchar *fullpath, 
+        FSEXAM_setting *setting,
+        gboolean restore)
+{
+    g_return_val_if_fail ((fullpath != NULL) && (setting != NULL), FALSE);
+
+    gboolean        ret;
+
+    if (fsexam_compress_convert_content (fullpath, setting, restore)) {
+        ret = TRUE;
+    }else{
+        ret = FALSE;
+    }
+
+    return ret;
+}
+
+
+/* ------------- For name convert ------------------- */
+
+/*
+ *  If fullpath is supported archive or compress file, then 
+ *  return TRUE, otherwise return FALSE.
+ */
+gboolean 
+fsexam_special_is_special_for_name (const gchar *fullpath, 
+                                    FSEXAM_setting *setting)
+{
+    return fsexam_special_is_compress (fullpath, NULL);
+}
+
+/*===================================================================
+ *  Description:
+ *      Convert or Restore the name of special type file.
+ *
+ *  Parameters:
+ *      setting: Contain Total setting/preference information
+ *      fullpath: Absolute path or archive or compress file, such as
+ *                /tmp/test/test.tar.gz
+ *      hist_search_path: Use the oldname(before restore) as history search
+ *               path. This is only used for restore. This can ensure path
+ *               in history is consistent with path in disk.
+ *      restore: convert name or restore name
+ *
+ *  Return value:
+ *=====================================================================*/
+gboolean 
+fsexam_compress_convert_name (FSEXAM_setting *setting, 
+                            const gchar *fullpath, 
+                            const gchar *hist_search_path, 
+                            gboolean restore)
+{
+    gboolean      ret;
+    Compress_info *info;
+    gchar         *search_path;
+
+    /* 
+     * hist_search_path is passed by caller, and it is different when
+     * restore is performed. When restore, search_path is the direct
+     * path used to search in history, don't need compose
+     */
+    search_path = g_filename_to_uri (hist_search_path, NULL, NULL);
+    info = compress_info_new (fullpath, search_path +URI_HEAD_LEN, fullpath);
+
+    if (NULL == info) {
+        return FALSE;
+    }
+    
+    ret = compress_common_convert (fullpath,   /* abs path of archive file */
+                info,
+                setting, 
+                restore,            /* Convert or Restore */
+                TRUE);              /* Convert Name instead of content */
+
+    compress_info_free (info);
+    g_free (search_path);
+
+    return ret;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-specialfile.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,56 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_SPECIALFILE_H
+#define _FSEXAM_SPECIALFILE_H
+
+#define SPECIAL_NO          (0)
+#define SPECIAL_COMPRESS    (1<<0)
+
+/*
+ *  API for special file content conversion
+ */
+
+gboolean fsexam_special_is_special_for_content (const gchar *fullpath, 
+                        FSEXAM_setting *setting);
+gboolean fsexam_special_convert_content (const gchar *fullpath, 
+                        FSEXAM_setting *setting,
+                        gboolean restore);
+
+/*
+ *  API for special file name conversion. 
+ */
+
+gboolean fsexam_special_is_special_for_name (const gchar *fullpath, 
+                        FSEXAM_setting *setting);
+
+gboolean fsexam_compress_convert_name (FSEXAM_setting *setting, 
+                        const gchar *fullpath, 
+                        const gchar *hist_search_path, 
+                        gboolean restore);
+
+#endif //_FSEXAM_SPECIALFILE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-tree.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,1082 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+#include <dirent.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <libgen.h>
+
+#include <glib.h>
+
+#include "fsexam-debug.h"
+#include "fsexam-header.h"
+
+static gboolean compare_filename (GNode *node, gchar *filename);
+static gboolean fsexam_tree_node_data_destroy (GNode *node, gpointer data);
+static gboolean fsexam_tree_fill_target (GNode *node, gpointer root);
+static GNode    *fsexam_tree_insert_single_file_full (GNode *root, 
+                                const gchar *fullname, 
+                                short from_id, 
+                                short to_id, 
+                                FSEXAM_setting *setting);
+static GNode    *fsexam_tree_insert_single_file (GNode *root, 
+                                const gchar *fullname, 
+                                FSEXAM_setting *setting);
+static gboolean fsexam_tree_insert_file (GNode *root, 
+                                const gchar *fullname, 
+                                FSEXAM_setting *setting, 
+                                GNode **node);
+static gboolean fsexam_tree_insert_file_for_restore (GNode *root, 
+                                const gchar *filename, 
+                                FSEXAM_setting *setting, GNode **node);
+
+TreeNode *
+fsexam_node_new (const gchar *filename, 
+                 gboolean recursive, 
+                 gboolean need_convert)
+{
+    TreeNode *node = NULL;
+    gchar    *orig = NULL;
+    
+    if (NULL == filename)
+        return NULL;
+
+    node = g_new0 (TreeNode, 1);
+
+    orig = g_strdup (filename);
+    TREENODE_SET_ORIG (node, orig);
+    TREENODE_SET_UTF8 (node, NULL);
+    TREENODE_SET_TARGET (node, NULL);
+    TREENODE_SET_ID (node, (short)-1);
+    TREENODE_SET_RECURSIVE (node, recursive ? 1 : 0);
+    TREENODE_SET_TRAVERSED (node, 0);
+    TREENODE_SET_EXPAND (node, 0);
+    TREENODE_SET_REVERSE (node, 0);
+    TREENODE_SET_CONVERTED (node, 0);
+    TREENODE_SET_SYMLINK (node, 0);
+    TREENODE_SET_SPECIAL (node, 0);
+    TREENODE_SET_FLAGS (node, 0);
+    TREENODE_SET_NEED_CONVERT (node, need_convert ? 1 : 0);
+
+    return node;
+}
+
+void
+fsexam_node_destroy (TreeNode *node)
+{
+    if (NULL == node)
+        return;
+
+    g_free (TREENODE_GET_ORIG(node));
+    g_free (TREENODE_GET_UTF8(node));
+    g_free (node);
+
+    return;
+}
+ /* ---------   API For Tree Struct ------------------ */
+
+
+/*
+ * Unlink one node from tree and destroy all its node
+ */
+static void
+unlink_and_destroy (GNode *node, gpointer data)
+{
+    if (NULL == node)
+        return;
+
+    g_node_unlink (node);
+    fsexam_tree_destroy (node);
+}
+
+/*
+ * free one tree node's data
+ */
+static gboolean
+fsexam_tree_node_data_destroy (GNode *node, gpointer  data)
+{
+    fsexam_node_destroy (node->data);
+
+    return FALSE;
+}
+
+/*
+ * Init the whole tree to have only one node for '/'
+ */
+GNode *
+fsexam_tree_init ()
+{
+    TreeNode *node = fsexam_node_new ("/", FALSE, FALSE);
+
+    return g_node_new (node);
+}
+
+
+/*
+ *  Compare whether node's original name is filename or not 
+ */
+static gboolean 
+compare_filename (GNode *node, gchar *filename)
+{
+    TreeNode *tnode = NULL;
+
+    if ((NULL == node) || (NULL == filename))
+        return FALSE;
+
+    tnode = node->data;
+    if (strcmp (filename, TREENODE_GET_ORIG (tnode)) != 0){
+        return FALSE;
+    } 
+   
+    return TRUE;
+}
+
+/*
+ * Fill target field for one symlink node, If the target file
+ * doesn't exist, set flag so handle it during conversion.
+ *
+ * called only when !follow && !no_check_symlink_content
+ */
+static gboolean
+fsexam_tree_fill_target (GNode *node, gpointer root)
+{
+    if ((NULL == node) || (NULL == root))
+        return FALSE;
+
+    TreeNode *tnode = node->data;
+
+    if (TREENODE_FLAG_TARGET_NOTEXIST (tnode)) {
+        return FALSE;
+    }
+
+    if ((TREENODE_IS_SYMLINK (tnode)) 
+            && (TREENODE_GET_TARGET (tnode) == NULL)) {
+        /* Have not set target link */
+        gchar   *abs_path = fsexam_tree_get_path (node, TRUE);
+        gchar   *target = NULL;
+
+        if (abs_path == NULL)
+            return FALSE;
+            
+        target = get_abs_path_for_symlink_target (abs_path);
+
+        if (target != NULL) {
+            GNode *tmp = fsexam_tree_search_path ((GNode *)root, target);
+
+            if (tmp != NULL) {
+                TREENODE_SET_TARGET (tnode, tmp);
+            }
+        }else{
+            TREENODE_SET_FLAGS (tnode, TREEFLAG_TARGET_NOTEXIST);
+        }
+
+        g_free (target);
+        g_free (abs_path);
+    }
+    
+    return FALSE;
+}
+
+/*
+ *  Insert one file(with full path) into tree, don't handle flags
+ *  if last=TRUE, then only convert basename
+ *  Return the last node
+ */
+static GNode *
+insert_single_file (GNode *root, const gchar *fullpath, gboolean last)
+{
+    GNode   *parent = root;
+    gchar   subdir[PATH_MAX];
+    gchar   *tmp = subdir;
+
+    if ((NULL == root) || (NULL == fullpath))
+        return NULL;
+
+    if (*(++fullpath) == '\0') {    /* skip the leading '/' */
+        return NULL;
+    }
+
+    while (TRUE) {
+        *tmp++ = *fullpath++; 
+        
+        if ((*fullpath == '\0') || (*fullpath == '/')){
+            GNode       *gnode = NULL;
+            TreeNode    *tnode = NULL;
+            
+            *tmp = '\0';
+
+            if (subdir == tmp)      /* empty subcomponent */
+                continue;
+
+            gnode = fsexam_tree_search_name (parent, subdir);
+
+            if (gnode == NULL) {    /* new node */
+                gboolean  need_convert = FALSE;
+
+                if ((last) && (*fullpath == '\0')) {
+                    need_convert = !str_isutf8 (subdir, DEFAULT_DETECTING_FLAG);
+                }else if (!last){
+                    need_convert = !str_isutf8 (subdir, DEFAULT_DETECTING_FLAG);
+                }
+                
+                tnode = fsexam_node_new (subdir, FALSE, need_convert);
+                parent = g_node_insert(parent, -1, g_node_new (tnode));
+            } else {                /* existing node */
+                parent = gnode;
+            }
+
+            tmp = subdir;           /* prepare for next subdirectory */
+    
+            if (*fullpath == '/'){
+                fullpath++;
+            } else {                /* (*fullpath == '\0')  */
+                break;
+            }
+        }
+    }
+
+    return parent;
+}
+
+/*
+ *  Insert single file and set flags.
+ *  Return the new added last node 
+ */
+static GNode * 
+fsexam_tree_insert_single_file (GNode *root, 
+                                const gchar *fullpath, 
+                                FSEXAM_setting *setting) 
+{
+    GNode       *last = NULL;
+    TreeNode    *tnode = NULL;
+    gchar       *bname = NULL;
+    
+    if ((NULL == root) || (NULL == fullpath) || (NULL == setting)) {     
+        return NULL;
+    } 
+    
+    if ((last = insert_single_file (root, fullpath, TRUE))  == NULL) {
+        return NULL;
+    }
+
+    tnode = last->data;
+    bname = TREENODE_GET_ORIG (tnode);
+
+    if ((!setting->pref->force) 
+            && (str_isutf8 (bname, DEFAULT_DETECTING_FLAG))) {
+        TREENODE_SET_FLAGS (tnode, TREEFLAG_UTF8_ALREADY);  
+        TREENODE_SET_NEED_CONVERT (tnode, 0);   /* restore don't use this */
+    }if ((!setting->pref->remote) 
+            && (is_remote_file (setting->remote_path, fullpath))) {
+        TREENODE_SET_FLAGS (tnode, TREEFLAG_REMOTE_FILE);
+    } else if ((!setting->pref->hidden) 
+            && (('/' == *bname) || ('.' == *bname))) {
+        TREENODE_SET_FLAGS (tnode, TREEFLAG_HIDDEN_FILE);
+    } else if (setting->pref->special 
+            && fsexam_special_is_special_for_name (fullpath, setting)) {
+        TREENODE_SET_SPECIAL (tnode, 1);
+    }
+
+    return last;
+}
+
+/*
+ *  Insert one file and set flags.
+ *
+ *  fullname:  the real name on the disk.
+ *  from_id:   the encoding of fullname (real encoding on the disk)
+ *  to_id:     the encoding we will convert to
+ *
+ *  Note:
+ *      TreeNode->orig maybe UTF-8 encoded while TreeNode->utf8 may
+ *      be not real UTF-8
+ */
+static GNode *
+fsexam_tree_insert_single_file_full (GNode *root,
+                                     const gchar *fullname,
+                                     short from_id,
+                                     short to_id,
+                                     FSEXAM_setting *setting)
+{
+    GNode        *last = NULL;
+    static short utf8_id;
+
+    ++setting->total_num;
+    utf8_id = encoding2id ("UTF-8");
+
+    last = insert_single_file (root, fullname, TRUE);
+
+    if (last != NULL) {
+        TreeNode    *tnode = last->data;
+        const gchar *from_encoding = id2encoding (from_id);
+        const gchar *to_encoding = id2encoding (to_id);
+        gchar       *orig_name = TREENODE_GET_ORIG (tnode); /* disk name */
+        gchar       *new_name = NULL;
+
+        new_name = g_convert (orig_name,
+                              strlen (orig_name),
+                              to_encoding,        //to_encoding
+                              from_encoding,      //from_encoding
+                              NULL,
+                              NULL,
+                              NULL);
+
+        TREENODE_SET_UTF8 (tnode, new_name);    //free when don't use
+
+        if (g_ascii_strcasecmp (from_encoding, "UTF-8") == 0) {
+            TREENODE_SET_REVERSE (tnode, 1);
+            TREENODE_SET_ID (tnode, to_id);
+        }else if (g_ascii_strcasecmp (to_encoding, "UTF-8") == 0) {
+            TREENODE_SET_ID (tnode, from_id);
+        }
+
+        if (setting->pref->special 
+                && fsexam_special_is_special_for_name (fullname, setting)) {
+            TREENODE_SET_SPECIAL (tnode, 1);
+        }
+    }
+
+    return last;
+}
+
+/*
+ * Insert one file and handle recursive and symlink.
+ * Return TRUE when only insert the current file successfully.
+ *
+ * Note that the file may have been added into the tree already.
+ */
+static gboolean
+fsexam_tree_insert_file (GNode *root, 
+                        const gchar *filename, 
+                        FSEXAM_setting *setting, 
+                        GNode **node)
+{
+    struct      stat buf;
+    GNode       *newnode = NULL;
+    TreeNode    *tnode = NULL;
+    gchar       *fullname = NULL;
+    gboolean    ret = FALSE;
+
+    if ((root == NULL) || (filename == NULL) || (setting == NULL)) {
+           return FALSE;
+    }
+   
+    fsexam_errno = ERR_OK;
+    fullname = get_abs_path (filename);
+   
+    /* 
+     * we need lstat for both new node and existing node for
+     * following determination on S_ISLNK and S_ISREG
+     */
+    if (lstat (fullname, &buf) == -1) {
+        fsexam_errno = ERR_FILE_NONEXIST;
+    } else if (!(S_ISREG(buf.st_mode)) && !(S_ISDIR(buf.st_mode)) 
+            && !(S_ISLNK(buf.st_mode))){
+        fsexam_errno = ERR_FILE_TYPE_NOT_SUPPORT; 
+    }
+    
+    if (fsexam_errno != ERR_OK) {
+        fsexam_log_puts (setting->log_info, filename, NULL);
+        if (setting->display_msg) {
+            setting->display_msg (filename, fsexam_error_get_msg());
+        }
+        goto done;
+    }
+
+    /* Is this file added into the tree by other path? */
+    newnode = fsexam_tree_search_path (root, fullname);
+
+    if (newnode == NULL) {
+        ++setting->total_num;
+
+        /* Insert this file if not in tree already */
+        if ((newnode = insert_single_file (root, fullname, TRUE)) == NULL)
+            goto done;
+    } 
+
+    if (node != NULL)
+        *node = newnode;
+    tnode = (TreeNode *)newnode->data;
+    ret = TRUE;
+
+    {
+        /* 
+         * Code block to set flags for both new node and old node
+         */
+        gchar *bname = TREENODE_GET_ORIG (tnode);
+        TREENODE_SET_NEED_CONVERT (tnode, 1);
+
+        if ((!setting->pref->force) 
+                && (str_isutf8 (bname, DEFAULT_DETECTING_FLAG))) {
+            TREENODE_SET_FLAGS (tnode, TREEFLAG_UTF8_ALREADY);  
+            TREENODE_SET_NEED_CONVERT (tnode, 0);   /* restore not use this */
+            ++setting->ignore_num;
+        } 
+        if ((!setting->pref->remote) 
+                && (is_remote_file (setting->remote_path, fullname))) {
+            TREENODE_SET_FLAGS (tnode, TREEFLAG_REMOTE_FILE);
+            ++setting->ignore_num;
+        } 
+        if ((!setting->pref->hidden) 
+                && (('/' == *bname) || ('.' == *bname))) {
+            TREENODE_SET_FLAGS (tnode, TREEFLAG_HIDDEN_FILE);
+            ++setting->ignore_num;
+        } 
+        if (setting->pref->special 
+            && fsexam_special_is_special_for_name (fullname, setting)) {
+            TREENODE_SET_SPECIAL (tnode, 1);
+        }
+    }
+
+    /* 
+     * This node may has processed 'symlink' and 'recursive', such as if 
+     * parent directory is processed after subdirectory has been handled,
+     * or if one symlink link to its ancestor.
+     */
+    if (S_ISLNK (buf.st_mode) && ! TREENODE_IS_SYMLINK (tnode)) {
+        TREENODE_SET_SYMLINK (tnode, 1);
+        TREENODE_SET_TARGET  (tnode, NULL);
+   
+        /* Here we only handle 'follow', 'no_check...' is delayed to caller */
+        if (setting->pref->follow) {
+            gchar  *target = get_abs_path_for_symlink_target (fullname);
+            GNode   *added_node = NULL;
+    
+            if (target != NULL) {
+            //recursive call myself
+            fsexam_tree_insert_file (root, target, setting, &added_node);
+                        
+            if (added_node != NULL) {
+                TREENODE_SET_TARGET (tnode, added_node);
+            }
+            } else {
+                    TREENODE_SET_FLAGS (tnode, TREEFLAG_TARGET_NOTEXIST);
+            }
+    
+            g_free (target);
+        } 
+    } else if ((S_ISDIR (buf.st_mode)) && setting->pref->recursive) {
+        if ((! setting->pref->follow 
+                    && setting->pref->no_check_symlink_content)) {
+            /* create -R node */
+            TREENODE_SET_RECURSIVE (tnode, 1);
+            g_node_children_foreach (newnode, 
+                            G_TRAVERSE_ALL, 
+                            unlink_and_destroy, 
+                            NULL);
+        } else if (! TREENODE_IS_EXPAND (tnode)) {
+            /* expand this node only if we have not expanded it before */
+            DIR *dp = opendir (fullname);
+
+            /* We are in the process of expanding one node recursively */
+            TREENODE_SET_EXPAND (tnode, 1);
+
+            if (dp != NULL) {
+                struct dirent *dirent = NULL;
+
+                while ((dirent = readdir (dp)) != NULL) {
+                    gchar   *childname = NULL;
+
+                    if ((strcmp (dirent->d_name, ".") == 0)
+                            || (strcmp (dirent->d_name, "..") == 0))
+                        continue;
+
+                    childname = g_strdup_printf ("%s/%s", 
+                                                 fullname, 
+                                                 dirent->d_name);
+                    fsexam_tree_insert_file (root, childname, setting, NULL);
+                    g_free (childname);
+                }
+
+                closedir (dp);
+            }
+        }
+    }
+
+    g_free (fullname);
+    return ret;
+
+done:
+    g_free (fullname);
+    ++setting->ignore_num;
+
+    return ret;
+}
+
+static gboolean
+fsexam_tree_insert_file_for_restore (GNode *root, 
+                                     const gchar *filename, 
+                                     FSEXAM_setting *setting, 
+                                     GNode **node)
+{
+    struct      stat statbuf;
+    GNode       *newnode = NULL;
+    TreeNode    *tnode = NULL;
+    gchar       *fullname = NULL;
+    Hist_item   *item = NULL;
+    gboolean    ret = FALSE;
+
+    if ((NULL == root) || (NULL == filename) || (NULL == setting))
+        return FALSE;
+
+    ++setting->total_num;
+    fullname = get_abs_path (filename);
+
+    fsexam_errno = ERR_OK;
+    if (lstat (fullname, &statbuf) == -1) {
+        fsexam_errno = ERR_FILE_NONEXIST;
+        ++setting->ignore_num;
+
+        goto done;
+    }
+
+    item = fsexam_history_search (setting->hist_info, fullname, TRUE);
+
+    if (item == NULL) {
+        fsexam_errno = ERR_HIST_NO_ITEM;
+        /* for special file only */
+        if (setting->pref->special 
+                && fsexam_special_is_special_for_name (fullname, setting)) {
+            newnode = fsexam_tree_insert_single_file (root,
+                                    fullname,   //real name on the disk
+                                    setting);
+        }else{
+            ++setting->ignore_num;
+        }
+    } else if ((item != NULL) && (item->convtype == ConvName)) {
+        if (((newnode = fsexam_tree_search_path (root, fullname)) != NULL) 
+                || ((newnode = insert_single_file (root, fullname, TRUE)) != NULL)) {
+            /* New added node or existing node */
+            const gchar  *from_encoding = id2encoding (item->to_encoding);
+            const gchar  *to_encoding = id2encoding (item->from_encoding);
+            gchar        *orig_name = NULL;
+            gchar        *new_name = NULL;
+
+            tnode = (TreeNode *)newnode->data;
+
+            orig_name = TREENODE_GET_ORIG (tnode);  //The real name on disk
+            new_name = g_convert (orig_name,
+                                strlen (orig_name),
+                                to_encoding,        //to_encoding
+                                from_encoding,      //from_encoding
+                                NULL,
+                                NULL,
+                                NULL);
+
+            g_free (TREENODE_GET_UTF8 (tnode));     //need this?
+            TREENODE_SET_UTF8 (tnode, new_name);
+
+            if (g_ascii_strcasecmp (from_encoding, "UTF-8") == 0) {
+                TREENODE_SET_REVERSE (tnode, 1);
+                TREENODE_SET_ID (tnode, item->from_encoding);   /* to_id */
+            }else if (g_ascii_strcasecmp (to_encoding, "UTF-8") == 0) {
+                TREENODE_SET_ID (tnode, item->to_encoding);     /* from_id */
+            }
+
+            if (setting->pref->special 
+                    && fsexam_special_is_special_for_name (fullname, setting)) {
+                TREENODE_SET_SPECIAL (tnode, 1);
+            }
+
+            if (node != NULL)
+                *node = newnode;
+            ret = TRUE;
+        }
+    }
+
+    if (fsexam_errno != ERR_OK) {
+        fsexam_log_puts (setting->log_info, filename, NULL);
+        if (setting->display_msg != NULL) {
+            setting->display_msg (filename, fsexam_error_get_msg());
+        }
+    }
+
+    /* 
+     * This node may has processed symlink and recursive, such as if parent
+     * directory is processed after subdirectory has been handled, or if
+     * one symlink link to its ancestor.
+     */
+    if (S_ISLNK (statbuf.st_mode)) {
+        if (tnode == NULL) {    /* No history infor, but it is symlink */
+            GNode *gnode = fsexam_tree_insert_single_file (root, 
+                                                           fullname, 
+                                                           setting);
+            if (gnode != NULL)
+                tnode = gnode->data;
+        }
+
+        if ((tnode == NULL) || TREENODE_IS_SYMLINK (tnode))
+            goto done;
+
+        TREENODE_SET_SYMLINK (tnode, 1);
+        TREENODE_SET_TARGET  (tnode, NULL);
+
+        if (setting->pref->follow) {
+            gchar   *target = get_abs_path_for_symlink_target (fullname);
+            GNode   *added_node = NULL;
+
+            if (target != NULL) {
+                fsexam_tree_insert_file_for_restore (root, 
+                        target, setting, &added_node);
+
+                if (added_node != NULL) {
+                    TREENODE_SET_TARGET (tnode, added_node);
+                }
+            }else{
+                TREENODE_SET_FLAGS (tnode, TREEFLAG_TARGET_NOTEXIST);
+            }
+
+            g_free (target);
+        }
+    } else if ((S_ISDIR (statbuf.st_mode)) && setting->pref->recursive) {
+        DIR *dp = NULL;
+
+        if (tnode == NULL) {
+            /* 
+             * No history infor for current file, but it is directory,
+             * and have 'recursive' flag, so we add this file into tree
+             * always.
+             */
+            GNode *gnode = fsexam_tree_insert_single_file (root, 
+                                                           fullname, 
+                                                           setting);
+            if (gnode != NULL)
+                tnode = gnode->data;
+        }
+
+        if ((tnode == NULL) || TREENODE_IS_EXPAND (tnode))
+            goto done;
+
+        /* expand this node only when we have not expaned it before */
+        TREENODE_SET_EXPAND (tnode, 1);
+        
+        if (setting->flags & FSEXAM_SETTING_FLAGS_UNDO)
+            goto done;  /* don't need further handling for UNDO */
+
+        if ((dp = opendir (fullname)) != NULL) {
+            struct dirent *dirent = NULL;
+
+            while ((dirent = readdir (dp)) != NULL) {
+                gchar    *childname = NULL;
+
+                if ((strcmp (dirent->d_name, ".") == 0)
+                        || (strcmp (dirent->d_name, "..") == 0))
+                    continue;
+
+                childname = g_strdup_printf ("%s/%s", fullname, dirent->d_name);
+                fsexam_tree_insert_file_for_restore (root, 
+                                                     childname, 
+                                                     setting, 
+                                                     NULL);
+                g_free (childname);
+            }
+
+            closedir (dp);
+        }
+    }
+
+done:
+    g_free (fullname);
+    
+    return ret;
+}
+
+/* --- public API --- */
+
+/*
+ * Construct tree from single file, don't care flags at all
+ */
+GNode *
+fsexam_tree_construct_from_single_file (const gchar *filename)
+{
+    GNode *root;
+    gchar *abs_path = NULL;
+
+    abs_path = get_abs_path (filename);
+
+    if (NULL == abs_path)
+        return NULL;
+
+    if ((root = fsexam_tree_init ()) == NULL)
+        return NULL;
+
+    insert_single_file (root, abs_path, FALSE);
+
+    if (fsexam_debug () & FSEXAM_DBG_TREE) {
+        g_node_traverse (root, G_PRE_ORDER, 
+                         G_TRAVERSE_ALL, -1, 
+                         display_node, NULL);
+    }
+
+    g_free (abs_path);
+
+    return root;
+}
+
+GNode *
+fsexam_tree_construct_from_file (const gchar *filename, 
+                                 FSEXAM_setting *setting)
+{
+    GList   *list = NULL;
+    GNode   *root = NULL;
+
+    if ((NULL == filename) || (NULL == setting))
+        return NULL;
+
+    list = g_list_prepend (list, (gpointer)filename);
+
+    root = fsexam_tree_construct_from_list (list, setting);
+
+    fsexam_list_free (list);
+
+    return root;
+}
+
+GNode *
+fsexam_tree_construct_from_list (GList *list, FSEXAM_setting *setting)
+{
+    GNode *root;
+
+    if ((NULL == list) || (NULL == setting))
+        return NULL;
+    
+    if ((root  = fsexam_tree_init ()) == NULL) {
+        return NULL;
+    }
+
+    for (; list != NULL; list = g_list_next (list)) {
+        gchar *filename = list->data;
+        ++setting->passin_num;
+
+        (void) fsexam_tree_insert_file (root, filename, setting, NULL);
+    }
+
+    if (! setting->pref->follow && ! setting->pref->no_check_symlink_content) {
+        /* need separate traverse to mark symlink target */
+        g_node_traverse (root,
+                        G_PRE_ORDER,
+                        G_TRAVERSE_ALL,
+                        -1,
+                        fsexam_tree_fill_target,
+                        (gpointer)root);
+    }
+
+    if (fsexam_debug () & FSEXAM_DBG_TREE) {
+        g_node_traverse (root, G_PRE_ORDER, 
+                         G_TRAVERSE_ALL, -1, 
+                         display_node, NULL);
+    }
+
+    return root;
+}
+
+/*
+ * construct tree from list + history
+ */
+GNode *
+fsexam_tree_construct_from_history (GList *list, 
+                                    Hist_info *info, 
+                                    FSEXAM_setting *setting)
+{
+    GNode *root;
+
+    if ((NULL == list) || (NULL == setting) || (NULL == info))
+        return NULL;
+    
+    if ((root  = fsexam_tree_init ()) == NULL) {
+        return NULL;
+    }
+
+    for (; list; list = g_list_next (list)) {
+        const gchar *filename = list->data;
+        ++setting->passin_num;
+        fsexam_tree_insert_file_for_restore (root, 
+                filename, 
+                setting, 
+                NULL);
+    }
+
+    /* need separate traverse to mark symlink target */
+    if (!setting->pref->follow && !setting->pref->no_check_symlink_content) {
+        g_node_traverse (root,
+                        G_PRE_ORDER,
+                        G_TRAVERSE_ALL,
+                        -1,
+                        fsexam_tree_fill_target,
+                        (gpointer)root);
+    }
+
+    if (fsexam_debug () & FSEXAM_DBG_TREE) {
+        g_node_traverse (root, G_PRE_ORDER, 
+                         G_TRAVERSE_ALL, -1, 
+                         display_node, NULL);
+    }
+
+    return root;
+}
+
+
+/*
+ * construct tree from dryrun
+ */
+GNode *
+fsexam_tree_construct_from_dryrun (GSList *slist, FSEXAM_setting *setting)
+{
+    GNode *root = NULL;
+
+    if ((NULL == slist) || (NULL == setting))
+        return NULL;
+
+    if ((root = fsexam_tree_init()) == NULL)
+        return NULL;
+
+    setting->passin_num = g_slist_length (slist);
+
+    while (slist != NULL) {
+        Dryrun_item *item = slist->data;
+        short en_id = encoding2id (item->encoding);
+
+        if (en_id != -1)
+            fsexam_tree_insert_single_file_full (
+                                root, 
+                                item->path, 
+                                en_id,
+                                encoding2id ("UTF-8"), 
+                                setting);
+
+        slist = slist->next;
+    }
+ 
+    if (fsexam_debug () & FSEXAM_DBG_TREE) {
+        g_node_traverse (root, G_PRE_ORDER, 
+                         G_TRAVERSE_ALL, -1, 
+                         display_node, NULL);
+    }   
+
+    return root;
+}
+
+GNode *
+fsexam_tree_search_name (GNode *parent, const gchar *filename)
+{
+    GNode *current;
+
+    if ((parent == NULL) || (filename == NULL)) {
+        return NULL;
+    }
+
+    current = parent->children;
+    while (current) {
+        if (compare_filename (current, (gchar *)filename)){
+            return current;
+        }
+        
+        current = current->next;
+    }
+    
+    return NULL;
+}
+
+GNode *
+fsexam_tree_search_path (GNode *parent, const gchar *path)
+{
+    gchar *abs_path = NULL;
+    gchar *p_abs_path = NULL;
+    gchar *tmp = NULL;
+    GNode *result = NULL;
+    gchar subdir[PATH_MAX];
+
+    if ((NULL == parent) || (NULL == path))
+        return NULL;
+
+    p_abs_path = abs_path = get_abs_path (path);
+    
+    if (NULL == abs_path) 
+        return NULL;
+    
+    if (*(++abs_path) == '\0') {    /* skip the leading '/' */
+        goto free;
+    }
+
+    tmp = subdir;
+    while (TRUE) {
+        *tmp++ = *abs_path++; 
+        
+        if ((*abs_path == '\0') || (*abs_path == '/')) {
+            *tmp = '\0';            /* strlen(abs_path) < PATH_MAX */
+
+            parent = fsexam_tree_search_name (parent, subdir);
+
+            if (parent == NULL) {
+                result = NULL;
+                break;
+            }else{
+                result = parent;
+            }
+            
+            tmp = subdir;           /* prepare for next subdirectory */
+        
+            if (*abs_path == '/') {
+                abs_path++;
+            } else {                /* (*abs_path == '\0') */
+                break;
+            }
+        }
+    }
+
+free:
+    g_free (p_abs_path);
+
+    return result;
+}
+
+/* 
+ * Get the real path for one node and including this node
+ * return the new allocated memory which store the path Need free when no use 
+ */
+gchar *
+fsexam_tree_get_path (GNode *node, gboolean old_path)
+{
+    TreeNode    *tnode = NULL;
+    gchar       *result = NULL;
+    gchar       *subdir = NULL;
+    gchar       *tmp = NULL;
+
+    /* traverse from node to root */
+    while (node){
+        tnode = node->data;
+
+        if (!old_path && (TREENODE_IS_CONVERTED (tnode))){
+            subdir = TREENODE_GET_UTF8 (tnode);
+        }else{
+            subdir = TREENODE_GET_ORIG (tnode);
+        }
+
+        if (strcmp (subdir, "/") == 0) {        /* root node */
+            if (result == NULL){
+                result = g_strdup (subdir);
+            }else{
+                tmp = g_strdup_printf ("%s%s", subdir, result);
+                g_free (result);
+                result = tmp;
+                tmp = NULL;
+            }
+        } else {
+            if (result == NULL){
+                result = g_strdup (subdir);
+            } else {
+                tmp = g_strdup_printf ("%s/%s", subdir, result);
+                g_free (result);
+                result = tmp;
+                tmp = NULL;
+            }
+        }
+
+        node = node->parent;
+    }
+
+    return result;
+}
+
+void
+fsexam_tree_destroy (GNode *root)
+{
+    if (NULL == root) 
+        return;
+
+    g_node_traverse (root,
+                    G_IN_ORDER,
+                    G_TRAVERSE_ALL,
+                    -1,
+                    fsexam_tree_node_data_destroy,
+                    NULL);
+
+    g_node_destroy (root);
+
+    return;
+}
+
+
+/*
+ *   Test function
+ */
+gboolean
+display_node (GNode *node, gpointer data)
+{
+    g_return_val_if_fail (node != NULL, FALSE);
+
+    TreeNode *tnode = node->data;
+    //printf ("================== TreeNode ==============================\n");
+    printf ("  recu = %d, cvted = %d, needconv = %d, trav = %d, sym = %d,"
+            " special = %d, target = %p, utf8 = %s, name = %s \n", 
+            TREENODE_IS_RECURSIVE (tnode), 
+            TREENODE_IS_CONVERTED (tnode),
+            TREENODE_IS_NEED_CONVERT (tnode),
+            TREENODE_IS_TRAVERSED (tnode),
+            TREENODE_IS_SYMLINK (tnode),
+            TREENODE_IS_SPECIAL (tnode),
+            TREENODE_GET_TARGET (tnode) ? TREENODE_GET_TARGET (tnode) 
+                                        : (void *)0,
+            TREENODE_GET_UTF8 (tnode) ? TREENODE_GET_UTF8 (tnode) : "NULL",
+            fsexam_tree_get_path (node, TRUE));
+
+    return FALSE;
+}
+
+gboolean
+display_full_path (GNode *node, gpointer data)
+{
+    g_return_val_if_fail (node != NULL, FALSE);
+
+    gchar *path = fsexam_tree_get_path (node, FALSE);
+
+    printf ("\tfullpath = %s\n", path);
+
+    g_free (path);
+
+    return FALSE;
+}
+
+void
+print_tree (GNode *root)
+{
+    g_node_traverse (root, 
+                    G_PRE_ORDER, 
+                    G_TRAVERSE_ALL, 
+                    -1, 
+                    display_node, 
+                    NULL);
+
+    return;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-tree.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,170 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+/****************************************************************
+ *                                                                  *
+ *      Will check file use file validate module                    *
+ *      This module won't check whether file is ready               *
+ *                                                                  *
+ *****************************************************************/
+
+#ifndef _FSEXAM_TREE_H_
+#define _FSEXAM_TREE_H_
+
+typedef struct _TreeNode
+{
+    gchar *orig;                    //original name from disk
+    gchar *utf8;                    //utf8 name
+    GNode *target;                  //symlink target
+
+    short           id;             //encoding ID, -1 for illegal value
+    unsigned short  flags;          //error flags
+
+    unsigned short  need_convert    : 1; //need convert this node
+    unsigned short  reverse         : 1; //for restore, indicating direction
+    unsigned short  special         : 1; //Special node
+    unsigned short  recursive       : 1; //recursive node
+    unsigned short  symlink         : 1; //current node file is symlink
+    unsigned short  expand          : 1; //expanded or expanding node
+    unsigned short  traversed       : 1; //been traversed? for symlink
+    unsigned short  converted       : 1; //converted succ, write back to disk
+}TreeNode;
+
+#define TREEFLAG_TARGET_NOTEXIST        (1<<0)
+#define TREEFLAG_UTF8_ALREADY           (1<<1)
+#define TREEFLAG_REMOTE_FILE            (1<<2)
+#define TREEFLAG_HIDDEN_FILE            (1<<3)
+
+/* Getter */
+#define TREENODE_GET_ORIG(tnode)        ((tnode)->orig)
+#define TREENODE_GET_UTF8(tnode)        ((tnode)->utf8)
+#define TREENODE_GET_ID(tnode)          ((tnode)->id)
+#define TREENODE_GET_TARGET(tnode)      ((tnode)->target)
+#define TREENODE_IS_RECURSIVE(tnode)    ((tnode)->recursive == 1)
+#define TREENODE_IS_NEED_CONVERT(tnode) ((tnode)->need_convert == 1)
+#define TREENODE_IS_TRAVERSED(tnode)    ((tnode)->traversed == 1)
+#define TREENODE_IS_EXPAND(tnode)       ((tnode)->expand == 1)
+#define TREENODE_IS_CONVERTED(tnode)    ((tnode)->converted == 1)
+#define TREENODE_IS_REVERSE(tnode)      ((tnode)->reverse == 1)
+#define TREENODE_IS_SYMLINK(tnode)      ((tnode)->symlink == 1)
+#define TREENODE_IS_SPECIAL(tnode)      ((tnode)->special == 1)
+
+/* Setter */
+#define TREENODE_SET_ORIG(tnode, _orig)         ((tnode)->orig = (_orig))
+#define TREENODE_SET_UTF8(tnode, _utf8)         ((tnode)->utf8 = (_utf8))
+#define TREENODE_SET_ID(tnode, _id)             ((tnode)->id = (short)(_id))
+#define TREENODE_SET_TARGET(tnode, _target)     ((tnode)->target = (_target))
+#define TREENODE_SET_RECURSIVE(tnode, _recur)   ((tnode)->recursive = (_recur))
+#define TREENODE_SET_NEED_CONVERT(tnode, _need_convert) \
+                            ((tnode)->need_convert = (_need_convert))
+#define TREENODE_SET_TRAVERSED(tnode, _traversed)   \
+                            ((tnode)->traversed = (_traversed))
+#define TREENODE_SET_EXPAND(tnode, _expand)   \
+                            ((tnode)->expand = (_expand))
+#define TREENODE_SET_CONVERTED(tnode, _converted)   \
+                            ((tnode)->converted = (_converted))
+#define TREENODE_SET_REVERSE(tnode, _reverse)       \
+                            ((tnode)->reverse = (_reverse))
+#define TREENODE_SET_SYMLINK(tnode, _symlink)   ((tnode)->symlink = (_symlink))
+#define TREENODE_SET_SPECIAL(tnode, _special)   ((tnode)->special = (_special))
+
+/* Flags macro */
+#define TREENODE_SET_FLAGS(tnode, _flag)        ((tnode)->flags |= (_flag))
+#define TREENODE_HAS_FLAGS(tnode)               ((tnode)->flags != 0)
+#define TREENODE_FLAG_TARGET_NOTEXIST(tnode)    \
+                            ((tnode)->flags & TREEFLAG_TARGET_NOTEXIST)
+#define TREENODE_FLAG_UTF8_ALREADY(tnode)       \
+                            ((tnode)->flags & TREEFLAG_UTF8_ALREADY)
+#define TREENODE_FLAG_REMOTE_FILE(tnode)        \
+                            ((tnode)->flags & TREEFLAG_REMOTE_FILE)
+#define TREENODE_FLAG_HIDDEN_FILE(tnode)        \
+                            ((tnode)->flags & TREEFLAG_HIDDEN_FILE)
+
+/*==================================================================
+ *  Function Name:  fsexam_node_new
+ *
+ *  Parameters:
+ *      const gchar *filename: contain only basename, no subpath. 
+ *      gboolean: recursive:  recursive handle directory or not
+ *      goolean: need_convert: whether this node need convert or not
+ *
+ *  Desc:
+ *      Create one new TreeNode according to filename and flag.
+ *      This function won't check whether filename exist or not. caller do this.
+ *
+ *  Return value:
+ *      TreeNode pointer when succeed. Need call fsexam_node_destroy() to 
+ *      free mem.  Otherwise return NULL.
+ *
+ *  Author:     Yandong Yao 2006/08/24
+ =================================================================*/
+TreeNode *fsexam_node_new           (const gchar *filename, 
+                                     gboolean recursive, 
+                                     gboolean need_convert);
+void     fsexam_node_destroy (TreeNode *node);
+
+
+/*
+ * Init the whole tree with only one node for "/"
+ */
+GNode *fsexam_tree_init ();
+void fsexam_tree_destroy (GNode *root);
+
+GNode *fsexam_tree_construct_from_list (GList *list, FSEXAM_setting *setting);
+GNode *fsexam_tree_construct_from_single_file (const gchar *filename);
+GNode *fsexam_tree_construct_from_file (const gchar *filename, 
+                                        FSEXAM_setting *setting);
+GNode *fsexam_tree_construct_from_dryrun (GSList *slist, 
+                                        FSEXAM_setting *setting);
+GNode *fsexam_tree_construct_from_history (GList *list, 
+                                        Hist_info *info, 
+                                        FSEXAM_setting *setting);
+
+/* 
+ * Search whether parent has child with filename or not
+ */
+GNode *fsexam_tree_search_name (GNode *parent,  const gchar *filename);
+
+/*
+ * Search whether path has been added into tree
+ */
+GNode *fsexam_tree_search_path (GNode *root, const gchar *path);
+
+/*
+ * Get the full path of one node
+ */
+gchar *fsexam_tree_get_path (GNode *node, gboolean old_path);
+
+
+/*==================================================================
+ *      Function for test purpose
+ ==================================================================*/
+gboolean display_node (GNode *node, gpointer data);
+gboolean display_full_path (GNode *node, gpointer data);
+void     print_tree (GNode *root);
+
+#endif //_FSEXAM_TREE_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-ui.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,2786 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <dirent.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+
+#include <gtk/gtk.h>
+#include <gconf/gconf-client.h>
+#include <libgnome/libgnome.h>
+#include <libgnomeui/libgnomeui.h>
+#include <libgnomevfs/gnome-vfs.h>
+#include <libgnomevfs/gnome-vfs-mime.h>
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glade/glade.h>
+
+#include "fsexam.h"
+#include "fsexam-header.h"
+#include "encoding.h"
+#include "fsexam-history.h"
+#include "fsexam-ui.h"
+#include "callbacks.h"
+#include "fsexam-dialog.h"
+#include "fsexam-dnd.h"
+
+FSEXAM_view *view;      // global variable 
+
+typedef struct _TreeItem TreeItem;
+struct _TreeItem
+{
+    GdkPixbuf   *icon;  // file icon
+    gchar       *label;     // filename
+    gboolean    loaded;  // meaningful only for directory
+    TreeItem    *children;
+};
+
+static gchar    *get_root_dir_name (const gchar *dir);
+static void     set_root_dir (const gchar *dir);
+static void     fsexam_treeitem_free (TreeItem *);
+static gint     get_dir_elements (DIR *dirp);
+static void     fsexam_treeview_set_title (const gchar *);
+static gint     set_item_collation (gconstpointer a, gconstpointer b);
+static void     treemodel_create_with_treeitem (
+                            GtkTreeStore *, 
+                            TreeItem *, 
+                            GtkTreeIter, 
+                            gboolean);
+static gchar    *get_last_path (GtkTextBuffer *, GtkTextIter *);
+static void     common_construct_ui ();
+static GString  *fsexam_filename_get_path (GtkTreeModel *, GtkTreeIter);
+
+static GdkPixbuf    *get_file_pixbuf (const gchar *);
+static TreeItem     *fsexam_treeitem_create (const gchar *);
+static TreeItem     *fsexam_treeitem_create_from_list (GList *);
+static GtkTreeModel *fsexam_treemodel_create_with_treeitem (TreeItem *root);
+
+static void
+mainwin_destroy (GtkObject *object, gpointer user_data)
+{
+    force_quit = TRUE;
+    fsexam_cleanup_all ();
+
+    gtk_main_quit ();
+
+    return;
+}
+
+static gboolean
+mainwin_delete (GtkObject *object, gpointer user_data)
+{
+    return FALSE;   /* return TRUE will not send 'destroy' signal */
+}
+
+/*
+ *  dir can be NULL, ""(for file list), and abs_path
+ */
+static void
+set_root_dir (const gchar *path)
+{
+    gchar    *uri = NULL;
+    gchar    *dir = (gchar *)path;
+
+    g_free (view->rootdir);     //free old rootdir first
+
+    if (dir == NULL) {
+        view->rootdir = NULL;
+        return;
+    }
+
+    if (! g_file_test (path, G_FILE_TEST_IS_DIR)) {
+        dir = g_path_get_dirname (path);
+
+        if ((*dir == '\0') || (g_utf8_validate (dir, -1, NULL))) {
+            view->rootdir = g_strdup (dir);
+            return;
+        }
+
+        uri = g_filename_to_uri (dir, NULL, NULL);
+        view->rootdir = uri;
+
+        g_free (dir);
+    }else{
+        if ((*dir == '\0') || (g_utf8_validate (dir, -1, NULL))) {
+            view->rootdir = g_strdup (dir);
+            return;
+        }
+
+        uri = g_filename_to_uri (dir, NULL, NULL);
+        view->rootdir = uri;
+    }
+
+    return;
+} 
+
+/*
+ * Get the root dirname, may need convert from uri.
+ * free when don't need again.
+ */
+static gchar *
+get_root_dir_name (const gchar *rootdir)
+{
+    if (NULL == rootdir)
+        return NULL;
+
+    if (*rootdir == 'f')  /* file:///... */
+        return g_filename_from_uri (rootdir, NULL, NULL);
+    else
+        return g_strdup (rootdir);
+}
+
+static gboolean
+button_press (GtkWidget      *widget,
+              GdkEventButton *button,
+              gpointer       data)
+{
+    g_return_val_if_fail (button != NULL, FALSE);
+
+    if (button->button == 1 && button->type == GDK_2BUTTON_PRESS) {
+        cb_convert ();
+
+        return TRUE;
+    }else if (button->button == 2) {
+        fsexam_content_peek (button->x_root, button->y_root);
+
+        return TRUE;
+    }else if (button->button == 3) {
+        GtkWidget *menu = view->popup_menu;
+        GtkWidget *w = NULL;
+        gboolean  sensitive;
+
+        /* undo menu */
+        w = g_object_get_data (G_OBJECT (menu), "popup_undo");
+        gtk_widget_set_sensitive (w, view->undo_list ? TRUE : FALSE);
+
+        /* conversion mode menu */
+        w = g_object_get_data (G_OBJECT (menu), 
+                view->setting->pref->conv_content ? "popup_content_mode"
+                                                  : "popup_name_mode");
+        gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (w), TRUE);
+
+        /* scenario menu */
+        w = g_object_get_data (G_OBJECT (view->mainwin), "menu_scenario");
+        sensitive = GTK_WIDGET_IS_SENSITIVE (w);
+        w = g_object_get_data (G_OBJECT (menu), "popup_scenario");
+        gtk_widget_set_sensitive (w, sensitive);
+        //gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (w), sensitive);
+
+        /* display the popup menu */
+        gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 
+                button->button, button->time);
+
+        return TRUE;
+    }
+
+        return FALSE;
+}
+
+static gboolean
+button_release (GtkWidget *widget, GdkEventButton *event, gpointer data)
+{
+    if (view->peekwin && event->button == 2) {
+        gtk_object_destroy (GTK_OBJECT (view->peekwin));
+        view->peekwin = NULL;
+    }
+
+    return FALSE;
+}
+
+static gboolean
+key_press (GtkWidget *widget, GdkEventKey *event, gpointer data)
+{
+    switch (event->keyval) {
+        case GDK_space:
+            cb_convert ();
+            return TRUE;
+       /* case GDK_F12:
+            if (event->state == GDK_SHIFT_MASK) {
+                printf ("shitf+F12\n");
+            }
+            printf ("F12\n");
+            return TRUE; */
+        default:
+            break;
+    }
+
+    return FALSE;
+}
+
+/*
+ * Search give string at the same level with given iter
+ */
+static GtkTreeIter *
+search_model_at_same_level (GtkTreeModel *model,
+                            GtkTreeIter *iter,
+                            const gchar *string)
+{
+    if ((NULL == string) || (NULL == iter))
+        return NULL;
+    
+    do {
+        gchar *name = NULL;
+        gchar *internal_name = NULL;    /* escaped name */
+
+        /* get the escaped name */
+        gtk_tree_model_get (model, iter, FILENAME_COLUMN, &internal_name, -1);
+
+        /* unescaped the escaped name */
+        name = g_strcompress (internal_name);
+        g_free (internal_name);
+
+        if (strcmp (name, string) == 0) {
+            g_free (name);      /* found */
+
+            return gtk_tree_iter_copy (iter);
+        }
+
+        g_free (name);
+    } while (gtk_tree_model_iter_next (model, iter));
+
+    return NULL;
+}
+
+/*
+ * Update GtkTreeView which constructed from file list.
+ * The underlying store is GtkListStore
+ */
+static void 
+update_gui_for_filelist (GtkTreeModel *model, 
+                        const gchar *oldname, 
+                        const gchar *newname,
+                        GtkTreePath *treepath,
+                        gboolean    is_myself)
+{
+    GtkTreeIter iter;
+    gint        old_name_len;
+
+    if ((NULL == model) || (NULL == oldname) 
+            || (NULL == newname) || (NULL == view->basedir))
+        return;
+
+    if (! fsexam_is_subpath (oldname, view->basedir))
+        return;
+
+    if (! gtk_tree_model_get_iter_first (model, &iter)) {
+        return;
+    }
+
+    old_name_len = strlen (oldname);
+
+    do {
+        gchar *name = NULL;
+        gchar *internal_name = NULL;
+        gchar *tmp = NULL;
+        
+        /* get the filename from TreeView */
+        gtk_tree_model_get (model, &iter, FILENAME_COLUMN, &internal_name, -1);
+        name = g_strcompress (internal_name);
+        g_free (internal_name);
+
+        /* oldname is prefix path of name ? */
+        if (g_str_has_prefix (name, oldname)) {
+            tmp = name + old_name_len;
+
+            /* construct new name */
+            if (*tmp == '\0') {
+                gchar *display_name = NULL;
+                gchar *internal_name = NULL;
+
+                internal_name = g_strescape (newname, "");
+                display_name = fsexam_filename_display_basename (newname);
+
+                gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+                        FILENAME_COLUMN, internal_name,
+                        DISPLAYNAME_COLUMN, display_name,
+                        -1);
+
+                g_free (display_name);
+                g_free (internal_name);
+            }else if (*tmp == '/') {
+                gchar *new_full_name;
+                gchar *display_name;
+                gchar *internal_name;
+
+                new_full_name = g_strdup_printf ("%s/%s", newname, tmp + 1);
+                display_name = fsexam_filename_display_basename (new_full_name);
+                internal_name = g_strescape (new_full_name, "");
+
+                gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+                        FILENAME_COLUMN, internal_name,
+                        DISPLAYNAME_COLUMN, display_name,
+                        -1);
+
+                g_free (new_full_name);
+                g_free (display_name);
+                g_free (internal_name);
+            }
+        }
+
+        g_free (name);
+    } while (gtk_tree_model_iter_next (model, &iter));
+
+    return;
+}
+
+/*
+ *  Update treeview_file
+ *
+ *  is_myself is TRUE if conversion are caused by dir/file TreeView
+ *  is_myself is FALSE if conversion are caused by search result Treeview 
+ */
+static void
+update_gui_for_dir (GtkTreeModel *model,
+                    const gchar *path,
+                    const gchar *oldname,
+                    const gchar *newname,
+                    GtkTreePath *treepath,
+                    gboolean    is_myself)
+{
+    GtkTreeIter iter;
+    GtkTreeIter *match_iter = NULL;
+    gchar       *rootdir = NULL;
+    gchar       *remaining = NULL;
+    gchar       *display_name = NULL;
+    gchar       *internal_name = NULL;
+    gchar       *path_clone = NULL;
+    gint        len;
+
+    display_name = fsexam_filename_display_name (newname);
+    internal_name = g_strescape (newname, "");
+
+    if (is_myself && treepath != NULL) {
+        gtk_tree_model_get_iter (model, &iter, treepath);
+        gtk_tree_store_set (GTK_TREE_STORE (model),
+                            &iter,
+                            FILENAME_COLUMN, internal_name,
+                            DISPLAYNAME_COLUMN, display_name,
+                            -1);
+
+        goto CLEAN_UP;
+    }
+
+    rootdir = get_root_dir_name (view->rootdir);
+
+    if (! g_str_has_prefix (path, rootdir)) 
+        goto CLEAN_UP;
+
+    path_clone = g_strdup (path);
+    len = strlen (rootdir);
+    remaining = path_clone + len;
+
+    if (! gtk_tree_model_get_iter_first (model, &iter)) {
+        goto CLEAN_UP;     /* empty tree */
+    }
+
+    if (*remaining == '\0') {   /* top level */
+        match_iter = search_model_at_same_level (model,
+                                                 &iter,
+                                                 oldname);
+    
+        if (match_iter == NULL)
+            goto CLEAN_UP;
+    
+        gtk_tree_store_set (GTK_TREE_STORE (model), match_iter,
+                            FILENAME_COLUMN, internal_name,
+                            DISPLAYNAME_COLUMN, display_name,
+                            -1);
+    
+        gtk_tree_iter_free (match_iter);
+    }else if (*remaining == '/') {  /* iterate each directory level */
+        gchar       *cur = ++remaining; //skip the '/'
+        gboolean    last_element;
+        gboolean    loaded;
+
+        while (TRUE) {
+            if ((*remaining != '\0') && (*remaining != '/'))  {
+                ++remaining;
+                continue;
+            }
+               
+            last_element = (*remaining == '\0') ? TRUE : FALSE;
+            *remaining = '\0';
+            match_iter = search_model_at_same_level (model,
+                                                     &iter,
+                                                     cur);
+            if (match_iter == NULL)
+                break;
+
+            if (! gtk_tree_model_iter_children (model, &iter, match_iter)) {
+                gtk_tree_iter_free (match_iter);    /* no children */
+                break;
+            }
+
+            /* now iter is the first child of match_iter */
+            gtk_tree_model_get (model, match_iter,
+                                LOADED_COLUMN, &loaded,
+                                -1);
+
+            gtk_tree_iter_free (match_iter);
+
+            if (! loaded) {
+                break;
+            }else if (last_element) {
+                match_iter = search_model_at_same_level (model, 
+                                            &iter, oldname);
+
+                if (match_iter != NULL) {
+                    gchar *display_name;
+
+                    display_name = fsexam_filename_display_name (newname);
+                    gtk_tree_store_set (
+                            GTK_TREE_STORE (model), match_iter,
+                            FILENAME_COLUMN, internal_name,
+                            DISPLAYNAME_COLUMN, display_name,
+                            -1);
+
+                    gtk_tree_iter_free (match_iter);
+                    g_free (display_name);
+                }
+
+                break;
+            }
+
+            cur = ++remaining;
+        }
+    }
+
+CLEAN_UP:
+    g_free (rootdir);
+    g_free (display_name);
+    g_free (internal_name);
+    g_free (path_clone);
+
+    return;
+}
+
+/*
+ *  Get the last path of GtkTextBuffer of report pane
+ */
+static gchar *
+get_last_path (GtkTextBuffer *buffer, GtkTextIter *iter)
+{
+    gchar   *text = NULL;
+    gint    line;
+
+    line = gtk_text_iter_get_line (iter) - 1;
+
+    while (line >= 0) {
+        GtkTextIter start, end;
+        gtk_text_buffer_get_iter_at_line_offset (buffer, &start, line, 0);
+        gtk_text_buffer_get_iter_at_line_offset (buffer, &end, line + 1, 0);
+        text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+
+        if (*text != '\n' && *text != '\t') /* info line */
+            break;
+
+        --line;
+        g_free (text);
+    }
+
+    if (text == NULL)
+        return NULL;
+
+    *(text + strlen (text) - 1) = '\0';     /* remove '\n' */
+
+    if (strncmp (text, "file:///", 8) == 0) {
+        gchar *tmp = g_filename_from_uri (text, NULL, NULL);
+        g_free (text);
+        text = tmp;
+    }
+
+    return text;
+}
+
+// dummy TreeItem
+static TreeItem demo_toplevel[] =
+{
+    { NULL, "", TRUE, NULL},
+    { NULL }
+};
+
+// copy from gsearchtool to load the pixbuf
+
+#define ICON_THEME_EXECUTABLE_ICON "gnome-fs-executable"
+#define ICON_THEME_REGULAR_ICON    "gnome-fs-regular"
+#define ICON_THEME_CHAR_DEVICE     "gnome-fs-chardev"
+#define ICON_THEME_BLOCK_DEVICE    "gnome-fs-blockdev"
+#define ICON_THEME_SOCKET          "gnome-fs-socket"
+#define ICON_THEME_FIFO            "gnome-fs-fifo"
+#define ICON_THEME_SYMLINK         "emblem-symbolic-link"
+#define ICON_SIZE                  24
+
+#if 0
+static GdkPixbuf *
+get_file_pixbuf (const gchar *file)
+{
+    GdkPixbuf *pixbuf = NULL;
+    gchar      *icon_name = NULL;
+    gchar      *escape_path = NULL;
+    GnomeVFSFileInfo    *vfs_file_info = NULL;
+
+    vfs_file_info = gnome_vfs_file_info_new ();
+    escape_path = gnome_vfs_escape_path_string (file);
+
+    gnome_vfs_get_file_info (escape_path, vfs_file_info,
+                            GNOME_VFS_FILE_INFO_DEFAULT | 
+                            GNOME_VFS_FILE_INFO_GET_MIME_TYPE |
+                            GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE);
+
+#endif 
+
+static GdkPixbuf *
+get_file_pixbuf (const gchar *file)
+{
+    GdkPixbuf   *pixbuf = NULL;
+    gchar       *icon_name = NULL;
+    const gchar *mime_type;
+
+    mime_type = gnome_vfs_get_file_mime_type (file, NULL, FALSE);
+
+    if (g_file_test (file, G_FILE_TEST_IS_SYMLINK)) {
+        icon_name = g_strdup (ICON_THEME_SYMLINK);
+    } else if (file == NULL || mime_type == NULL) {
+        icon_name = g_strdup (ICON_THEME_REGULAR_ICON);
+    } else if ((g_file_test (file, G_FILE_TEST_IS_EXECUTABLE)) &&
+           !g_ascii_strcasecmp (mime_type, "application/x-executable-binary")) {
+        icon_name = g_strdup (ICON_THEME_EXECUTABLE_ICON);
+    } else if (!g_ascii_strcasecmp (mime_type, "x-special/device-char")) {
+        icon_name = g_strdup (ICON_THEME_CHAR_DEVICE);
+    } else if (!g_ascii_strcasecmp (mime_type, "x-special/device-block")) {
+        icon_name = g_strdup (ICON_THEME_BLOCK_DEVICE);
+    } else if (!g_ascii_strcasecmp (mime_type, "x-special/socket")) {
+        icon_name = g_strdup (ICON_THEME_SOCKET);
+    } else if (!g_ascii_strcasecmp (mime_type, "x-special/fifo")) {
+        icon_name = g_strdup (ICON_THEME_FIFO);
+    } else {
+      icon_name = gnome_icon_lookup (
+                        gtk_icon_theme_get_default (), 
+                        NULL, file,
+                        NULL, NULL, 
+                        mime_type, 0, 
+                        NULL);
+    }
+
+    if (icon_name == NULL)
+        return NULL;
+
+    pixbuf = (GdkPixbuf *)g_hash_table_lookup (view->pixbuf_hash, icon_name);
+
+    if (pixbuf == NULL) {
+        pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), 
+                                           icon_name,
+                                           ICON_SIZE, 0, NULL);
+
+        /* free icon_name when free view->pixbuf_hash */
+        if (pixbuf != NULL)
+            g_hash_table_insert (view->pixbuf_hash,
+                    g_strdup (icon_name),
+                    pixbuf);
+    }
+        
+    g_free (icon_name);
+
+    return pixbuf;
+}
+
+/*
+ * free TreeItem and the memory it points to
+ */
+static void
+fsexam_treeitem_free (TreeItem *item)
+{
+    TreeItem *item2 = item;
+
+    // As one place holder, demo_toplevel isn't dynamically
+    // generated, we can't free it
+    if (NULL == item || item == demo_toplevel) return;
+
+    while (TRUE) {
+        if (item->label == NULL) /* all remaining TreeItem contain no data */
+            break;
+        
+        g_free (item->label);
+
+        if (item->icon != NULL)
+            g_object_unref (item->icon);
+
+        if (item->children)
+            fsexam_treeitem_free (item->children);
+
+        ++item;
+    }
+
+    g_free (item2);
+}
+
+/*
+ * Get the number of elements in given directory
+ */
+static gint
+get_dir_elements (DIR *dirp)
+{
+    struct dirent *dp = NULL;
+    gint   num_elements = 0;
+
+    if (dirp == NULL)
+        return 0;
+
+    while ((dp = readdir (dirp)) != NULL) {
+        ++num_elements;
+    }
+
+    rewinddir (dirp);
+
+    return num_elements;
+}
+
+/*
+ * Change the title of treeview to indicate the current root directory
+ * that treeview is based on.
+ */
+static void
+fsexam_treeview_set_title (const gchar *title)
+{
+    GtkWidget         *w;
+    
+    w = g_object_get_data (G_OBJECT (view->mainwin), "entry_folder");
+    gtk_entry_set_text (GTK_ENTRY (w), title);
+    
+    return;
+}
+
+/*
+ * TODO: collation for non-utf8
+ */
+static gint
+set_item_collation (gconstpointer a, gconstpointer b)
+{
+    TreeItem *item_a = (TreeItem *)a;
+    TreeItem *item_b = (TreeItem *)b;
+    gint     retval;
+
+    if (!item_a->label || !item_b->label) return -1;
+
+    // put directory ahead
+    if (item_a->children && !item_b->children)
+      return -1;
+    if (!item_a->children && item_b->children)
+      return 1;
+
+    retval = g_strcasecmp (item_a->label, item_b->label);
+
+    return (retval == 0 ?  (strcmp (item_a->label, item_b->label) > 0 ? -1 : 1)
+                        : retval);
+}
+
+/*
+ *  Create TreeItem list from given directory
+ */
+static TreeItem *
+fsexam_treeitem_create (const gchar *dir)
+{
+    struct stat stat_buf;
+    struct dirent *dp = NULL;
+    TreeItem     *tree = NULL;
+    TreeItem     *item = NULL;
+    DIR          *dirp;
+    gint         count;
+    gchar        *msg = NULL;
+    gint         filenum = 0;
+    
+    if (NULL == dir || lstat (dir, &stat_buf) == -1) 
+        goto _ERR;
+
+    if (! S_ISDIR (stat_buf.st_mode)) {
+        tree = g_new0 (TreeItem, 2);
+        tree->icon = get_file_pixbuf (dir);
+        tree->label = g_path_get_basename (dir);
+        tree->loaded = 1;
+
+        return tree;
+    }
+
+    dirp = opendir (dir);
+    if (dirp == NULL) 
+        goto _ERR;
+
+    filenum = get_dir_elements (dirp);  //contain '.' and '..'
+    tree = g_new0 (TreeItem, filenum);
+    count = 0;
+
+    while (((dp = readdir (dirp)) != NULL)) {
+        gchar    *name = NULL;
+        
+        if ((strcmp (dp->d_name, ".") == 0) 
+                || (strcmp (dp->d_name, "..") == 0)) 
+            continue;
+
+        name = g_strdup_printf ("%s/%s", dir, dp->d_name); 
+
+        item = tree + count;
+        item->label = g_strdup (dp->d_name);
+        item->loaded = 1;
+        item->icon = get_file_pixbuf (name);
+
+        if (lstat (name, &stat_buf) == 0 && S_ISDIR (stat_buf.st_mode)) {
+             // mark it is unloaded yet and put demo_toplevel as its children
+             // to act as one placeholder
+             item->loaded = 0;
+             item->children = demo_toplevel;
+        }
+      
+        g_free (name);  
+        ++count;
+    }
+
+    closedir (dirp);
+
+    qsort (tree, count, sizeof (TreeItem), set_item_collation);
+
+    return tree;
+
+ _ERR:
+    switch (errno) {
+        case EACCES:
+            msg = g_strdup_printf (_("No read permission"));
+            break;
+        case ENOENT:
+            msg = g_strdup_printf (_("File doesn't exist"));
+            break;
+    }
+    
+    if (!dir) 
+        msg = g_strdup_printf (_("No folder specified"));
+
+    if (msg) {
+        GtkWidget *notebook = NULL;
+
+        /* show conversion log notebook page */
+        notebook = g_object_get_data (G_OBJECT (view->mainwin), 
+                "notebook_report");
+        gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0);
+
+        fsexam_statusbar_update (msg);
+        fsexam_gui_display_msg (dir, msg);
+        g_free (msg);
+    }
+
+    return demo_toplevel;
+}
+
+/*
+ * Create TreeItem list from file list
+ */
+static TreeItem *
+fsexam_treeitem_create_from_list (GList *files)
+{
+    TreeItem        *tree = NULL;
+    TreeItem        *item = NULL;
+    struct stat     buf;
+    GList           *current;
+
+    tree = g_new0 (TreeItem, g_list_length (files) + 1);
+    item = tree;
+    current = files;
+
+    while (current != NULL) {
+        gchar *filename = current->data;
+
+        current = g_list_next (current);
+
+        if ((lstat (filename, &buf) < 0)) {
+            fsexam_gui_display_msg (filename, 
+                        _("File does not exist or no access permission."));
+
+            continue;
+        }else if (!(S_ISREG(buf.st_mode)) 
+                && !(S_ISDIR(buf.st_mode)) 
+                && !(S_ISLNK(buf.st_mode))) {
+            fsexam_gui_display_msg (filename, _("File type is not supported."));
+            continue;
+        }
+        
+        item->label = get_abs_path (filename);
+        item->loaded = 1;
+        item->icon = get_file_pixbuf (filename);
+
+        item ++;
+    }
+
+    return tree;
+}
+
+/* create GtkTreeModel from TreeItem list */
+static void
+treemodel_create_with_treeitem (GtkTreeStore *model,
+                                TreeItem *item,
+                                GtkTreeIter parent_iter,
+                                gboolean is_root)
+{
+    GtkTreeIter iter;
+    gchar       *display_name;
+    gchar       *internal_name;
+
+    if (NULL == item)
+        return;
+
+    while (item->label != NULL) {
+        TreeItem *subitem = item->children;
+        display_name = fsexam_filename_display_name (item->label);
+        internal_name = g_strescape (item->label, "");
+
+        if (is_root)
+            gtk_tree_store_append(model, &iter, NULL);
+        else
+            gtk_tree_store_append(model, &iter, &parent_iter);
+
+        gtk_tree_store_set (model, &iter,
+                            ICON_COLUMN, item->icon,
+                            FILENAME_COLUMN, internal_name,
+                            DISPLAYNAME_COLUMN, display_name,
+                            LOADED_COLUMN, item->loaded,
+                            -1);
+
+        if (subitem)
+            treemodel_create_with_treeitem(model, subitem, iter, FALSE);
+
+        g_free (display_name);
+        g_free (internal_name);
+        item++;
+    }
+
+    return;
+}
+
+/*
+ * Concatenate each part to generate its full path name
+ * The returned GString should be freed with g_string_free ()
+ *
+ * please be sure that the third param is view->rootdir
+ */
+static GString *
+fsexam_filename_get_path (GtkTreeModel *model, GtkTreeIter iter)
+{
+    GtkTreeIter parent;
+    GString     *dir;
+    gchar       *fullpath = get_root_dir_name (view->rootdir);
+
+    dir = g_string_new (NULL);
+
+    while (gtk_tree_model_iter_parent (model, &parent, &iter)) {
+        gchar *filename = NULL;
+        gchar *internal_name = NULL;
+
+        gtk_tree_model_get (model, &parent,
+                            FILENAME_COLUMN, &internal_name,
+                            -1);
+       
+        filename = g_strcompress (internal_name);
+        dir = g_string_prepend (dir, filename);
+        dir = g_string_prepend (dir, "/");
+
+        g_free (filename);
+        g_free (internal_name);
+        iter = parent; 
+    }
+
+    if (fullpath) {
+        // if it ends with '/', modify it to avoid two consecutive slashes
+        gchar *ch = fullpath + strlen (fullpath) - 1;
+
+        if (*ch == '/') 
+            *ch = 0;
+
+        dir = g_string_prepend (dir, fullpath);
+    }
+
+    g_free (fullpath);
+
+    return dir;
+}
+
+/*
+ * Concatenate each part to generate its full file name
+ * The returned GString should be freed with g_string_free ()
+ */
+gchar *
+fsexam_filename_get_fullname (GtkTreeModel *model, GtkTreeIter *iter)
+{
+    GString     *fullname = NULL;
+    gchar       *filename = NULL;
+    gchar       *internal_name = NULL;
+
+    gtk_tree_model_get (model, iter,              
+                        FILENAME_COLUMN, &internal_name,
+                        -1);
+
+    filename = g_strcompress (internal_name);
+    g_free (internal_name);
+
+    if (*filename == '/') {     /* search result treeview */
+        return filename;
+    }
+
+    /* upper-left corner treeview, not search result treeview */
+    fullname = fsexam_filename_get_path (model, *iter);
+    fullname = g_string_append (fullname, "/");
+    fullname = g_string_append (fullname, filename);
+
+    g_free (filename);
+    filename = g_string_free (fullname, FALSE);
+
+    return filename;
+}
+
+
+
+/*
+ * Check if it is one directory which hasn't been loaded yet,
+ * if yes, load its files and add into model.
+ * If permission issue exists, collapse the directory row and
+ * write error message to statusbar. 
+ */
+gboolean
+fsexam_treeview_expand (GtkWidget *widget,
+                        GtkTreeIter *iter,
+                        GtkTreePath *path,
+                        gpointer user_data)
+{
+    GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget));
+    gboolean    loaded;
+    gchar       *filename = NULL;
+    gchar       *internal_name = NULL;
+
+    gtk_tree_model_get (model, iter,              
+                        FILENAME_COLUMN, &internal_name,
+                        LOADED_COLUMN, &loaded,
+                        -1);
+
+    filename = g_strcompress (internal_name);
+    g_free (internal_name);
+
+    if (!loaded) {
+        GtkTreeIter dummy_iter;
+        TreeItem    *item = NULL;
+        GString     *dir = NULL;
+        gchar       *name = NULL;
+        
+        dir = fsexam_filename_get_path (model, *iter);
+        name = g_strdup_printf ("%s/%s", dir->str, filename);
+
+        item = fsexam_treeitem_create (name);
+
+        if (item == demo_toplevel) {
+            fsexam_statusbar_update (_("No read permission"));
+            gtk_tree_view_collapse_row (GTK_TREE_VIEW (widget), path);
+        } else if (!item->label) {
+            fsexam_statusbar_update (_("Empty folder"));
+            gtk_tree_view_collapse_row (GTK_TREE_VIEW (widget), path);
+        } else {
+            treemodel_create_with_treeitem (GTK_TREE_STORE (model), 
+                                            item,
+                                            *iter, 
+                                            FALSE);
+
+            // change it's status
+            gtk_tree_store_set (GTK_TREE_STORE (model), iter,
+                                LOADED_COLUMN, TRUE,
+                                -1);
+
+            // dummy_iter will be the first child of iter.
+            // it is demo_toplevel, need remove it
+            gtk_tree_model_iter_children (model, &dummy_iter, iter);
+            gtk_tree_store_remove (GTK_TREE_STORE (model), &dummy_iter);
+        }
+
+        g_string_free (dir, TRUE);
+        free(name);  
+        fsexam_treeitem_free (item); 
+    }
+
+    g_free (filename);
+
+    return TRUE;
+}
+
+/*
+ * Create GtkTreeModel using given TreeItem list
+ */
+static GtkTreeModel *
+fsexam_treemodel_create_with_treeitem (TreeItem *root)
+{
+    GtkTreeStore     *model;
+    GtkTreeIter      iter;
+    
+    if (root == NULL) 
+        return NULL;
+ 
+    model = gtk_tree_store_new (NUM_COLUMNS,
+                                GDK_TYPE_PIXBUF,
+                                G_TYPE_STRING,
+                                G_TYPE_STRING,
+                                G_TYPE_BOOLEAN);
+
+    treemodel_create_with_treeitem (model, root, iter, TRUE);
+
+    return GTK_TREE_MODEL (model);
+}
+
+/* 
+ * create GtkTreeView from single directory 
+ *
+ * dir need to be absolute path
+ */
+gboolean
+fsexam_treeview_construct (const gchar *dir)
+{
+    TreeItem         *toplevel;
+    GtkWidget        *widget;
+    GtkTreeModel     *model;
+    GtkTreeSelection *selection;
+    GtkTreeIter      iter;
+    gchar            *abs_path = NULL;
+
+    if (dir == NULL) 
+        return FALSE;
+
+    if (g_file_test (dir, G_FILE_TEST_IS_SYMLINK)) {
+        abs_path = get_abs_path_for_symlink_target (dir);
+    } else {
+        abs_path = get_abs_path (dir);
+    }
+
+    if (abs_path == NULL) {
+        fsexam_gui_display_msg (dir,
+                g_file_test (dir, G_FILE_TEST_IS_SYMLINK) ? 
+                _("Symlink target doesn't exist") : 
+                _("doesn't exist"));
+        fsexam_gui_display_stats (view->setting);
+   
+        return FALSE;
+    }
+
+    /* Create TreeItem from directory name */
+    if ((toplevel = fsexam_treeitem_create (abs_path)) == demo_toplevel) {
+        g_free (abs_path);
+        return FALSE;
+    }
+
+    set_root_dir (abs_path);
+
+    widget = g_object_get_data (G_OBJECT (view->mainwin), "treeview_file");
+    
+    /* Create GtkTreeModel from TreeItem list */
+    model = fsexam_treemodel_create_with_treeitem (toplevel);
+    gtk_tree_view_set_model (GTK_TREE_VIEW (widget), model);
+    fsexam_treeitem_free (toplevel);
+
+    /* select the first row by default */
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
+    if (gtk_tree_model_get_iter_first (model, &iter)) 
+        gtk_tree_selection_select_iter (selection, &iter);
+
+    if (view->rootdir) 
+        fsexam_treeview_set_title (view->rootdir);
+
+    g_free (abs_path);
+
+    return TRUE;
+}
+
+/* create GtkTreeView from multiple files */
+void
+fsexam_treeview_construct_from_list (GList *list)
+{
+    TreeItem        *toplevel;
+    GtkWidget       *widget;
+    GtkTreeModel    *model;
+    GtkTreeIter     iter;
+    GtkTreeSelection *selection;
+
+    if (NULL == list)
+        return;
+
+    g_free (view->rootdir);
+    view->rootdir = g_strdup (FSEXAM_ROOT_DIR);  
+    fsexam_treeview_set_title (view->rootdir);
+
+    widget = g_object_get_data (G_OBJECT (view->mainwin), "treeview_file");
+    toplevel = fsexam_treeitem_create_from_list (list);
+    model = fsexam_treemodel_create_with_treeitem (toplevel);
+    gtk_tree_view_set_model (GTK_TREE_VIEW (widget), model);
+    fsexam_treeitem_free (toplevel);
+
+    /* select the first row by default */
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
+    gtk_tree_model_get_iter_first (model, &iter);
+    gtk_tree_selection_select_iter (selection, &iter);
+
+    return;
+}
+
+void
+fsexam_statusbar_update (gchar *msg)
+{
+    GtkWidget *statusbar;
+
+    statusbar = g_object_get_data (G_OBJECT (view->mainwin), "appbar");
+    gnome_appbar_pop (GNOME_APPBAR (statusbar));
+    gnome_appbar_push (GNOME_APPBAR(statusbar), msg);
+
+    return;
+}
+
+/*
+ * Clear statusbar
+ */
+gboolean 
+fsexam_statusbar_fresh ()
+{
+    fsexam_statusbar_update ("");
+
+    return TRUE;
+}
+
+/*
+ * Get the filename from GtkFileChooser
+ *
+ * Ask to convert to UTF-8 if filename is not UTF-8 encoded.
+ */
+gchar *
+fsexam_file_chooser_get_name (const gchar *title, 
+                              GtkFileChooserAction action, 
+                              gboolean no_check, 
+                              gboolean ensure_utf8)
+{
+    GtkWidget   *dialog;
+    gchar       *filename = NULL;
+    const gchar *emp_msg = N_("The selected file is not empty, do you want to override it?");
+    const gchar *nonutf8_msg = N_("The selected file is not UTF-8 encoded, we strongly suggest you to use UTF-8 filename.\n\n Do you want to convert it to UTF8?");
+    const gchar *converr_msg = N_("Can't convert %s to UTF8: %s.\n\nPlease Note that there may exist partial conversion.\n So please Refresh you directory and select file again.");
+
+
+    dialog = gtk_file_chooser_dialog_new (title,
+                            GTK_WINDOW (view->mainwin),
+                            action,   //GTK_FILE_CHOOSER_ACTION_OPEN,
+                            GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                            GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+                            NULL);
+
+    while (TRUE) {
+        if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
+            filename = gtk_file_chooser_get_filename (
+                            GTK_FILE_CHOOSER (dialog));
+
+            if (filename == NULL)
+                continue;
+            if (no_check)   /* don't need any check so break */
+                break;
+
+            if (action == GTK_FILE_CHOOSER_ACTION_OPEN) { /* Open REG file */
+                struct stat statbuf;
+                
+                stat (filename, &statbuf);
+                if (statbuf.st_size != 0) {
+                    if (! fsexam_gui_show_yesno_dialog (GTK_WINDOW (dialog), 
+                                _(emp_msg))) {
+                        g_free (filename);
+                        filename = NULL;
+                        continue;
+                    }
+                }
+            }
+
+            if ((ensure_utf8) && ! g_utf8_validate (filename, -1, NULL)) {
+                if (fsexam_gui_show_yesno_dialog (
+                            GTK_WINDOW (dialog), _(nonutf8_msg))) {
+                    gboolean ret;
+                    gchar    *result = NULL;
+
+                    ret = fsexam_convert_single_filename (view->setting,
+                                                          filename,
+                                                          &result);
+                    if (ret) {  /* convert success */
+                        g_free (filename);
+                        filename = result;
+                        break;
+                    }else{
+                        gchar *uri; 
+                        GtkWidget *dlg;
+
+                        if (fsexam_errno == ERR_CANCEL_CONVERSION) {
+                            g_free (filename);
+                            filename = NULL;
+                            break;
+                        }
+
+                        uri = g_filename_to_uri (filename, NULL, NULL);
+                        dlg = gtk_message_dialog_new (
+                                            GTK_WINDOW (dialog),
+                                            GTK_DIALOG_DESTROY_WITH_PARENT,
+                                            GTK_MESSAGE_ERROR,
+                                            GTK_BUTTONS_CLOSE,
+                                            _(converr_msg),
+                                            uri,
+                                            fsexam_error_get_msg ());
+                        g_signal_connect (G_OBJECT (dlg), "response",
+                                          G_CALLBACK (gtk_widget_destroy),
+                                          NULL);
+
+                        gtk_dialog_run (GTK_DIALOG (dlg));
+
+                        gtk_widget_destroy (dlg);
+                        g_free (filename);
+                        g_free (uri);
+                        filename = NULL;
+                        continue;
+                    }
+                }else{  /* fsexam_gui_show_yesno_dialog (...) */
+                    break;
+                }
+            }else{  /* if  ((ensure_utf8) && !g_utf8_validate (...) */
+                break;
+            }
+        }else{  /* if (GTK_DIALOG_RUN (dialog) == GTK_RESPONSE_ACCEPT) */
+            g_free (filename);
+            filename = NULL;
+            break;
+        }
+    }
+
+    gtk_widget_destroy (dialog);
+
+    return filename;
+}
+
+/*
+ * If dir is symlink or under symlink directory, convert it
+ * to absolute path firstly.
+ */
+void 
+fsexam_change_dir (const gchar *dir)
+{
+    if (dir == NULL)
+        return;
+
+    if (view->rootdir != NULL && strcmp (dir, view->rootdir) == 0) 
+        return;
+
+    if (! fsexam_treeview_construct (dir))
+        return;
+
+    fsexam_undo_removeall ();       /* clear undo stack */
+    fsexam_statusbar_fresh ();      /* refresh the status bar msg stack */
+
+    return;
+}
+
+/* callback for open menu */
+void
+fsexam_choose_dir ()
+{
+    gchar *filename = NULL;
+
+    filename = fsexam_file_chooser_get_name (_("Folder Selection"),
+                                GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, 
+                                FALSE,
+                                TRUE);
+    fsexam_change_dir (filename);
+    g_free (filename);
+
+    return;
+}
+
+void 
+show_help()
+{
+    GError *err = NULL;
+
+    gnome_help_display ("fsexam.xml", "fsexam-intro", &err);
+
+    if (err) {
+        GtkWidget *dialog;
+        dialog = gtk_message_dialog_new (
+                        GTK_WINDOW (view->mainwin),
+                        GTK_DIALOG_DESTROY_WITH_PARENT,
+                        GTK_MESSAGE_ERROR,
+                        GTK_BUTTONS_CLOSE,
+                        _("There was an error when displaying help: %s"),
+                        err->message);
+
+        g_signal_connect (G_OBJECT (dialog),
+                          "response",
+                          G_CALLBACK (gtk_widget_destroy),
+                          NULL);
+
+        gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
+        gtk_widget_show (dialog);
+        g_error_free (err);
+    }
+
+    return;
+}
+
+void
+fsexam_about ()
+{
+    static GtkWidget *about = NULL;
+
+    gchar *authors [] = {
+        "Yandong Yao <[email protected]>",
+        "Federic Zhang <[email protected]>",
+        "Yong Sun <[email protected]>",
+        NULL
+    };
+
+    if (about != NULL) {
+        gtk_window_present (GTK_WINDOW (about));
+        return;
+    }
+
+    about = gnome_about_new (("fsexam"), VERSION,
+               "Copyright 2003-2008",
+               _("fsexam is to help migrate file name and file content from"
+                 " legacy encoding to UTF8"),
+               (const gchar **)authors,
+               NULL, NULL, NULL);
+
+    gtk_window_set_destroy_with_parent (GTK_WINDOW (about), TRUE);
+
+    g_signal_connect (G_OBJECT (about), "destroy",
+                      G_CALLBACK (gtk_widget_destroyed), &about);
+
+    gtk_widget_show (about);
+
+    return;
+}
+
+/* construct GtkTreeView column and renderer */
+static void
+common_construct_ui ()
+{
+    static gboolean     initialized = FALSE;
+    GtkCellRenderer     *renderer;
+    GtkTreeViewColumn   *column;
+    GtkWidget           *treeview;
+
+    if (initialized)
+        return;
+
+    initialized = TRUE;
+
+    /* construct tree view */
+    treeview = g_object_get_data (G_OBJECT (view->mainwin), "treeview_file");
+
+    /* ICON_COLUMN + DISPLAYNAME_COLUMN */
+    column = gtk_tree_view_column_new ();
+ 
+    /* Icon renderer */
+    renderer = gtk_cell_renderer_pixbuf_new ();
+    gtk_tree_view_column_pack_start (column, renderer, FALSE);
+    gtk_tree_view_column_set_attributes (column, renderer,
+                                         "pixbuf", ICON_COLUMN,
+                                         NULL);
+ 
+    /* text renderer */
+    renderer = gtk_cell_renderer_text_new ();
+    gtk_tree_view_column_pack_start (column, renderer, TRUE);
+    gtk_tree_view_column_set_attributes (column, renderer,
+                                         "text", DISPLAYNAME_COLUMN,
+                                         NULL);
+  
+    gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED);
+    gtk_tree_view_column_set_resizable (column, TRUE);
+    gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (treeview), TRUE);
+
+//    gtk_tree_view_column_set_sort_column_id (column, FILENAME_COLUMN);
+    gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+
+    /* FILENAME_COLUMN */
+    column = gtk_tree_view_column_new ();
+    
+    renderer = gtk_cell_renderer_text_new ();
+    gtk_tree_view_column_pack_start (column, renderer, TRUE);
+    gtk_tree_view_column_set_attributes (column, renderer,
+                                         "text", FILENAME_COLUMN,
+                                         NULL);
+  
+    gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED);
+    gtk_tree_view_column_set_resizable (column, TRUE);
+    gtk_tree_view_column_set_visible (column, FALSE);
+    gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (treeview), TRUE);
+
+    gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+
+    /* set GtkTreeView selection mode */
+    gtk_tree_selection_set_mode (
+          gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), 
+          GTK_SELECTION_MULTIPLE);
+
+    return;
+}
+
+/*
+ * Construct file list in the left pane and display dirname in location 
+ * field.
+ */
+void
+fsexam_construct_ui (const gchar *dir)
+{
+    if (NULL == dir)
+        return;
+
+    common_construct_ui ();             /* create GtkTreeView */
+    fsexam_treeview_construct (dir);    /* create GtkTreeModel */
+                                
+    return;
+}
+
+/*
+ * Create and show search pane 
+ */
+static void
+create_search_treeview_column (GtkTreeView *treeview)
+{
+    GtkTreeViewColumn   *column = NULL;
+    GtkCellRenderer     *renderer = NULL;
+    GtkListStore        *model = NULL;
+
+    /* Create empty list store */
+    model = gtk_list_store_new (3, 
+            GDK_TYPE_PIXBUF, 
+            G_TYPE_STRING, 
+            G_TYPE_STRING);
+    gtk_tree_view_set_model (treeview, GTK_TREE_MODEL (model));
+    g_object_unref (model);
+
+    //gtk_tree_view_set_headers_visible (treeview, TRUE);
+    gtk_tree_selection_set_mode (
+            gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)), 
+            GTK_SELECTION_MULTIPLE);
+
+    /* display name column */
+    column = gtk_tree_view_column_new ();
+    //gtk_tree_view_column_set_title (column, _("Name"));
+
+    renderer = gtk_cell_renderer_pixbuf_new ();
+    gtk_tree_view_column_pack_start (column, renderer, FALSE);
+    gtk_tree_view_column_set_attributes (column, 
+            renderer, "pixbuf", 
+            ICON_COLUMN, NULL);
+
+    renderer = gtk_cell_renderer_text_new ();
+    gtk_tree_view_column_pack_start (column, renderer, TRUE);
+    gtk_tree_view_column_set_attributes (column, 
+            renderer, "text", 
+            DISPLAYNAME_COLUMN, 
+            NULL);
+
+    gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED);
+    gtk_tree_view_column_set_resizable (column, TRUE);
+    gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (treeview), TRUE);
+    //gtk_tree_view_column_set_sort_column_id (column, DISPLAYNAME_COLUMN);
+
+    gtk_tree_view_append_column (treeview, column);
+
+    /* real name column */
+    column = gtk_tree_view_column_new ();
+
+    renderer = gtk_cell_renderer_text_new ();
+    gtk_tree_view_column_pack_start (column, renderer, TRUE);
+    gtk_tree_view_column_set_attributes (column, 
+            renderer, "text", 
+            FILENAME_COLUMN, 
+            NULL);
+
+    gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED);
+    gtk_tree_view_column_set_resizable (column, TRUE);
+    gtk_tree_view_column_set_visible (column, FALSE);
+    gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (treeview), TRUE);
+
+    gtk_tree_view_append_column (treeview, column);
+
+    /* connect signals */
+    gtk_widget_add_events (GTK_WIDGET (treeview), GDK_BUTTON_PRESS_MASK);
+    g_signal_connect (G_OBJECT (treeview), "button_press_event",
+                      G_CALLBACK (button_press), NULL);
+    g_signal_connect (G_OBJECT (treeview), "button_release_event",
+                      G_CALLBACK (button_release), NULL);
+    g_signal_connect (G_OBJECT (treeview), "key_press_event",
+                      G_CALLBACK (key_press), NULL);
+
+    return;
+}
+
+void 
+fsexam_search_treeview_show ()
+{
+    GtkWidget *treeview = NULL;
+    GtkWidget *widget = NULL;
+
+    treeview = g_object_get_data (G_OBJECT (view->mainwin), "treeview_search");
+
+    if (gtk_tree_view_get_model (GTK_TREE_VIEW (treeview)) == NULL)
+        create_search_treeview_column (GTK_TREE_VIEW (treeview));
+
+    /* show the search result pane for the first time */
+    widget = g_object_get_data (G_OBJECT (view->mainwin), "vpaned_main");
+    gtk_widget_show (gtk_paned_get_child2 (GTK_PANED (widget)));
+    gtk_paned_set_position (GTK_PANED (widget), 
+                            2 * widget->allocation.height / 3);
+
+    /* check search result menu */
+    widget = g_object_get_data (G_OBJECT (view->mainwin), "menu_search_result");
+    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), TRUE);
+
+    return;
+}
+
+void 
+fsexam_search_treeview_hide ()
+{
+    GtkWidget *vpaned_main = NULL;
+    GtkWidget *widget = NULL;
+
+    vpaned_main = g_object_get_data (G_OBJECT (view->mainwin), "vpaned_main");
+    gtk_paned_set_position (GTK_PANED (vpaned_main), 
+                            vpaned_main->allocation.height);
+
+    /* check search result menu */
+    widget = g_object_get_data (G_OBJECT (view->mainwin), "menu_search_result");
+    gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), FALSE);
+
+    return;
+}
+
+/*
+ * Append search result into search result listview 
+ *
+ * If filename == NULL, then show result pane and clear old result only
+ */
+void
+fsexam_search_treeview_append_file (const gchar *filename, gboolean first_file)
+{
+    GtkTreeView     *treeview = NULL;
+    GtkListStore    *model = NULL;
+    GtkTreeIter     iter;
+    gchar           *abs_path = NULL;
+    gchar           *display_name = NULL;
+    gchar           *internal_name = NULL;
+    gboolean        showned;
+
+    showned = gtk_check_menu_item_get_active (
+            g_object_get_data (G_OBJECT (view->mainwin), "menu_search_result"));
+
+    if (!showned)   /* show search result treeview if not */
+        fsexam_search_treeview_show ();
+
+    treeview = GTK_TREE_VIEW (g_object_get_data (G_OBJECT (view->mainwin), 
+                              "treeview_search"));
+    model = GTK_LIST_STORE (gtk_tree_view_get_model (treeview));
+
+    if (first_file) {
+        gtk_list_store_clear (model);
+    }
+   
+    if (filename == NULL)
+        return;
+
+    abs_path = get_abs_path (filename);
+
+    if (abs_path == NULL) {
+        fsexam_gui_display_msg (filename,
+                g_file_test (filename, G_FILE_TEST_IS_SYMLINK) ? 
+                _("Symlink target doesn't exist") : 
+                _("doesn't exist"));
+        return;
+    }
+   
+    /* add search result into search tree view */
+    display_name = fsexam_filename_display_name (abs_path);
+    internal_name = g_strescape (abs_path, "");
+    gtk_list_store_append(model, &iter);
+    gtk_list_store_set (model, &iter,
+                       ICON_COLUMN, get_file_pixbuf (abs_path),
+                       DISPLAYNAME_COLUMN, display_name,
+                       FILENAME_COLUMN, internal_name,
+                       -1);
+
+    g_free (abs_path);
+    g_free (display_name);
+    g_free (internal_name);
+
+    return;
+}
+
+void
+fsexam_search_treeview_append_list (GList *list)
+{
+    GtkWidget *notebook = NULL;
+    gboolean  first_file = TRUE;
+
+    if (list == NULL)
+        return;
+
+    while (list) {
+        fsexam_search_treeview_append_file (list->data, first_file);
+
+        first_file = FALSE;
+        list = list->next;
+    }
+
+    /* show conversion log notebook page */
+    notebook = g_object_get_data (G_OBJECT (view->mainwin), "notebook_report");
+    gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 0);
+
+    return;
+}
+
+gboolean
+fsexam_gui_show_yesno_dialog (GtkWindow *parent, const gchar *msg_format, ...)
+{
+    GtkWidget   *dialog = NULL;
+    gchar       *msg = NULL;
+    va_list     args;
+    gboolean    ret = FALSE;
+
+    if (msg_format) {
+        va_start (args, msg_format);
+        msg = g_strdup_vprintf (msg_format, args);
+        va_end (args);
+    }
+
+    dialog = gtk_message_dialog_new (
+                            parent,
+                            GTK_DIALOG_DESTROY_WITH_PARENT,
+                            GTK_MESSAGE_QUESTION,
+                            GTK_BUTTONS_YES_NO,
+                            msg);
+    if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_YES) {
+        ret = TRUE;
+    }
+
+    g_free (msg);
+    
+    gtk_widget_destroy (dialog);
+
+    return ret;
+}
+
+void
+fsexam_gui_show_dialog (GtkWindow *parent, 
+                        GtkMessageType type, 
+                        const gchar *message_format, 
+                        ...)
+{
+    GtkWidget   *dialog = NULL;
+    gchar       *msg = NULL;
+    va_list     args;
+
+    if (message_format) {
+        va_start (args, message_format);
+        msg = g_strdup_vprintf (message_format, args);
+        va_end (args);
+    }
+
+    dialog = gtk_message_dialog_new (
+                            parent, 
+                            GTK_DIALOG_DESTROY_WITH_PARENT,
+                            type,
+                            GTK_BUTTONS_CLOSE,
+                            msg);
+
+    g_signal_connect (G_OBJECT (dialog), "response", 
+                      G_CALLBACK (gtk_widget_destroy), NULL);
+
+    gtk_dialog_run (GTK_DIALOG (dialog));
+
+    g_free (msg);
+
+    return;
+}
+
+/*
+ * Display msg into report pane.
+ *  filename: maybe non-utf8
+ *  msg: must be utf8
+ */
+void
+fsexam_gui_display_msg (const gchar *filename, const gchar *msg)
+{
+    GtkWidget       *textview = NULL;
+    GtkTextBuffer   *buffer = NULL;
+    GtkTextMark     *mark = NULL;
+    GtkTextIter     iter;
+    gchar           *messages = NULL;
+    static gboolean created_mark = FALSE;
+    static gboolean tag_created = FALSE;
+    
+    textview = g_object_get_data (G_OBJECT (view->mainwin), 
+                                  "textview_report");
+    buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview));
+    gtk_text_buffer_get_end_iter (buffer, &iter);
+   
+    /* creat mark based on iter */
+    if (!created_mark) {
+        mark = gtk_text_buffer_create_mark (buffer, "end_mark", &iter, FALSE);
+        created_mark = TRUE;
+    }else{
+        mark = gtk_text_buffer_get_mark (buffer, "end_mark");
+    }
+   
+    /* create BOLD tag */
+    if (!tag_created) {
+        gtk_text_buffer_create_tag (buffer,
+                "BOLD_TAG",
+                "weight", PANGO_WEIGHT_BOLD,
+                NULL);
+        tag_created = TRUE;
+    }
+
+    if (filename) {
+        gchar *dname = g_path_get_dirname (filename);
+        gchar *bname = g_path_get_basename (filename);
+        gchar *prev_line = NULL;
+
+        /* Under the same directory as the previous report? */
+        prev_line = get_last_path (buffer, &iter);
+        if (prev_line == NULL || strcmp (dname, prev_line) != 0) {
+            gtk_text_buffer_get_end_iter (buffer, &iter);
+
+            if (g_utf8_validate (dname, -1, NULL)) {
+                messages = g_strdup_printf ("%s\n", dname);
+            }else{
+                gchar *uri = g_filename_to_uri (dname, NULL, NULL);
+                messages = g_strdup_printf ("%s\n", uri);
+                g_free (uri);
+            }
+
+            gtk_text_buffer_insert (buffer, &iter, messages, -1);
+            g_free (messages);
+        }
+
+        /* print basename and conversion message */
+        gtk_text_buffer_get_end_iter (buffer, &iter);
+        gtk_text_buffer_insert (buffer, &iter, "\t\t", -1);
+
+        gtk_text_buffer_get_end_iter (buffer, &iter);
+        if (g_utf8_validate (bname, -1, NULL)) {
+            gtk_text_buffer_insert_with_tags_by_name (buffer,
+                    &iter,
+                    bname,
+                    -1,
+                    "BOLD_TAG",
+                    NULL);
+        }else{
+            gchar *escape = fsexam_string_escape (bname);
+            gtk_text_buffer_insert_with_tags_by_name (buffer,
+                    &iter,
+                    escape,
+                    -1,
+                    "BOLD_TAG",
+                    NULL);
+
+            g_free (escape);
+        }
+
+        gtk_text_buffer_get_end_iter (buffer, &iter);
+        messages = g_strdup_printf (":\t%s\n", msg ? msg : "");
+        gtk_text_buffer_insert (buffer, &iter, messages, -1);
+        g_free (messages);
+        
+        g_free (dname);
+        g_free (bname);
+        g_free (prev_line);
+    }else{
+        gtk_text_buffer_insert (buffer, &iter, msg, -1);
+        gtk_text_buffer_get_end_iter (buffer, &iter);
+        gtk_text_buffer_insert (buffer, &iter, "\n", -1);
+    }
+
+    /* scroll text view so that the newest line is visible */
+    gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (textview),
+            mark,
+            0.0,
+            TRUE,
+            0.0,
+            1.0);
+
+    return;
+}
+
+/* 
+ * callbacks for FSEXAM_setting functions 
+ *
+ * update TreeView after convert file name successfully.
+ */
+void
+fsexam_gui_update ( FSEXAM_setting *setting, 
+                    const gchar *path,
+                    const gchar *oldname,
+                    const gchar *newname)
+{
+    GtkWidget       *tree_view = NULL;
+    GtkTreeModel    *tree_model = NULL;
+    GtkTreeModel    *another_model = NULL;
+    GtkTreePath     *tree_path = NULL;
+    gchar           *tree_path_str = NULL;
+    gchar           *old_full_name = NULL;
+    gchar           *new_full_name = NULL;
+    gboolean        on_treeview_search = FALSE;
+
+    if (setting->pref->conv_content)
+        return;
+
+    if ((NULL == path) || (NULL == oldname) 
+            || (NULL == newname) || (view->focus_treeview == NULL))
+        return;
+
+    tree_view = view->focus_treeview;
+    tree_model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view));
+    
+    if (strcmp (gtk_widget_get_name (tree_view), "treeview_search") == 0) 
+        on_treeview_search = TRUE;
+
+    tree_view = g_object_get_data (G_OBJECT (view->mainwin), 
+                    on_treeview_search ? "treeview_file" : "treeview_search");
+    another_model = gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view));
+
+    old_full_name = g_strdup_printf ("%s/%s", path, oldname);
+    new_full_name = g_strdup_printf ("%s/%s", path, newname);
+
+    /* lookup hash to get the GtkTreePath string */
+    if (view->treepath_hash != NULL) {
+        tree_path_str = (gchar *)g_hash_table_lookup (view->treepath_hash, 
+                                                      old_full_name);
+    }
+
+    if (tree_path_str != NULL)
+        tree_path = gtk_tree_path_new_from_string (tree_path_str);
+
+    /* update search result treeview */
+    update_gui_for_filelist (on_treeview_search ? tree_model : another_model,
+                             old_full_name,
+                             new_full_name,
+                             tree_path,
+                             on_treeview_search ? TRUE : FALSE);
+
+    /* update folder treeview */
+    update_gui_for_dir (on_treeview_search ? another_model : tree_model,
+                        path,
+                        oldname,
+                        newname,
+                        tree_path,
+                        on_treeview_search ? FALSE : TRUE);
+
+    g_free (new_full_name);
+    g_free (old_full_name);
+    gtk_tree_path_free (tree_path);
+
+    return;
+}
+
+extern gint indexg;
+
+gint
+fsexam_gui_get_index (GList *encoding_list, gboolean forname)
+{
+    GtkWidget   *dialog;
+    gint        response;
+    gboolean    donnot_ask;
+
+    indexg = -1;    /* init indexg to override previous value */
+
+    dialog = fsexam_dialog_candidate (encoding_list, forname);
+    response = gtk_dialog_run (GTK_DIALOG (dialog));
+
+    donnot_ask = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (
+                g_object_get_data (G_OBJECT (dialog), "chkbtn_ask")));
+
+    /* now indexg should contain the real index */
+    if (response == GTK_RESPONSE_OK){
+        gint index = 0;
+
+        if (indexg == -1){
+            /* use the first available encode */
+            fsexam_encoding_iterate_with_func (encoding_list,
+                        fsexam_encoding_translate_index,
+                        &index,
+                        &indexg);
+        }
+
+        /* indexg is the index in encoding_list, so it is safe */
+        if (donnot_ask)
+            view->setting->gold_index = indexg;
+    }else{
+        indexg = -1;
+    }
+
+    /* indexg == -1 means cancel conversion by user */
+    if (indexg == -1 && donnot_ask)
+        view->setting->flags |= FSEXAM_SETTING_FLAGS_STOP;
+
+    gtk_widget_destroy (dialog);
+
+    return indexg;
+}
+
+#define END_LINE "==================================================\n"
+void
+fsexam_gui_display_stats (FSEXAM_setting *setting)
+{
+    gchar           *stats_info = NULL;
+    GtkTextView     *textview = NULL;
+    GtkTextBuffer   *buffer = NULL;
+    GtkTextMark     *mark = NULL;
+    GtkTextIter     iter, start, end;
+    gchar           *text;
+    gint            line;
+    static gboolean tag_created = FALSE;
+
+    stats_info = g_strdup_printf (
+            _("Rough summary: %d given, %d total, %d ignore, %d fail, %d succeed\n"),
+            setting->passin_num,
+            setting->total_num,
+            setting->ignore_num,
+            setting->fail_num,
+            setting->succ_num);
+
+    /* display statastics information in statusbar */
+    *(stats_info + strlen (stats_info) - 1) = '\0';
+    fsexam_statusbar_update (stats_info);
+    g_free (stats_info);
+
+    /* display something in report pane to make it clear to see */
+    textview = g_object_get_data (G_OBJECT (view->mainwin), 
+                                  "textview_report");
+    buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview));
+    gtk_text_buffer_get_end_iter (buffer, &iter);
+
+    line = gtk_text_iter_get_line (&iter) - 1;
+    gtk_text_buffer_get_iter_at_line_offset (buffer, &start, line, 0);
+    gtk_text_buffer_get_iter_at_line_offset (buffer, &end, line + 1, 0);
+    text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+
+    if (text == NULL || *text == '=') {		/* No new data, return */
+        g_free (text);
+        return;
+    }
+
+    if (!tag_created) {
+        gtk_text_buffer_create_tag (buffer, 
+                "SUMMARY_TAG",      /* tag name */
+                "foreground", "blue", 
+                //"weight", PANGO_WEIGHT_BOLD, 
+                NULL);
+        tag_created = TRUE;
+    }
+
+    mark = gtk_text_buffer_get_mark (buffer, "end_mark");
+
+    if (mark == NULL) {
+        mark = gtk_text_buffer_create_mark (buffer, "end_mark", &iter, FALSE);
+    }
+
+    gtk_text_buffer_insert_with_tags_by_name (buffer, 
+            &iter, 
+            END_LINE,
+            -1,
+            "SUMMARY_TAG",
+            NULL);
+
+    gtk_text_view_scroll_mark_onscreen (GTK_TEXT_VIEW (textview), mark);
+
+    g_free (text);
+    
+    return;
+}
+
+/* 
+ * Load Glade xml file
+ */
+GladeXML *
+fsexam_gui_load_glade_file (const gchar *filename,
+                            const gchar *widget_root,
+                            GtkWindow  *error_dialog_parent)
+{
+    gchar       *path = NULL;
+    GladeXML    *xml = NULL;
+
+    path = g_strconcat ("./", filename, NULL);  /* for test in local dir */
+    if (g_file_test (path, G_FILE_TEST_EXISTS)) {
+        xml = glade_xml_new (path, widget_root, GETTEXT_PACKAGE);
+    }
+
+    if (xml == NULL) {
+        g_free (path);
+        path = g_build_filename (FSEXAM_GLADE_DIR, filename, NULL);
+
+        xml = glade_xml_new (path, widget_root, GETTEXT_PACKAGE);
+    }
+
+    if (xml == NULL) {
+        fsexam_gui_show_dialog (error_dialog_parent,    
+                                GTK_MESSAGE_ERROR,
+                                _("The file \"%s\" is missing."), 
+                                path);
+    }else{
+        glade_xml_signal_autoconnect (xml);
+    }
+
+    g_free (path);
+
+    return xml;
+}
+
+FSEXAM_view *
+fsexam_view_new ()
+{
+    FSEXAM_view *view = NULL;
+    GladeXML    *xml = NULL;
+    GtkWidget   *mainwin = NULL;
+    GtkWidget   *w = NULL;
+    gchar       *icon_path = NULL;
+
+    view = g_new0 (FSEXAM_view, 1);
+
+    view->pixbuf_hash = g_hash_table_new_full (
+                                        g_str_hash, 
+                                        g_str_equal,
+                                        (GDestroyNotify) g_free,
+                                        (GDestroyNotify) g_object_unref);
+    view->treepath_hash = g_hash_table_new_full (
+                                        g_str_hash, 
+                                        g_str_equal,
+                                        (GDestroyNotify) g_free,
+                                        (GDestroyNotify) g_free);
+    view->undo_list = NULL;
+    view->rootdir = NULL;
+    view->basedir = NULL;
+    view->lineoffset = 0;
+    view->pid = -1;
+
+    view->peekwin = NULL;
+    view->focus_treeview = NULL;
+
+    /* set the default icon for all window */
+    icon_path = g_strdup_printf ("%s/%s", FSEXAM_ICON_DIR, FSEXAM_ICON_FILE);
+	gtk_window_set_default_icon_from_file (icon_path, NULL);
+    g_free (icon_path);
+
+    /* Main Window */
+    xml = fsexam_gui_load_glade_file (
+                        FSEXAM_GLADE_FILE,
+                        "app_window",
+                        NULL); 
+    if (xml == NULL)
+        return view;
+
+    mainwin = view->mainwin = glade_xml_get_widget (xml, "app_window");
+    g_signal_connect (G_OBJECT (mainwin), "destroy",
+                      G_CALLBACK (mainwin_destroy), NULL);
+    g_signal_connect (G_OBJECT (mainwin), "delete-event",
+                      G_CALLBACK (mainwin_delete), NULL);
+
+    fsexam_dnd_set (mainwin);       /* set DnD */
+
+    /* main menu */
+    w = glade_xml_get_widget(xml, "menu_quit");
+    g_signal_connect (G_OBJECT (w), "activate",
+		      G_CALLBACK (mainwin_destroy), NULL);
+
+    /* toolbar */
+    w = glade_xml_get_widget (xml, "toolbar_main");
+    g_object_set_data (G_OBJECT (mainwin), "toolbar", w);
+
+    /* Treeview and its mouse and button events */
+    w = glade_xml_get_widget (xml, "treeview_file");
+    g_object_set_data (G_OBJECT (mainwin), "treeview_file", w);
+    gtk_widget_add_events (w, GDK_BUTTON_PRESS_MASK);
+    g_signal_connect (GTK_TREE_VIEW (w), "button_press_event",
+                      G_CALLBACK (button_press), NULL);
+    g_signal_connect (GTK_TREE_VIEW (w), "button_release_event",
+                      G_CALLBACK (button_release), NULL);
+    g_signal_connect (GTK_TREE_VIEW (w), "key_press_event",
+                      G_CALLBACK (key_press), NULL);
+    
+    /* status bar */
+    w = glade_xml_get_widget (xml, "appbar1");
+    g_object_set_data (G_OBJECT (mainwin), "appbar", w);
+
+    /* notebook */
+    w = glade_xml_get_widget (xml, "notebook_report");
+    g_object_set_data (G_OBJECT (mainwin), "notebook_report", w);
+
+    w = glade_xml_get_widget (xml, "scrollwin_report");
+    g_object_set_data (G_OBJECT (mainwin), "scrollwin_report", w);
+
+    w = glade_xml_get_widget (xml, "textview_report");
+    g_object_set_data (G_OBJECT (mainwin), "textview_report", w);
+
+    w = glade_xml_get_widget (xml, "scrollwin_dryrun");
+    g_object_set_data (G_OBJECT (mainwin), "scrollwin_dryrun", w);
+
+    w = glade_xml_get_widget (xml, "textview_dryrun");
+    g_object_set_data (G_OBJECT (mainwin), "textview_dryrun", w);
+
+    /* folder entry */
+    w = glade_xml_get_widget (xml, "entry_folder");
+    g_object_set_data (G_OBJECT (mainwin), "entry_folder", w);
+
+    /* submenu */
+    w = glade_xml_get_widget (xml, "menu_search");
+    g_object_set_data (G_OBJECT (mainwin), "menu_search", w);
+
+    w = glade_xml_get_widget (xml, "menu_stop_search");
+    g_object_set_data (G_OBJECT (mainwin), "menu_stop_search", w);
+
+    w = glade_xml_get_widget (xml, "undo_menu");
+    g_object_set_data (G_OBJECT (mainwin), "menu_undo", w);
+    gtk_widget_set_sensitive (w, FALSE);
+
+    w = glade_xml_get_widget (xml, "convert_menu");
+    g_object_set_data (G_OBJECT (mainwin), "menu_convert", w);
+
+    w = glade_xml_get_widget (xml, "restore_menu");
+    g_object_set_data (G_OBJECT (mainwin), "menu_restore", w);
+
+    w = glade_xml_get_widget (xml, "dryrun_menu");
+    g_object_set_data (G_OBJECT (mainwin), "menu_dryrun", w);
+
+    w = glade_xml_get_widget (xml, "menu_scenario");
+    g_object_set_data (G_OBJECT (mainwin), "menu_scenario", w);
+
+    w = glade_xml_get_widget (xml, "force_convert_menu");
+    g_object_set_data (G_OBJECT (mainwin), "menu_force_convert", w);
+    
+    w = glade_xml_get_widget (xml, "menu_clear_search");
+    g_object_set_data (G_OBJECT (mainwin), "menu_clear_search", w);
+
+    w = glade_xml_get_widget (xml, "name_mode_menu");
+    g_object_set_data (G_OBJECT (mainwin), "menu_name_mode", w);
+
+    w = glade_xml_get_widget (xml, "content_mode_menu");
+    g_object_set_data (G_OBJECT (mainwin), "menu_content_mode", w);
+
+    w = glade_xml_get_widget (xml, "report_pane_menu");
+    g_object_set_data (G_OBJECT (mainwin), "menu_report", w);
+
+    w = glade_xml_get_widget (xml, "dryrun_result_menu");       /* dryrun result under view */
+    g_object_set_data (G_OBJECT (mainwin), "menu_dryrun_result", w);
+
+    w = glade_xml_get_widget (xml, "menu_search_result");
+    g_object_set_data (G_OBJECT (mainwin), "menu_search_result", w);
+
+    /* toolbar button */
+    w = glade_xml_get_widget (xml, "toolbutton_convert");
+    g_object_set_data (G_OBJECT (mainwin), "toolbutton_convert", w);
+
+    w = glade_xml_get_widget (xml, "toolbutton_restore");
+    g_object_set_data (G_OBJECT (mainwin), "toolbutton_restore", w);
+    
+    w = glade_xml_get_widget (xml, "toolbutton_dryrun");
+    g_object_set_data (G_OBJECT (mainwin), "toolbutton_dryrun", w);
+    
+    w = glade_xml_get_widget (xml, "toolbutton_force");
+    g_object_set_data (G_OBJECT (mainwin), "toolbutton_force", w);
+    
+    w = glade_xml_get_widget (xml, "toolbutton_undo");
+    g_object_set_data (G_OBJECT (mainwin), "toolbutton_undo", w);
+
+    w = glade_xml_get_widget (xml, "toolbutton_scenario");
+    g_object_set_data (G_OBJECT (mainwin), "toolbutton_scenario", w);
+
+    /* search result pane */
+    w = glade_xml_get_widget (xml, "vpaned_main");
+    g_object_set_data (G_OBJECT (mainwin), "vpaned_main", w);
+
+    w = glade_xml_get_widget (xml, "label_result");
+    g_object_set_data (G_OBJECT (mainwin), "label_result", w);
+
+    w = glade_xml_get_widget (xml, "treeview_search");
+    g_object_set_data (G_OBJECT (mainwin), "treeview_search", w);
+
+    g_object_unref (G_OBJECT (xml));
+
+    /* popup menu */
+    xml = fsexam_gui_load_glade_file (FSEXAM_GLADE_FILE, 
+                                      "menu_popup",
+                                      GTK_WINDOW (view->mainwin));
+   if (xml == NULL)
+       return view;
+
+    view->popup_menu = glade_xml_get_widget (xml, "menu_popup");
+#ifdef HAVE_NO_GLIB_2_8
+    g_object_ref (view->popup_menu);
+#else
+    g_object_ref_sink (view->popup_menu);   /* we own this object */
+#endif
+
+    w = glade_xml_get_widget (xml, "popup_undo");
+    g_object_set_data (G_OBJECT (view->popup_menu), "popup_undo", w);
+
+    w = glade_xml_get_widget (xml, "popup_convert");
+    g_object_set_data (G_OBJECT (view->popup_menu), "popup_convert", w);
+
+    w = glade_xml_get_widget (xml, "popup_restore");
+    g_object_set_data (G_OBJECT (view->popup_menu), "popup_restore", w);
+    
+    w = glade_xml_get_widget (xml, "popup_dryrun");
+    g_object_set_data (G_OBJECT (view->popup_menu), "popup_dryrun", w);
+    
+    w = glade_xml_get_widget (xml, "popup_scenario");
+    g_object_set_data (G_OBJECT (view->popup_menu), "popup_scenario", w);
+
+    w = glade_xml_get_widget (xml, "popup_forceful");
+    g_object_set_data (G_OBJECT (view->popup_menu), "popup_forceful", w);
+    
+    w = glade_xml_get_widget (xml, "popup_name_mode");
+    g_object_set_data (G_OBJECT (view->popup_menu), "popup_name_mode", w);
+    
+    w = glade_xml_get_widget (xml, "popup_content_mode");
+    g_object_set_data (G_OBJECT (view->popup_menu), "popup_content_mode", w);
+
+    g_object_unref (G_OBJECT (xml));
+
+    return view;
+}
+
+void
+fsexam_view_destroy (FSEXAM_view *view)
+{
+    /* hash table */
+    g_hash_table_destroy (view->pixbuf_hash);
+    g_hash_table_destroy (view->treepath_hash);
+    view->treepath_hash = NULL;
+    view->pixbuf_hash = NULL;
+
+    /* FSEXAM_setting */
+    if (view->setting) 
+        fsexam_setting_destroy (view->setting);
+    view->setting = NULL;
+
+    /* undo list */
+    if (view->undo_list) {
+        g_slist_free (view->undo_list);
+    }
+    view->undo_list = NULL;
+
+    /* popup menu object */
+    g_object_unref (G_OBJECT (view->popup_menu));
+    view->popup_menu = NULL;
+
+    /* dirname */
+    g_free (view->rootdir);
+    view->rootdir = NULL;
+    g_free (view->basedir);
+    view->basedir = NULL;
+
+    g_free (view);
+
+    return;
+}
+
+/* ---------------------  Content peek funcs -------------------- */
+
+GdkPixmap *content_pixmap;
+
+static void
+get_upper_left_xy (GtkWidget *peekwin,
+                   gint width, gint height,
+                   gint x_root, gint y_root,
+                   gint *x, gint *y)
+{
+    *x = x_root;
+    *y = y_root;
+
+    *x -= width;
+    *y -= height;
+
+    return;
+}
+
+
+static void
+set_window_background (GtkWidget *window, GdkPixmap *pixmap)
+{
+    gdk_window_set_back_pixmap (window->window, pixmap, FALSE);
+}
+
+/*
+ * Create a pixmap from contents 
+ */
+static GdkPixmap *
+create_content_pixmap (GtkWidget *peekwin, gchar *content)
+{
+    PangoLayout     *pango_layout;
+    PangoLayout     *main_pango_layout = NULL;
+    PangoRectangle  rect;
+    gint            pixmap_width, pixmap_height;
+    GtkStyle        *style;
+    GdkPixmap       *pixmap;
+    PangoFontDescription *font_desc;
+
+    enum { PADDING = 8 };
+
+    /* create PangoLayout */
+    main_pango_layout = gtk_widget_create_pango_layout (view->mainwin, NULL);
+    font_desc = pango_font_description_copy (
+                        gtk_widget_get_style (view->mainwin)->font_desc);
+
+    pango_layout = pango_layout_new (
+                        pango_layout_get_context (main_pango_layout));
+
+    pango_layout_set_font_description (pango_layout, font_desc);
+    
+    if (str_isutf8 (content, -1)) {
+        pango_layout_set_text (pango_layout, content, -1);
+    } else {
+        gchar   *display_content;
+
+        /* Use below function to replace non-utf8 char with '?' */
+        display_content = fsexam_filename_display_name (content);
+        pango_layout_set_text (pango_layout, display_content, -1);
+
+        g_free (display_content);
+    }
+
+    pango_layout_get_pixel_extents (pango_layout, &rect, NULL);
+
+    pixmap_width = rect.width + 2 * PADDING;
+    pixmap_height = rect.height + 2 * PADDING;
+
+    style = gtk_widget_get_style (view->mainwin);
+   
+    /* create pixmap */
+    pixmap = gdk_pixmap_new (view->mainwin->window, 
+                             pixmap_width, 
+                             pixmap_height, 
+                             -1);
+
+    gdk_draw_rectangle (pixmap, 
+                        style->base_gc[GTK_STATE_NORMAL], 
+                        TRUE, 0, 0, 
+                        pixmap_width, pixmap_height);
+
+    gdk_draw_rectangle (pixmap, 
+                        style->fg_gc[GTK_STATE_INSENSITIVE], 
+                        FALSE, 1, 1, 
+                        pixmap_width - 3, pixmap_height -3);
+
+    gdk_draw_layout (pixmap, 
+                     style->text_gc[GTK_STATE_NORMAL], 
+                     -rect.x + PADDING, -rect.y + PADDING, 
+                     pango_layout);
+
+    pango_font_description_free (font_desc);
+    g_object_unref (pango_layout);
+
+    return pixmap;
+}
+
+static void 
+free_selection (gpointer row, gpointer data)
+{
+    GtkTreePath *path = (GtkTreePath *)row;
+    gtk_tree_path_free (path);
+
+    return;
+}
+
+#define MAX_NUM_MULTIBYTE_CHARACTERS 400
+#define MAX_NUM_CHARACTERS 2000
+
+static gchar *
+fsexam_content_get_sample (char *file)
+{
+    gchar   *p = NULL, *sample = NULL;
+    gsize   length;
+    gint    multi_num = 0, char_num = 0;
+    GError  *err = NULL; 
+
+    if (NULL == file)
+        return NULL;
+
+    if (! g_file_get_contents (file, &p, &length, &err)) {
+        fsexam_statusbar_update (err->message);
+        g_error_free (err);
+
+        return NULL;
+    }
+
+    sample = p;
+
+    while (TRUE) {
+        gunichar wc;
+
+        /* get the next Unicode character */
+        wc = g_utf8_get_char_validated (p, -1);
+        if (wc == 0x0 || multi_num == MAX_NUM_MULTIBYTE_CHARACTERS 
+                || char_num == MAX_NUM_CHARACTERS) {
+            *p = 0x0;
+            break;
+        }
+        
+        if (wc == (gunichar)-1 || wc == (gunichar)-2) { /* invalid UTF8 */
+            ++multi_num;
+            ++p;
+        } else {                                        /* valid UTF8 */
+            if (wc >= 0x7e)
+                ++multi_num;
+
+            p = g_utf8_next_char (p);
+        }
+        ++char_num;
+    }
+
+    return sample;
+}
+
+/* callback for realize signal */
+static void
+peek_window_realize (GtkWidget *peekwin, gpointer user_data)
+{
+    gint width, height;
+
+    set_window_background (peekwin, content_pixmap);
+    gdk_window_clear (peekwin->window);
+
+    gdk_drawable_get_size (GDK_DRAWABLE (content_pixmap),
+                           &width, &height);
+
+    gtk_widget_set_size_request (peekwin, width, height);
+    gtk_window_resize (GTK_WINDOW (peekwin), width, height);
+
+    return;
+}
+
+/*
+ *  Update peek window using new content
+ */
+static void
+update_peek_window (GtkWidget *peekwin, gchar *content)
+{
+    gint width, height;
+
+    if (NULL == peekwin)
+        return;
+
+    if (content_pixmap != NULL)
+        g_object_unref (content_pixmap);
+
+    /* create pixmap from content */
+    content_pixmap = create_content_pixmap (peekwin, content);
+
+    if (GTK_WIDGET_REALIZED (peekwin)) {
+        set_window_background (peekwin, content_pixmap);
+        gdk_window_clear (peekwin->window);
+    }
+
+    gdk_drawable_get_size (GDK_DRAWABLE (content_pixmap),
+                           &width, &height);
+
+    gtk_widget_set_size_request (peekwin, width, height);
+    gtk_window_resize (GTK_WINDOW (peekwin), width, height);
+
+    return;
+}
+
+static void
+place_peek_window (GtkWidget *peekwin, gint x_root, gint y_root)
+{
+    gint width, height;
+    gint x, y;
+
+    if (NULL == peekwin)
+        return;
+
+    gtk_widget_get_size_request (peekwin, &width, &height);
+
+    get_upper_left_xy (peekwin, width, height,
+                       x_root, y_root, &x, &y);
+
+    gtk_window_move (GTK_WINDOW (peekwin), x, y);
+
+    return;
+}
+
+/*
+ * Create a toplevel peek window 
+ */
+static GtkWidget *
+make_peek_window ()
+{
+    GtkWidget *peekwin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+
+    g_signal_connect (peekwin, "realize", 
+                      G_CALLBACK (peek_window_realize), NULL);
+
+    gtk_window_set_type_hint (GTK_WINDOW (peekwin),
+                              GDK_WINDOW_TYPE_HINT_UTILITY);
+    gtk_window_set_decorated (GTK_WINDOW (peekwin), FALSE);
+    gtk_window_set_screen (GTK_WINDOW (peekwin),
+                           gtk_widget_get_screen (view->mainwin));
+    gtk_widget_set_app_paintable (peekwin, TRUE);
+
+    return peekwin;
+}
+
+static gboolean
+fsexam_content_get_selection (gchar **path, gchar **filename)
+{
+    GtkTreeSelection    *selection;
+    GtkTreeIter         iter, subiter;
+    GtkTreeModel        *model;
+    GtkWidget           *treeview;
+    GList               *row;
+    GString             *dir;
+    gchar               *internal_name;
+
+    treeview = view->focus_treeview;
+    selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
+    row = gtk_tree_selection_get_selected_rows (selection, &model);
+
+    if (row == NULL) {
+        fsexam_statusbar_update (_("No selection"));
+
+        return FALSE;
+    }
+
+    if (g_list_length (row) > 1) {
+        g_list_foreach (row, free_selection, NULL);
+        g_list_free (row);
+
+        fsexam_statusbar_update (_("Cannot preview multiple selections"));
+
+        return FALSE;
+    }
+
+    gtk_tree_model_get_iter (model, &iter, row->data);
+
+    g_list_foreach (row, free_selection, NULL);
+    g_list_free (row);
+
+    if (gtk_tree_model_iter_children (model, &subiter, &iter)) {
+        fsexam_statusbar_update (_("Cannot preview contents of folder"));
+
+        return FALSE; 
+    }
+
+    gtk_tree_model_get (model, &iter,
+                        FILENAME_COLUMN, &internal_name,
+                        -1);
+
+    *filename = g_strcompress (internal_name);
+    g_free (internal_name);
+
+    if (**filename == '/') { /* we are on search result treeview */
+        *path = NULL;
+        return TRUE;
+    }
+
+    dir = fsexam_filename_get_path (model, iter);
+
+    *path = g_string_free (dir, FALSE);
+
+    return TRUE;
+}
+
+static void
+peekwin_destroy (GtkWidget *widget, gpointer user_data)
+{
+    gtk_object_destroy (GTK_OBJECT (view->peekwin));
+    view->peekwin = NULL;
+
+    return;
+}
+
+void
+fsexam_content_peek (gint x_root, gint y_root)
+{
+    gchar          *path = NULL, *filename = NULL, *name = NULL;
+    gchar          *sample_text = NULL;
+    gchar          *statusmsg = NULL;
+    gint           y_root2 = y_root;
+    struct stat    statbuf;
+    GtkWidget      *widget = NULL;
+    const gchar    *widget_name;
+
+    widget = gtk_window_get_focus (GTK_WINDOW (view->mainwin));
+    widget_name = gtk_widget_get_name (widget);
+
+    if (strcmp (widget_name, "treeview_search") == 0) {
+        /* convert search result */
+        if (view->basedir == NULL)
+            return;
+
+        view->focus_treeview = widget;
+    }else{
+        /* convert files in left pane */
+        if (NULL == view->rootdir)  
+            return;
+
+        widget = g_object_get_data (G_OBJECT (view->mainwin), 
+                                      "treeview_file");
+        view->focus_treeview = widget;
+
+    }
+
+    if (!fsexam_content_get_selection (&path, &filename))
+       return;
+
+    if (y_root == 0) {
+        gint x, y, height, width;
+
+        gtk_window_get_position (GTK_WINDOW (view->mainwin), &x, &y);
+        gtk_window_get_size (GTK_WINDOW (view->mainwin), &height, &width);
+
+        x_root = x+width/2;
+        y_root = y+height/2;
+    }
+
+    if (path == NULL)
+        name = g_strdup (filename);
+    else
+        name = g_strdup_printf ("%s/%s", path, filename);
+
+    if (lstat (name, &statbuf) == -1) {
+        statusmsg = g_strdup_printf ("%s: %s", _("Can't access"), filename);
+        goto ERR;
+    }
+
+    if (! S_ISREG (statbuf.st_mode)) {
+        statusmsg = g_strdup_printf ("%s: %s", 
+                                     _("Not regular file"), filename);
+        goto ERR;
+    }
+
+    if (statbuf.st_size == 0) {
+        statusmsg = g_strdup_printf ("%s: %s", _("Empty file"), filename);
+        goto ERR;
+    }
+
+    if (!fsexam_is_plain_text (name, view->setting)) { 
+        statusmsg = g_strdup_printf ("%s: %s", _("Not plain text"), filename);
+        goto ERR;
+    }
+
+    if (!view->peekwin)
+        view->peekwin = make_peek_window ();
+
+    place_peek_window (view->peekwin, x_root, y_root);
+
+    if ((sample_text = fsexam_content_get_sample (name)) == NULL) 
+        goto ERR;
+
+    update_peek_window (view->peekwin, sample_text);
+    gtk_widget_show (view->peekwin);
+
+    set_window_background (view->peekwin, content_pixmap);
+    gdk_window_clear (view->peekwin->window);
+
+    if (y_root2 == 0)
+       g_signal_connect (G_OBJECT (view->peekwin), "focus-in-event",
+                         G_CALLBACK (peekwin_destroy), view->peekwin);
+
+    g_free (sample_text);
+
+ERR:
+    if (statusmsg != NULL) {
+        fsexam_statusbar_update (statusmsg);
+        g_free (statusmsg);
+    }
+
+    g_free (name);
+    g_free (filename);
+    g_free (path);
+
+    return;
+}
+
+
+GtkWidget *
+fsexam_gui_get_focused_treeview ()
+{
+    GtkWidget   *widget = NULL;
+    const gchar *name;
+
+    widget = gtk_window_get_focus (GTK_WINDOW (view->mainwin));
+    name = gtk_widget_get_name (widget);
+
+    if (strcmp (name, "treeview_search") != 0) {
+        widget = g_object_get_data (G_OBJECT (view->mainwin), 
+                                    "treeview_file");
+    }
+        
+    return widget;
+}
+
+/* Set the initial toolbar style */
+void
+fsexam_gui_set_initial_state (void) 
+{
+    GtkWidget   *w = NULL;
+    gchar       *toolbar_style = NULL;
+
+    /* set toolbar style */
+    toolbar_style = gconf_client_get_string (view->setting->pref->gconf_client,
+            TOOLBAR_STYLE,
+            NULL);
+
+    if (toolbar_style != NULL) {
+        w = g_object_get_data (G_OBJECT (view->mainwin), "toolbar");
+
+        if (strcmp (toolbar_style, "both") == 0) {
+	    	gtk_toolbar_set_style (GTK_TOOLBAR (w), GTK_TOOLBAR_BOTH);
+	    }else if (strcmp (toolbar_style, "both-horiz") == 0) {
+	    	gtk_toolbar_set_style (GTK_TOOLBAR (w), GTK_TOOLBAR_BOTH_HORIZ);
+	    }else if (strcmp (toolbar_style, "icons") == 0) {
+	    	gtk_toolbar_set_style (GTK_TOOLBAR (w), GTK_TOOLBAR_ICONS);
+	    }else if (strcmp (toolbar_style, "text") == 0) {
+	    	gtk_toolbar_set_style (GTK_TOOLBAR (w), GTK_TOOLBAR_TEXT);
+	    }
+
+        g_free (toolbar_style);
+    }
+
+    /* update name/content conversion mode accordting to command line option */
+    if (view->setting->pref->conv_content) {
+        w = g_object_get_data (G_OBJECT (view->mainwin), "menu_content_mode");
+        gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (w), TRUE);
+    }
+
+    return;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam-ui.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,113 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+
+#ifndef _FSEXAM_UI_H_
+#define _FSEXAM_UI_H_
+
+#define FSEXAM_ROOT_DIR "/"
+
+enum
+{
+    ICON_COLUMN = 0,
+    DISPLAYNAME_COLUMN,
+    FILENAME_COLUMN,
+    LOADED_COLUMN,
+    NUM_COLUMNS
+};
+
+typedef struct _FSEXAM_view FSEXAM_view;
+struct _FSEXAM_view
+{
+    FSEXAM_setting  *setting;
+
+    GHashTable      *pixbuf_hash;
+    GHashTable      *treepath_hash;     /* update GUI after conversion */
+    GSList          *undo_list;
+
+    /* gui pointer */
+    GtkWidget       *mainwin;
+    GtkWidget       *peekwin;
+    GtkWidget       *focus_treeview;    /* The focused one of 2 file treeview */
+    GtkWidget       *popup_menu;
+
+    /* rootdir maybe "", "/tmp/..", "file:///tmp/..." */
+    gchar           *rootdir;           /* rootdir of file Treeview*/
+    gint            lineoffset;         /* for report pane */
+
+    gchar           *basedir;           /* basedir for searching */
+    GPid            pid;                /* for searching pid */
+};
+
+extern FSEXAM_view *view;
+
+FSEXAM_view *fsexam_view_new ();
+void        fsexam_view_destroy (FSEXAM_view *);
+
+void        fsexam_change_dir (const gchar *dir);
+gchar       *fsexam_file_chooser_get_name (const gchar *, 
+                        GtkFileChooserAction, 
+                        gboolean, 
+                        gboolean);
+
+void        fsexam_construct_ui (const gchar *);
+gboolean    fsexam_treeview_construct (const gchar *);
+void        fsexam_statusbar_update (gchar *);
+
+gchar       *fsexam_filename_get_fullname (GtkTreeModel *model, 
+                                           GtkTreeIter *iter);
+
+gboolean    fsexam_gui_show_yesno_dialog (GtkWindow *parent, 
+                                       const gchar *msg_format, ...);
+void        fsexam_gui_show_dialog (GtkWindow *, 
+                                GtkMessageType type, 
+                                const gchar *messages, ...);
+
+void        fsexam_gui_set_initial_state (void);
+void        fsexam_gui_display_msg (const gchar *filename, const gchar *msg);
+void        fsexam_gui_display_stats (FSEXAM_setting *setting);
+int         fsexam_gui_get_index (GList *encoding_list, gboolean forname);
+void        fsexam_gui_update (FSEXAM_setting *setting, 
+                               const gchar *path,
+                               const gchar *oldname, 
+                               const gchar *newname);
+
+GladeXML    *fsexam_gui_load_glade_file (const gchar *filename, 
+                                          const gchar *widget_root, 
+                                          GtkWindow *error_dialog_parent);
+
+GtkWidget   *fsexam_gui_get_focused_treeview ();
+void        fsexam_content_peek (gint x, gint y);
+
+
+/* --- search result pane --- */
+void        fsexam_search_treeview_append_file (const gchar *filename, 
+                                                gboolean first_file);
+void        fsexam_search_treeview_append_list (GList *list);
+void        fsexam_search_treeview_show (void);
+void        fsexam_search_treeview_hide (void);
+
+#endif  //_FSEXAM_UI_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam.c	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,726 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <unistd.h>
+#include <getopt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <locale.h>
+#include <libgen.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <signal.h>
+
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <gconf/gconf-client.h>
+#include <gnome.h>
+#include <glade/glade.h>
+#include <bonobo/bonobo-object.h>
+#include <bonobo-activation/bonobo-activation.h>
+
+#include "fsexam-application-server.h"
+#include "GNOME_Fsexam.h"
+
+#include "file-filter.h"
+#include "fsexam.h"
+#include "fsexam-debug.h"
+#include "encoding.h"
+#include "fsexam-log.h"
+#include "fsexam-dryrun.h"
+#include "fsexam-history.h"
+#include "fsexam-pref.h"
+#include "fsexam-setting.h"
+#include "file-validate.h"
+#include "fsexam-ui.h"
+#include "fsexam-helper.h"
+#include "fsexam-convname.h"
+#include "fsexam-convcontent.h"
+#include "fsexam-specialfile.h"
+#include "fsexam-encoding-dialog.h"
+
+gboolean    cli_mode = FALSE;  /* global var, CLI or GUI */
+gboolean    force_quit = FALSE; 
+gboolean    stop_search = FALSE;
+
+static FSEXAM_setting *setting = NULL;
+static GnomeProgram   *program = NULL;
+static BonoboObject   *fsexam_app_server = NULL;
+
+/* Remember command line options */
+static gboolean        prepend_encoding = FALSE;
+static gboolean        append_encoding = FALSE;
+static gboolean        save_encoding = FALSE;
+static gboolean        restore = FALSE;
+
+static gchar           *special = NULL;
+static gchar           *encoding_list = NULL;
+static gchar           *dryrun_file = NULL;
+static GList           *files = NULL;
+
+static void             signal_handler (int);
+static void             show_usage (void);
+static void             show_version (void);
+static void             decode_options (gint argc, gchar **argv, 
+                                        FSEXAM_pref *pref);
+static gint             CLI_processing (gint argc, gchar **argv);
+static gint             GUI_processing (gint argc, gchar **argv);
+static gint             all_in_one (gint argc, gchar **argv);
+static gboolean         create_config_dir (const gchar *dir);
+static GList *          read_files_from_stdin (GList *files);
+static FSEXAM_setting * fsexam_init (gint argc, gchar **argv, gboolean cli_mode);
+
+
+#define OPT_STRING "+abd:E:e:Ff:g:HklL:npPRrSstwV?"
+static struct option long_options[] =
+{
+    {"auto-detect",             no_argument,    NULL,   'a'},
+    {"batch",                   no_argument,    NULL,   'b'},
+    {"force-convert",           no_argument,    NULL,   'F'},
+    {"hidden",                  no_argument,    NULL,   'H'},
+    {"no-check-symlink-content",no_argument,    NULL,   'k'},
+    {"list-encoding",           no_argument,    NULL,   'l'},
+    {"dry-run",                 no_argument,    NULL,   'n'},
+    {"append-encoding-list",    no_argument,    NULL,   'p'},
+    {"prepend-encoding-list",   no_argument,    NULL,   'P'},
+    {"recursive",               no_argument,    NULL,   'R'},
+    {"remove",                  no_argument,    NULL,   'r'},
+    {"save-encoding-list",      no_argument,    NULL,   'S'},
+    {"restore",                 no_argument,    NULL,   's'},
+    {"conv-content",            no_argument,    NULL,   't'},
+    {"follow",                  no_argument,    NULL,   'w'},
+    {"version",                 no_argument,    NULL,   'V'},
+    {"help",                    no_argument,    NULL,   '?'},
+    {NULL,                      0,              NULL,   0},
+};
+
+
+gint
+main(gint argc, gchar **argv)
+{
+    gint  ret = FEEXIT_SUCCESS;
+    
+    setlocale (LC_ALL, "");
+
+    bindtextdomain (GETTEXT_PACKAGE, FSEXAM_LOCALEDIR);
+    bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+    textdomain (GETTEXT_PACKAGE);
+
+    if (strcmp (basename (argv[0]), FSEXAM_CLI_NAME) == 0)
+        cli_mode = TRUE;
+
+    ret = all_in_one (argc, argv);
+    
+    return ret;
+}
+
+static void
+signal_handler (int sig)
+{
+    switch (sig) {
+        case SIGQUIT:
+        case SIGINT:
+            break;
+
+        case SIGALRM:
+            g_print (_("Another fsexam is running, will quit soon\n"));
+            break;
+    }
+
+    fsexam_cleanup_all ();
+
+    exit (EXIT_SUCCESS);
+}
+
+void 
+fsexam_cleanup_all ()
+{
+    if (cli_mode) {
+        fsexam_setting_destroy (setting);
+        fsexam_list_free (files);
+    }else if (view != NULL) {
+        if (view->pid > 0) {    /* kill subprocess if running */
+            kill (view->pid, SIGKILL);
+            wait (NULL);
+        }
+
+        fsexam_pref_save_to_gconf (view->setting->pref, 
+                                   view->setting->pref->gconf_client, 
+                                   FALSE);
+
+        fsexam_view_destroy (view);
+        view = NULL;
+    }
+
+    if (G_IS_OBJECT (fsexam_app_server))
+	    bonobo_object_unref (fsexam_app_server);
+
+    return;
+}
+
+static void
+handle_multiple_instance ()
+{
+    CORBA_Environment env;
+    GNOME_Fsexam_Application server;
+
+    alarm (5);
+
+    CORBA_exception_init (&env);
+
+    server = bonobo_activation_activate_from_id (
+            "OAFIID:GNOME_Fsexam_Application",
+            0,
+            NULL,
+            &env);
+
+    if (server == NULL) {
+        gdk_notify_startup_complete ();
+        return;
+    }
+
+    GNOME_Fsexam_Application_grabFocus (server, &env);
+    g_print (_("Another fsexam is running, will quit soon\n"));
+
+    bonobo_object_release_unref (server, &env);
+    CORBA_exception_free (&env);
+
+    gdk_notify_startup_complete ();
+
+    return;
+}
+
+static void
+decode_options (gint argc, gchar **argv, FSEXAM_pref *pref)
+{
+    gint     	optchar;
+    const gchar	*find_expr = NULL;
+
+    while ((optchar = getopt_long (
+                    argc, argv, OPT_STRING, long_options, NULL)) != -1){
+        switch (optchar){
+            case 'a':
+                    pref->auto_detect = TRUE;
+                    break;
+
+            case 'b':
+                    pref->auto_conversion = TRUE;
+                    break;
+
+            case 'd':
+                    dryrun_file = optarg;
+                    break;
+
+            case 'E':
+                    special = optarg;
+                    break;
+                    
+            case 'e':
+                    encoding_list = optarg;
+                    break;
+
+            case 'F':
+                    pref->force = TRUE;
+                    break;
+
+            case 'f':
+                    find_expr = optarg;
+                    break;
+
+            case 'g':
+                    pref->hist_len = atoi (optarg);
+
+            case 'H':
+                    pref->hidden = TRUE;
+                    break;
+
+            case 'k':
+                    pref->no_check_symlink_content = TRUE;
+                    break;
+
+            case 'l':
+                    show_avail_encoding ();    /* show supported encoding */
+                    exit (FEEXIT_SUCCESS);
+
+            case 'L':
+                    pref->use_log = TRUE;
+                    pref->log_file = g_strdup (optarg);
+                    break;
+
+            case 'n':
+                    pref->dry_run = TRUE;
+                    break;
+
+            case 'P':
+                    append_encoding = TRUE;
+                    break;
+
+            case 'p':
+                    prepend_encoding = TRUE;
+                    break;
+                    
+            case 'R':
+                    pref->recursive = TRUE;
+                    break;
+
+            case 'r':
+                    pref->remote = TRUE;
+                    break;
+
+            case 'S':
+                    save_encoding = TRUE;
+                    break;
+
+            case 's':
+                    restore = TRUE;
+                    break;
+
+            case 't':
+                    pref->conv_content = TRUE;
+                    break;
+
+            case 'w':
+                    pref->follow = TRUE;
+                    break;
+
+            case 'V':
+                    show_version ();   /* show version info and exit */
+                    exit (FEEXIT_SUCCESS);
+
+            case '?':
+                    show_usage ();
+                    exit (FEEXIT_SUCCESS);
+
+            default:
+                    fprintf (stderr, 
+                         _("Run 'fsexam --help' for usage information.\n"));
+                    exit (FEEXIT_FAILURE);
+        }
+    }
+
+    if (pref->hist_len < 30) {
+        g_print (_("Warning: The given history length is too short, will reset to default value %d\n"), HISTORY_LENGTH);
+        pref->hist_len = HISTORY_LENGTH;
+    }
+
+    /* file list */
+    if (find_expr != NULL) {        /* find(1) will suppress other operands */
+        files = filter_cmd_run (find_expr);
+    }else if (cli_mode) {           /* CLI operands */
+        if  (optind < argc){
+            for (; optind < argc; optind ++){
+                if ((*argv[optind] == '-') && (*(argv[optind] + 1) == '\0')){
+                    files = read_files_from_stdin (files);
+                    break;
+                }
+
+                files = g_list_prepend (files, g_strdup (argv[optind]));
+            }
+        }else{
+            if ((dryrun_file == NULL) || 
+                    ((dryrun_file != NULL) && pref->dry_run)) {
+                files = read_files_from_stdin (files);
+            }
+        }
+    }else {                         /* GUI operands */
+        if (optind < argc){
+            for (; optind < argc; optind ++){
+                files = g_list_append (files, g_strdup (argv[optind]));
+                //files = g_list_prepend (files, g_strdup (argv[optind]));
+            }
+        }
+    }
+
+    return;
+}
+
+/* Read file list from stdin */
+static GList *
+read_files_from_stdin (GList *files)
+{
+    gchar *p = NULL;
+    gchar path[PATH_MAX];
+
+    fprintf (stdout, _("Please enter the file name:\n"));
+
+    while ((fgets (path, PATH_MAX, stdin)) != NULL){
+        p = g_strstrip (path);
+
+        if ('\0' != *p){
+            files = g_list_prepend (files, g_strdup (p));
+        }
+    }
+
+    return files;
+}
+
+static gint 
+CLI_processing (gint argc, gchar **argv)
+{
+    gint            ret = FEEXIT_SUCCESS;
+    CORBA_Object factory;
+
+    program = gnome_program_init ("fsexam", VERSION,
+                        LIBGNOMEUI_MODULE, argc, argv,
+                        GNOME_PARAM_HUMAN_READABLE_NAME,
+                        _("File Encoding Examiner"),
+                        GNOME_PROGRAM_STANDARD_PROPERTIES,
+                        GNOME_PARAM_APP_DATADIR, DATADIR,
+                        NULL);
+
+    if (! bonobo_activation_is_initialized ()) {
+        bonobo_activation_init (argc, argv);
+    }
+
+    factory = bonobo_activation_activate_from_id (
+            "OAFIID:GNOME_Fsexam_Factory",
+            Bonobo_ACTIVATION_FLAG_EXISTING_ONLY,
+            NULL, NULL);
+
+    if (factory != NULL) {
+        handle_multiple_instance ();
+        return EXIT_SUCCESS;
+    }
+   
+    fsexam_app_server = fsexam_application_server_new (NULL);
+   
+    if (!setting->pref->dry_run && (dryrun_file != NULL)){
+        /* Scenario based conversion */
+        setting->dryrun_info = fsexam_dryrun_file_new (dryrun_file, TRUE);
+        ret = fsexam_convert_scenario (setting);
+    }else if (restore){
+        /* Restore file name or file content */
+        if (setting->pref->conv_content) {
+            ret = fsexam_restore (setting, files, RestoreConvContent);
+        }else{
+            ret = fsexam_restore (setting, files, RestoreConvName);     
+        }
+    }else{
+        /* Convert file name or file content */
+        if ((NULL == setting->pref->encode_list) && 
+                !(setting->pref->auto_detect)) {
+            g_print (_("Error: No given encoding and disabled"
+                        " auto detection.\n"));
+            ret = FEEXIT_FAILURE;
+            goto free;
+        }
+
+        if (NULL != dryrun_file) {
+            setting->dryrun_info = fsexam_dryrun_file_new (dryrun_file, FALSE);
+            
+            if (setting->dryrun_info == NULL) {
+                fprintf (stderr, _("Can't open dryrun file %s\n"), 
+                         dryrun_file);
+                ret = FEEXIT_FAILURE;
+                goto free;
+            }
+
+            fsexam_dryrun_write_convtype (setting->dryrun_info,
+                        setting->pref->conv_content ? ConvContent : ConvName);
+        }
+
+        if (setting->pref->conv_content) {
+            ret = fsexam_convert_content_batch (setting, files);
+        }else{
+            ret = fsexam_convert_filename_batch (setting, files);
+        }
+    }   
+        
+free:
+    fsexam_cleanup_all ();
+
+    return ret;
+}
+
+static gint
+GUI_processing (gint argc, gchar **argv)
+{
+    GnomeClient     *client = NULL;
+    CORBA_Object    factory;
+
+    program = gnome_program_init ("fsexam", VERSION,
+                        LIBGNOMEUI_MODULE, argc, argv,
+                        GNOME_PARAM_HUMAN_READABLE_NAME,
+                        _("File Encoding Examiner"),
+                        GNOME_PROGRAM_STANDARD_PROPERTIES,
+                        GNOME_PARAM_APP_DATADIR, DATADIR,
+                        NULL);
+    
+    client = gnome_master_client ();
+    g_signal_connect (G_OBJECT (client), "die",
+                      G_CALLBACK (exit),
+                      NULL);
+   
+    if (! bonobo_activation_is_initialized ()) {
+        bonobo_activation_init (argc, argv);
+    }
+
+    factory = bonobo_activation_activate_from_id (
+            "OAFIID:GNOME_Fsexam_Factory",
+            Bonobo_ACTIVATION_FLAG_EXISTING_ONLY,
+            NULL, NULL);
+
+    if (factory != NULL) {
+        handle_multiple_instance ();
+        return EXIT_SUCCESS;
+    }
+
+    fsexam_app_server = fsexam_application_server_new (
+            gdk_screen_get_default ());
+ 
+    view =  fsexam_view_new ();
+    view->setting = setting;
+
+    /* set the initial state of gui */
+    fsexam_gui_set_initial_state ();
+
+    /* set dryrun buffer */
+    fsexam_dryrun_buffer_set_buffer (
+            FSEXAM_DRYRUN_BUFFER (setting->dryrun_info),
+            gtk_text_view_get_buffer (GTK_TEXT_VIEW (
+                    g_object_get_data (G_OBJECT (view->mainwin), 
+                        "textview_dryrun"))));
+
+    
+    if (files == NULL) {
+        fsexam_construct_ui (".");
+    }else if (g_list_length (files) == 1) {
+        fsexam_construct_ui (files->data);
+    }else{
+        fsexam_construct_ui (".");
+        fsexam_search_treeview_append_list (files);
+    }
+
+    fsexam_list_free (files);
+
+    gtk_main ();
+
+    return FEEXIT_SUCCESS;
+}
+
+/*
+ * Create "$HOME/.fsexam"
+ */
+static gboolean
+create_config_dir (const gchar *dir)
+{
+    struct stat statbuf;
+
+    if (NULL == dir) {
+        g_print (_("The configuration directory is NULL\n"));
+        return FALSE;
+    }
+
+    if (stat (dir, &statbuf) == -1) {
+        gint status = mkdir (dir, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+        if (status == -1) {
+            g_print (_("Can't create configuration directory %s for fsexam\n"), dir);
+            return FALSE;
+        }else{
+            return TRUE;
+        }
+    }
+        
+    if (S_ISDIR (statbuf.st_mode)) {
+        return TRUE;
+    }
+        
+    g_print (_("file %s exist and is not one directory, please rename it.\n"), dir);
+
+    return FALSE;
+}
+
+static FSEXAM_setting *
+fsexam_init (gint argc, gchar **argv, gboolean cli_mode)
+{
+    FSEXAM_setting *setting = NULL;
+    gchar          *fsexam_repo = NULL;
+    gchar          *hist_file = NULL;
+    
+    fsexam_repo = g_build_filename (g_get_home_dir (), FSEXAM_HIDDEN, NULL);
+
+    if (! create_config_dir (fsexam_repo)) {
+        g_free (fsexam_repo);
+        return NULL;
+    }
+
+    hist_file = g_build_filename (fsexam_repo, HISTORY_FILE, NULL);
+
+    /* Init FSEXAM_setting */
+    setting = fsexam_setting_init (cli_mode);
+
+    decode_options (argc, argv, setting->pref); 
+
+    fsexam_pref_set_encoding_list(setting->pref,
+                                  encoding_list,
+                                  append_encoding,
+                                  prepend_encoding,
+                                  save_encoding);
+        
+    /* Special file handling */
+    if ((special != NULL) 
+            && ((strcmp (special, "COMPRESS") == 0) 
+                || strcmp (special, "ALL") == 0)) {
+        setting->pref->special = SPECIAL_COMPRESS;
+    }
+
+    /* log */
+    if (setting->pref->use_log) {
+        if (setting->log_info != NULL) {
+            fsexam_log_close (setting->log_info);
+        }
+
+        setting->log_info = fsexam_log_open (setting->pref->log_file);
+        /* 
+         * Need use abs path for log_file, otherwise will lost path informaiton 
+         * after saved into gconf database
+         */
+        if (*setting->pref->log_file != '/') {
+            char *tmp = get_abs_path (setting->pref->log_file);
+            g_free (setting->pref->log_file);
+            setting->pref->log_file = tmp;
+        }
+    }
+
+    /* initiate remote path list */
+    setting->remote_path = get_remote_paths ();
+    setting->hist_info = fsexam_history_open (hist_file, 
+            setting->pref->hist_len);
+    
+    /* Init function pointer */
+    if (cli_mode) {
+        setting->get_index = get_index_default;
+        setting->update_gui = NULL;
+        setting->display_msg = display_msg_default;
+        setting->display_stats = fsexam_setting_display_stats;
+    }else{
+        setting->get_index = fsexam_gui_get_index;
+        setting->update_gui = fsexam_gui_update;
+        setting->display_msg = fsexam_gui_display_msg;
+        setting->display_stats = fsexam_gui_display_stats;
+    }
+
+    if (fsexam_debug () & FSEXAM_DBG_OPTION){
+        fsexam_setting_print (setting);
+        g_list_foreach (files, list_print, "\t");
+    }
+    if (fsexam_debug () & FSEXAM_DBG_ENCODING) {
+        g_list_foreach (setting->pref->encode_list, print_encoding, NULL);
+    }
+
+    g_free (hist_file);
+    g_free (fsexam_repo);
+
+    return setting;
+}
+
+static gint
+all_in_one (gint argc, gchar *argv[])
+{
+    gint           ret;
+    
+    if ((signal (SIGINT, signal_handler) == SIG_ERR)
+            || (signal (SIGQUIT, signal_handler) == SIG_ERR)
+            || (signal (SIGALRM, signal_handler) == SIG_ERR)) {
+        perror ("Can't set signal handler.");
+        return EXIT_FAILURE;
+    }
+
+    g_type_init ();
+    setting = fsexam_init (argc, argv, cli_mode);
+    if (NULL == setting) {
+        return EXIT_FAILURE;
+    }
+
+    if (cli_mode)
+        ret = CLI_processing (argc, argv);
+    else
+        ret = GUI_processing (argc, argv);
+
+    return ret;
+}
+
+static void
+show_usage ()
+{
+    printf (_("Usage:\n"));
+    printf (_("    fsexam [OPTION] ... [file]\n"));
+
+    printf (_("\nSupported options:\n"));
+
+    printf (_("    -a, --auto-detect      Enable encoding auto detection\n"));
+    if (cli_mode)
+        printf (_("    -d dry-run-result      Specify the dryrun result file\n"));
+    printf (_("    -E module-name         Enable special file handling\n"));
+    printf (_("    -e encoding-list       Specify additional encoding list\n"));
+    printf (_("    -F, --force-convert    Forceful conversion mode\n"));
+    printf (_("    -f 'expression'        Specify file filter criteria\n"));
+    printf (_("    -H, --hidden           Turn on hidden file handling\n"));
+    printf (_("    -b, --auto-conversion  Interactive mode\n"));
+    printf (_("    -l, list-encoding      List all supported encoding\n"));
+    printf (_("    -k, --no-check-symlink-content\n"));
+    printf (_("                           Don't check the consistency between\n"
+              "                           symbolic link and its target name\n"));
+    printf (_("    -L logfile             Specify log file\n"));
+    if (cli_mode)
+        printf (_("    -n, --dry-run          Dryrun mode\n"));
+    printf (_("    -P, --append-encoding-list\n"));
+    printf (_("                           Append encoding list specified by\n"
+              "                           '-e' to predefined encoding list\n"));
+    printf (_("    -p, --prepend-encoding-list\n"));
+    printf (_("                           Prepend encoding list specified by\n"
+              "                           '-e' to predefined encoding list\n"));
+    printf (_("    -R, --recursive        Recursive mode\n"));
+    printf (_("    -r, --remote           Turn on nfs files handling\n"));
+    printf (_("    -S, --save-encoding-list\n"));
+    printf (_("                           Save encoding list specified by\n"
+              "                           '-e' permanently\n"));
+    printf (_("    -s, --restore          Restore the original name or\n"
+              "                           content for given files\n"));
+    printf (_("    -t, --conv-content     Convert file content rather than\n"
+              "                           file name\n"));
+    printf (_("    -w, --follow           Follow symbolic link\n"));
+    printf (_("    -V, --version          Print the version information\n"));
+    printf (_("    -?, --help             Print this usage information for fsexam\n"));
+
+    return;
+}
+
+static void
+show_version ()
+{
+    printf ("%s %s\n", 
+            cli_mode ? FSEXAM_CLI_NAME : FSEXAM_GUI_NAME, 
+            VERSION);
+
+    return;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam.glade2	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,1907 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--*- mode: xml -*-->
+
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").  
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+
+Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+Use is subject to license terms. 
+
+-->
+
+<glade-interface>
+  <requires lib="bonobo"/>
+  <requires lib="gnome"/>
+  <widget class="GnomeApp" id="app_window">
+    <property name="width_request">800</property>
+    <property name="height_request">600</property>
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">File Encoding Examiner</property>
+    <property name="enable_layout_config">True</property>
+    <child internal-child="dock">
+      <widget class="BonoboDock" id="bonobodock1">
+        <property name="visible">True</property>
+        <child>
+          <widget class="BonoboDockItem" id="bonobodockitem4">
+            <property name="visible">True</property>
+            <child>
+              <widget class="GtkToolbar" id="toolbar_main">
+                <property name="visible">True</property>
+                <property name="border_width">4</property>
+                <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
+                <child>
+                  <widget class="GtkToolButton" id="toolbutton4">
+                    <property name="visible">True</property>
+                    <property name="tooltip" translatable="yes">Open file</property>
+                    <property name="is_important">True</property>
+                    <property name="stock_id">gtk-open</property>
+                    <signal name="clicked" handler="fsexam_choose_dir"/>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkSeparatorToolItem" id="separatortoolitem1">
+                    <property name="visible">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkToolButton" id="toolbutton_convert">
+                    <property name="visible">True</property>
+                    <property name="tooltip" translatable="yes">Convert selected files' name or content according to the current mode</property>
+                    <property name="is_important">True</property>
+                    <property name="label" translatable="yes">Convert</property>
+                    <property name="use_underline">True</property>
+                    <property name="stock_id">gtk-execute</property>
+                    <signal name="clicked" handler="cb_convert"/>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkToolButton" id="toolbutton_force">
+                    <property name="visible">True</property>
+                    <property name="tooltip" translatable="yes">Convert without detecting whether encoding is UTF-8 or not</property>
+                    <property name="is_important">True</property>
+                    <property name="label" translatable="yes">Forcibly Convert</property>
+                    <property name="use_underline">True</property>
+                    <property name="stock_id">gtk-jump-to</property>
+                    <signal name="clicked" handler="cb_force_convert"/>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkToolButton" id="toolbutton_dryrun">
+                    <property name="visible">True</property>
+                    <property name="tooltip" translatable="yes">Dryrun without changing any file name or content in the disk</property>
+                    <property name="is_important">True</property>
+                    <property name="label" translatable="yes">Dryrun</property>
+                    <property name="use_underline">True</property>
+                    <property name="stock_id">gtk-justify-fill</property>
+                    <signal name="clicked" handler="cb_dryrun"/>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkToolButton" id="toolbutton_scenario">
+                    <property name="visible">True</property>
+                    <property name="sensitive">False</property>
+                    <property name="tooltip" translatable="yes">Convert file name or content based on previous dryrun result</property>
+                    <property name="is_important">True</property>
+                    <property name="label" translatable="yes">Scenario</property>
+                    <property name="use_underline">True</property>
+                    <property name="stock_id">gtk-convert</property>
+                    <signal name="clicked" handler="cb_scenario"/>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkSeparatorToolItem" id="separatortoolitem2">
+                    <property name="visible">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkToolButton" id="toolbutton_undo">
+                    <property name="visible">True</property>
+                    <property name="sensitive">False</property>
+                    <property name="tooltip" translatable="yes">Undo the last action</property>
+                    <property name="is_important">True</property>
+                    <property name="stock_id">gtk-undo</property>
+                    <signal name="clicked" handler="cb_undo"/>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkToolButton" id="toolbutton_restore">
+                    <property name="visible">True</property>
+                    <property name="tooltip" translatable="yes">Restore selected files' name or content</property>
+                    <property name="is_important">True</property>
+                    <property name="label" translatable="yes">Restore</property>
+                    <property name="use_underline">True</property>
+                    <property name="stock_id">gtk-revert-to-saved</property>
+                    <signal name="clicked" handler="cb_restore"/>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">False</property>
+                  </packing>
+                </child>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="band">1</property>
+            <property name="behavior">BONOBO_DOCK_ITEM_BEH_EXCLUSIVE | BONOBO_DOCK_ITEM_BEH_NEVER_FLOATING | BONOBO_DOCK_ITEM_BEH_LOCKED</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="BonoboDockItem" id="bonobodockitem1">
+            <property name="visible">True</property>
+            <child>
+              <widget class="GtkMenuBar" id="menubar1">
+                <property name="visible">True</property>
+                <child>
+                  <widget class="GtkMenuItem" id="Folder">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_File</property>
+                    <property name="use_underline">True</property>
+                    <child>
+                      <widget class="GtkMenu" id="Folder_menu">
+                        <child>
+                          <widget class="GtkImageMenuItem" id="open1">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">gtk-open</property>
+                            <property name="use_underline">True</property>
+                            <property name="use_stock">True</property>
+                            <signal name="activate" handler="fsexam_choose_dir"/>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="menu_search">
+                            <property name="visible">True</property>
+                            <property name="tooltip" translatable="yes">Search for files according to user given criteria</property>
+                            <property name="label" translatable="yes">Search for _Files...</property>
+                            <property name="use_underline">True</property>
+                            <signal name="activate" handler="cb_filter"/>
+                            <accelerator key="F" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                            <child internal-child="image">
+                              <widget class="GtkImage" id="image843">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-find</property>
+                                <property name="icon_size">1</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="menu_stop_search">
+                            <property name="tooltip" translatable="yes">Stop searching files</property>
+                            <property name="label" translatable="yes">Stop _Searching</property>
+                            <property name="use_underline">True</property>
+                            <signal name="activate" handler="cb_stop_search"/>
+                            <child internal-child="image">
+                              <widget class="GtkImage" id="image844">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-stop</property>
+                                <property name="icon_size">1</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkSeparatorMenuItem" id="separator1">
+                            <property name="visible">True</property>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="menu_quit">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">gtk-quit</property>
+                            <property name="use_underline">True</property>
+                            <property name="use_stock">True</property>
+                          </widget>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="GtkMenuItem" id="edit_menu">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Edit</property>
+                    <property name="use_underline">True</property>
+                    <child>
+                      <widget class="GtkMenu" id="edit_menu_menu">
+                        <child>
+                          <widget class="GtkImageMenuItem" id="convert_menu">
+                            <property name="visible">True</property>
+                            <property name="tooltip" translatable="yes">Convert selected files' name or content according to the current mode</property>
+                            <property name="label" translatable="yes">_Convert</property>
+                            <property name="use_underline">True</property>
+                            <signal name="activate" handler="cb_convert"/>
+                            <accelerator key="N" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                            <child internal-child="image">
+                              <widget class="GtkImage" id="image845">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-execute</property>
+                                <property name="icon_size">1</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="force_convert_menu">
+                            <property name="visible">True</property>
+                            <property name="tooltip" translatable="yes">Convert without detecting whether encoding is UTF-8 or not</property>
+                            <property name="label" translatable="yes">_Forcibly Convert</property>
+                            <property name="use_underline">True</property>
+                            <signal name="activate" handler="cb_force_convert"/>
+                            <accelerator key="E" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                            <child internal-child="image">
+                              <widget class="GtkImage" id="image846">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-jump-to</property>
+                                <property name="icon_size">1</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="dryrun_menu">
+                            <property name="visible">True</property>
+                            <property name="tooltip" translatable="yes">Dryrun without changing files on disk</property>
+                            <property name="label" translatable="yes">_Dryrun</property>
+                            <property name="use_underline">True</property>
+                            <signal name="activate" handler="cb_dryrun"/>
+                            <accelerator key="D" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                            <child internal-child="image">
+                              <widget class="GtkImage" id="image847">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-justify-fill</property>
+                                <property name="icon_size">1</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="menu_scenario">
+                            <property name="visible">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="tooltip" translatable="yes">Convert file name or content based on previous dryrun result</property>
+                            <property name="label" translatable="yes">_Scenario</property>
+                            <property name="use_underline">True</property>
+                            <signal name="activate" handler="cb_scenario"/>
+                            <accelerator key="S" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                            <child internal-child="image">
+                              <widget class="GtkImage" id="image848">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-convert</property>
+                                <property name="icon_size">1</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkSeparatorMenuItem" id="separator12">
+                            <property name="visible">True</property>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="undo_menu">
+                            <property name="visible">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="label" translatable="yes">gtk-undo</property>
+                            <property name="use_underline">True</property>
+                            <property name="use_stock">True</property>
+                            <signal name="activate" handler="cb_undo"/>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="restore_menu">
+                            <property name="visible">True</property>
+                            <property name="tooltip" translatable="yes">Restore given files' name or content according to conversion mode</property>
+                            <property name="label" translatable="yes">_Restore</property>
+                            <property name="use_underline">True</property>
+                            <signal name="activate" handler="cb_restore"/>
+                            <accelerator key="R" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                            <child internal-child="image">
+                              <widget class="GtkImage" id="image849">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-revert-to-saved</property>
+                                <property name="icon_size">1</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkSeparatorMenuItem" id="separator11">
+                            <property name="visible">True</property>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="menu_clear_search">
+                            <property name="visible">True</property>
+                            <property name="sensitive">False</property>
+                            <property name="tooltip" translatable="yes">Clear the search result</property>
+                            <property name="label" translatable="yes">Clear Searc_h Result</property>
+                            <property name="use_underline">True</property>
+                            <signal name="activate" handler="cb_menu_clear_search"/>
+                            <accelerator key="H" modifiers="GDK_CONTROL_MASK" signal="activate"/>
+                            <child internal-child="image">
+                              <widget class="GtkImage" id="image850">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-clear</property>
+                                <property name="icon_size">1</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkSeparatorMenuItem" id="separator8">
+                            <property name="visible">True</property>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkRadioMenuItem" id="name_mode_menu">
+                            <property name="visible">True</property>
+                            <property name="tooltip" translatable="yes">File name conversion mode</property>
+                            <property name="label" translatable="yes">_Name Conversion Mode</property>
+                            <property name="use_underline">True</property>
+                            <property name="active">True</property>
+                            <signal name="toggled" handler="cb_mode"/>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkRadioMenuItem" id="content_mode_menu">
+                            <property name="visible">True</property>
+                            <property name="tooltip" translatable="yes">File content conversion mode</property>
+                            <property name="label" translatable="yes">Content Conversion _Mode</property>
+                            <property name="use_underline">True</property>
+                            <property name="group">name_mode_menu</property>
+                            <signal name="toggled" handler="cb_mode"/>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkSeparatorMenuItem" id="separator19">
+                            <property name="visible">True</property>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="preferences1">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">gtk-preferences</property>
+                            <property name="use_underline">True</property>
+                            <property name="use_stock">True</property>
+                            <signal name="activate" handler="cb_create_pref_dialog"/>
+                          </widget>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="GtkMenuItem" id="view1">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_View</property>
+                    <property name="use_underline">True</property>
+                    <child>
+                      <widget class="GtkMenu" id="view1_menu">
+                        <child>
+                          <widget class="GtkRadioMenuItem" id="report_pane_menu">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_Report Pane</property>
+                            <property name="use_underline">True</property>
+                            <property name="active">True</property>
+                            <signal name="toggled" handler="cb_show_report_pane"/>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkRadioMenuItem" id="dryrun_result_menu">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_Dryrun Result Pane</property>
+                            <property name="use_underline">True</property>
+                            <property name="group">report_pane_menu</property>
+                            <signal name="toggled" handler="cb_show_dryrun_result"/>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkSeparatorMenuItem" id="separator13">
+                            <property name="visible">True</property>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkCheckMenuItem" id="menu_search_result">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">Search Result</property>
+                            <property name="use_underline">True</property>
+                            <signal name="activate" handler="cb_menu_search_result"/>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkSeparatorMenuItem" id="separator18">
+                            <property name="visible">True</property>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="preview_content3">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_Preview Content</property>
+                            <property name="use_underline">True</property>
+                            <signal name="activate" handler="cb_preview_content"/>
+                            <child internal-child="image">
+                              <widget class="GtkImage" id="image851">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-print-preview</property>
+                                <property name="icon_size">1</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="GtkMenuItem" id="help1">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">_Help</property>
+                    <property name="use_underline">True</property>
+                    <child>
+                      <widget class="GtkMenu" id="help1_menu">
+                        <child>
+                          <widget class="GtkImageMenuItem" id="content1">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">_Content</property>
+                            <property name="use_underline">True</property>
+                            <signal name="activate" handler="show_help"/>
+                            <child internal-child="image">
+                              <widget class="GtkImage" id="image852">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-dialog-question</property>
+                                <property name="icon_size">1</property>
+                              </widget>
+                            </child>
+                          </widget>
+                        </child>
+                        <child>
+                          <widget class="GtkImageMenuItem" id="about1">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">gtk-about</property>
+                            <property name="use_underline">True</property>
+                            <property name="use_stock">True</property>
+                            <signal name="activate" handler="fsexam_about"/>
+                          </widget>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+            </child>
+          </widget>
+          <packing>
+            <property name="behavior">BONOBO_DOCK_ITEM_BEH_EXCLUSIVE | BONOBO_DOCK_ITEM_BEH_NEVER_FLOATING | BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL | BONOBO_DOCK_ITEM_BEH_LOCKED</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkVBox" id="vbox88">
+            <property name="visible">True</property>
+            <property name="border_width">2</property>
+            <property name="spacing">5</property>
+            <child>
+              <widget class="GtkHBox" id="hbox29">
+                <property name="visible">True</property>
+                <property name="spacing">3</property>
+                <child>
+                  <widget class="GtkLabel" id="label15">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">&lt;b&gt;_Location:&lt;/b&gt;</property>
+                    <property name="use_markup">True</property>
+                    <property name="use_underline">True</property>
+                    <property name="mnemonic_widget">entry_folder</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="padding">5</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkEntry" id="entry_folder">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <signal name="activate" handler="cb_change_folder"/>
+                  </widget>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkVPaned" id="vpaned_main">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="position">350</property>
+                <child>
+                  <widget class="GtkHPaned" id="hpaned_main">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="position">200</property>
+                    <child>
+                      <widget class="GtkScrolledWindow" id="scrollwin_files">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="shadow_type">GTK_SHADOW_IN</property>
+                        <child>
+                          <widget class="GtkTreeView" id="treeview_file">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK</property>
+                            <property name="border_width">5</property>
+                            <property name="headers_visible">False</property>
+                            <property name="rules_hint">True</property>
+                            <signal name="row_expanded" handler="fsexam_treeview_expand"/>
+                            <signal name="cursor_changed" handler="fsexam_statusbar_fresh"/>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="resize">True</property>
+                        <property name="shrink">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkNotebook" id="notebook_report">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="scrollable">True</property>
+                        <property name="enable_popup">True</property>
+                        <signal name="switch_page" handler="cb_change_current_page" after="yes"/>
+                        <child>
+                          <widget class="GtkScrolledWindow" id="scrollwin_report">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                            <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                            <property name="shadow_type">GTK_SHADOW_IN</property>
+                            <child>
+                              <widget class="GtkTextView" id="textview_report">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="editable">False</property>
+                              </widget>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="tab_expand">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkLabel" id="label16">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;b&gt;_Report Pane&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                            <property name="use_underline">True</property>
+                          </widget>
+                          <packing>
+                            <property name="type">tab</property>
+                            <property name="tab_expand">False</property>
+                            <property name="tab_fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkScrolledWindow" id="scrollwin_dryrun">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                            <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                            <property name="shadow_type">GTK_SHADOW_OUT</property>
+                            <child>
+                              <widget class="GtkTextView" id="textview_dryrun">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                              </widget>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="position">1</property>
+                            <property name="tab_expand">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkLabel" id="label17">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;b&gt;_Dryrun Result&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                            <property name="use_underline">True</property>
+                          </widget>
+                          <packing>
+                            <property name="type">tab</property>
+                            <property name="position">1</property>
+                            <property name="tab_expand">False</property>
+                            <property name="tab_fill">False</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="resize">True</property>
+                        <property name="shrink">True</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="resize">True</property>
+                    <property name="shrink">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkVBox" id="vbox_search_ui">
+                    <child>
+                      <widget class="GtkHBox" id="hbox_search_title">
+                        <property name="visible">True</property>
+                        <child>
+                          <widget class="GtkLabel" id="label24">
+                            <property name="visible">True</property>
+                            <property name="label" translatable="yes">&lt;b&gt;Search Result&lt;/b&gt;</property>
+                            <property name="use_markup">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkLabel" id="label_result">
+                            <property name="visible">True</property>
+                            <property name="xalign">1</property>
+                            <property name="xpad">5</property>
+                          </widget>
+                          <packing>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkButton" id="button_close">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="tooltip" translatable="yes">Hide search result</property>
+                            <property name="relief">GTK_RELIEF_NONE</property>
+                            <property name="response_id">0</property>
+                            <signal name="clicked" handler="cb_hide_search_result"/>
+                            <child>
+                              <widget class="GtkImage" id="image788">
+                                <property name="visible">True</property>
+                                <property name="stock">gtk-close</property>
+                                <property name="icon_size">2</property>
+                              </widget>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkScrolledWindow" id="scrollwin_search_result">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="shadow_type">GTK_SHADOW_IN</property>
+                        <child>
+                          <widget class="GtkTreeView" id="treeview_search">
+                            <property name="height_request">200</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="headers_visible">False</property>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="resize">True</property>
+                    <property name="shrink">True</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </widget>
+        </child>
+      </widget>
+      <packing>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+    <child internal-child="appbar">
+      <widget class="GnomeAppBar" id="appbar1">
+        <property name="visible">True</property>
+        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+        <property name="spacing">4</property>
+        <property name="has_progress">True</property>
+        <property name="has_status">True</property>
+      </widget>
+      <packing>
+        <property name="position">1</property>
+        <property name="expand">True</property>
+        <property name="fill">True</property>
+      </packing>
+    </child>
+  </widget>
+  <widget class="GtkDialog" id="pref_dialog">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">File Encoding Examiner Preferences</property>
+    <property name="default_width">600</property>
+    <property name="default_height">400</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="vbox4">
+        <property name="visible">True</property>
+        <child>
+          <widget class="GtkTable" id="table4">
+            <property name="visible">True</property>
+            <property name="border_width">10</property>
+            <property name="n_rows">1</property>
+            <property name="n_columns">2</property>
+            <property name="column_spacing">10</property>
+            <child>
+              <widget class="GtkFrame" id="frame2">
+                <property name="visible">True</property>
+                <property name="label_xalign">0</property>
+                <property name="shadow_type">GTK_SHADOW_NONE</property>
+                <child>
+                  <widget class="GtkAlignment" id="alignment8">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="yalign">0</property>
+                    <property name="top_padding">6</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <widget class="GtkVBox" id="vbox5">
+                        <property name="visible">True</property>
+                        <property name="spacing">2</property>
+                        <child>
+                          <widget class="GtkCheckButton" id="chkbtn_auto_detect">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="tooltip" translatable="yes">Detect the encoding of file name or file content automatically</property>
+                            <property name="label" translatable="yes">_Auto Detection</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkCheckButton" id="chkbtn_auto_convert">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="tooltip" translatable="yes">Convert file using the first candidate automatically instead of interactive converting</property>
+                            <property name="label" translatable="yes">_Auto Conversion</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkCheckButton" id="chkbtn_recursive">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="tooltip" translatable="yes">Recursive handle files under folder</property>
+                            <property name="label" translatable="yes">_Recursive Mode</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkCheckButton" id="chkbtn_hidden">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="tooltip" translatable="yes">Processing hidden file</property>
+                            <property name="label" translatable="yes">Handle _Hidden Files</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">3</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkCheckButton" id="chkbtn_remote">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="tooltip" translatable="yes">Processing non-local files such as NFS file</property>
+                            <property name="label" translatable="yes">Handle _Remote Files</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">4</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkCheckButton" id="chkbtn_follow">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="tooltip" translatable="yes">Follow symbolic link</property>
+                            <property name="label" translatable="yes">Follow _Symbolic Link</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">5</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkCheckButton" id="chkbtn_nocheck_symlink">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="tooltip" translatable="yes">Don't try to keep the consistency between symbolic link file and its target file</property>
+                            <property name="label" translatable="yes">Don't Chec_k Symlink Content</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">6</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkVBox" id="vbox8">
+                            <property name="visible">True</property>
+                            <child>
+                              <widget class="GtkCheckButton" id="chkbtn_special">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="tooltip" translatable="yes">Processing special type of file</property>
+                                <property name="label" translatable="yes">Special File Handling</property>
+                                <property name="use_underline">True</property>
+                                <property name="response_id">0</property>
+                                <property name="draw_indicator">True</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkAlignment" id="alignment13">
+                                <property name="visible">True</property>
+                                <property name="left_padding">20</property>
+                                <child>
+                                  <widget class="GtkCheckButton" id="chkbtn_compress">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="tooltip" translatable="yes">Processing archive or compress file</property>
+                                    <property name="label" translatable="yes">Archive or Compress files</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="response_id">0</property>
+                                    <property name="draw_indicator">True</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="position">8</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkCheckButton" id="chkbtn_use_log">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="tooltip" translatable="yes">Use log file</property>
+                            <property name="label" translatable="yes">Use Log File</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">9</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkAlignment" id="alignment9">
+                            <property name="visible">True</property>
+                            <property name="left_padding">22</property>
+                            <child>
+                              <widget class="GtkHBox" id="hbox6">
+                                <property name="visible">True</property>
+                                <property name="spacing">5</property>
+                                <child>
+                                  <widget class="GtkLabel" id="label_log_file">
+                                    <property name="visible">True</property>
+                                    <property name="label" translatable="yes">Log File Name:</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <widget class="GtkFileChooserButton" id="filebtn_log_file">
+                                    <property name="visible">True</property>
+                                    <property name="do_overwrite_confirmation">True</property>
+                                  </widget>
+                                  <packing>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </widget>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="position">10</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkHBox" id="hbox9">
+                            <property name="visible">True</property>
+                            <property name="spacing">10</property>
+                            <child>
+                              <widget class="GtkLabel" id="label14">
+                                <property name="visible">True</property>
+                                <property name="label" translatable="yes">History Length:</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <widget class="GtkSpinButton" id="spinbutton_hist_len">
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="tooltip" translatable="yes">The number of conversion is stored. Converting multiple files at one time count as 1 time</property>
+                                <property name="adjustment">100 30 1000000 1 10 10</property>
+                                <property name="climb_rate">1</property>
+                                <property name="numeric">True</property>
+                              </widget>
+                              <packing>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="pack_type">GTK_PACK_END</property>
+                            <property name="position">7</property>
+                          </packing>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="GtkLabel" id="label11">
+                    <property name="visible">True</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Conversion Setting:&lt;/b&gt;</property>
+                    <property name="use_markup">True</property>
+                  </widget>
+                  <packing>
+                    <property name="type">label_item</property>
+                  </packing>
+                </child>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkHBox" id="hbox7">
+                <property name="visible">True</property>
+                <property name="spacing">5</property>
+                <child>
+                  <widget class="GtkVBox" id="vbox6">
+                    <property name="visible">True</property>
+                    <child>
+                      <widget class="GtkLabel" id="label12">
+                        <property name="visible">True</property>
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">&lt;b&gt;Encoding List:&lt;/b&gt;</property>
+                        <property name="use_markup">True</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkScrolledWindow" id="scrolledwindow5">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property name="shadow_type">GTK_SHADOW_IN</property>
+                        <child>
+                          <widget class="GtkTreeView" id="treeview_encoding_list">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="headers_visible">False</property>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="padding">5</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                </child>
+                <child>
+                  <widget class="GtkAlignment" id="alignment12">
+                    <property name="visible">True</property>
+                    <property name="top_padding">15</property>
+                    <property name="bottom_padding">5</property>
+                    <property name="left_padding">2</property>
+                    <child>
+                      <widget class="GtkVBox" id="vbox7">
+                        <property name="visible">True</property>
+                        <property name="border_width">3</property>
+                        <property name="spacing">5</property>
+                        <child>
+                          <widget class="GtkButton" id="chkbtn_up">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <property name="label">gtk-go-up</property>
+                            <property name="use_stock">True</property>
+                            <property name="response_id">0</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkButton" id="chkbtn_down">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <property name="label">gtk-go-down</property>
+                            <property name="use_stock">True</property>
+                            <property name="response_id">0</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkButton" id="chkbtn_delete">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <property name="label">gtk-delete</property>
+                            <property name="use_stock">True</property>
+                            <property name="response_id">0</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">2</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkButton" id="chkbtn_add">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <property name="label">gtk-add</property>
+                            <property name="use_stock">True</property>
+                            <property name="response_id">0</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">3</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkButton" id="chkbtn_save">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="can_default">True</property>
+                            <property name="tooltip" translatable="yes">Save the encoding list permanently, otherwise used only for current session</property>
+                            <property name="label">gtk-save</property>
+                            <property name="use_stock">True</property>
+                            <property name="response_id">0</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">4</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkButton" id="chkbtn_reset">
+                            <property name="sensitive">False</property>
+                            <property name="can_focus">True</property>
+                            <property name="label">gtk-revert-to-saved</property>
+                            <property name="use_stock">True</property>
+                            <property name="response_id">0</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="pack_type">GTK_PACK_END</property>
+                            <property name="position">5</property>
+                          </packing>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <widget class="GtkHButtonBox" id="hbuttonbox1">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <widget class="GtkButton" id="button_help">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-help</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-11</property>
+              </widget>
+              <packing>
+                <property name="secondary">True</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkButton" id="button8">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="has_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="label">gtk-cancel</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-6</property>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkButton" id="button9">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-ok</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-5</property>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="GtkDialog" id="encodings-dialog">
+    <property name="border_width">5</property>
+    <property name="title" translatable="yes">Add or Remove Encoding</property>
+    <property name="default_height">325</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="dialog-vbox3">
+        <property name="visible">True</property>
+        <property name="spacing">2</property>
+        <child>
+          <widget class="GtkTable" id="table33">
+            <property name="visible">True</property>
+            <property name="border_width">5</property>
+            <property name="n_rows">2</property>
+            <property name="n_columns">3</property>
+            <property name="column_spacing">12</property>
+            <property name="row_spacing">6</property>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="available-label">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">&lt;b&gt;Available encoding:&lt;/b&gt;</property>
+                <property name="use_markup">True</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">available-treeview</property>
+                <accessibility>
+                  <atkrelation target="available-treeview" type="label-for"/>
+                </accessibility>
+              </widget>
+              <packing>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkScrolledWindow" id="scrolledwindow2">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <child>
+                  <widget class="GtkTreeView" id="available-treeview">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <accessibility>
+                      <atkrelation target="available-label" type="labelled-by"/>
+                    </accessibility>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="displayed-label">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">&lt;b&gt;Encoding Selected:&lt;/b&gt;</property>
+                <property name="use_markup">True</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">displayed-treeview</property>
+              </widget>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkScrolledWindow" id="scrolledwindow3">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+                <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                <property name="shadow_type">GTK_SHADOW_IN</property>
+                <child>
+                  <widget class="GtkTreeView" id="displayed-treeview">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="left_attach">2</property>
+                <property name="right_attach">3</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options">GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkHBox" id="hbox27">
+                <property name="visible">True</property>
+                <child>
+                  <widget class="GtkVBox" id="vbox87">
+                    <property name="visible">True</property>
+                    <property name="spacing">6</property>
+                    <child>
+                      <widget class="GtkButton" id="add-button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="tooltip" translatable="yes">Select encoding</property>
+                        <property name="response_id">0</property>
+                        <child>
+                          <widget class="GtkImage" id="image3">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-go-forward</property>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <widget class="GtkButton" id="remove-button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="tooltip" translatable="yes">Remove encoding</property>
+                        <property name="response_id">0</property>
+                        <child>
+                          <widget class="GtkImage" id="image4">
+                            <property name="visible">True</property>
+                            <property name="stock">gtk-go-back</property>
+                          </widget>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </widget>
+                </child>
+              </widget>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <widget class="GtkHButtonBox" id="dialog-action_area3">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <widget class="GtkButton" id="closebutton1">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="has_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="label">gtk-cancel</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-6</property>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkButton" id="button10">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-ok</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-5</property>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+  <widget class="GtkWindow" id="peek_win">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">window1</property>
+    <property name="destroy_with_parent">True</property>
+    <child>
+      <placeholder/>
+    </child>
+  </widget>
+  <widget class="GtkMenu" id="menu_popup">
+    <child>
+      <widget class="GtkImageMenuItem" id="popup_convert">
+        <property name="visible">True</property>
+        <property name="tooltip" translatable="yes">Convert selected files' name or content according to the current mode</property>
+        <property name="label" translatable="yes">_Convert</property>
+        <property name="use_underline">True</property>
+        <signal name="activate" handler="cb_convert"/>
+        <child internal-child="image">
+          <widget class="GtkImage" id="image857">
+            <property name="visible">True</property>
+            <property name="stock">gtk-convert</property>
+            <property name="icon_size">1</property>
+          </widget>
+        </child>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkImageMenuItem" id="popup_forceful">
+        <property name="visible">True</property>
+        <property name="tooltip" translatable="yes">Convert without detecting whether encoding is UTF-8 or not</property>
+        <property name="label" translatable="yes">_Forcibly Convert</property>
+        <property name="use_underline">True</property>
+        <signal name="activate" handler="cb_force_convert"/>
+        <child internal-child="image">
+          <widget class="GtkImage" id="image858">
+            <property name="visible">True</property>
+            <property name="stock">gtk-jump-to</property>
+            <property name="icon_size">1</property>
+          </widget>
+        </child>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkImageMenuItem" id="popup_dryrun">
+        <property name="visible">True</property>
+        <property name="tooltip" translatable="yes">Dryrun without changing files on disk</property>
+        <property name="label" translatable="yes">_Dryrun</property>
+        <property name="use_underline">True</property>
+        <signal name="activate" handler="cb_dryrun"/>
+        <child internal-child="image">
+          <widget class="GtkImage" id="image859">
+            <property name="visible">True</property>
+            <property name="stock">gtk-missing-image</property>
+            <property name="icon_size">1</property>
+          </widget>
+        </child>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkImageMenuItem" id="popup_scenario">
+        <property name="visible">True</property>
+        <property name="sensitive">False</property>
+        <property name="tooltip" translatable="yes">Convert file name or content based on previous dryrun result</property>
+        <property name="label" translatable="yes">_Scenario</property>
+        <property name="use_underline">True</property>
+        <signal name="activate" handler="cb_scenario"/>
+        <child internal-child="image">
+          <widget class="GtkImage" id="image860">
+            <property name="visible">True</property>
+            <property name="stock">gtk-convert</property>
+            <property name="icon_size">1</property>
+          </widget>
+        </child>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkSeparatorMenuItem" id="separator14">
+        <property name="visible">True</property>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkImageMenuItem" id="popup_undo">
+        <property name="visible">True</property>
+        <property name="sensitive">False</property>
+        <property name="label" translatable="yes">gtk-undo</property>
+        <property name="use_underline">True</property>
+        <property name="use_stock">True</property>
+        <signal name="activate" handler="cb_undo"/>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkImageMenuItem" id="popup_restore">
+        <property name="visible">True</property>
+        <property name="tooltip" translatable="yes">Restore given files' name or content according to conversion mode</property>
+        <property name="label" translatable="yes">_Restore</property>
+        <property name="use_underline">True</property>
+        <signal name="activate" handler="cb_restore"/>
+        <child internal-child="image">
+          <widget class="GtkImage" id="image861">
+            <property name="visible">True</property>
+            <property name="stock">gtk-revert-to-saved</property>
+            <property name="icon_size">1</property>
+          </widget>
+        </child>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkSeparatorMenuItem" id="separator15">
+        <property name="visible">True</property>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkRadioMenuItem" id="popup_name_mode">
+        <property name="visible">True</property>
+        <property name="label" translatable="yes">File _Name Mode</property>
+        <property name="use_underline">True</property>
+        <property name="active">True</property>
+        <signal name="toggled" handler="cb_name_mode_popup"/>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkRadioMenuItem" id="popup_content_mode">
+        <property name="visible">True</property>
+        <property name="label" translatable="yes">File Content _Mode</property>
+        <property name="use_underline">True</property>
+        <property name="group">popup_name_mode</property>
+        <signal name="toggled" handler="cb_content_mode_popup"/>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkSeparatorMenuItem" id="separator17">
+        <property name="visible">True</property>
+      </widget>
+    </child>
+    <child>
+      <widget class="GtkImageMenuItem" id="preferences2">
+        <property name="visible">True</property>
+        <property name="label" translatable="yes">gtk-preferences</property>
+        <property name="use_underline">True</property>
+        <property name="use_stock">True</property>
+        <signal name="activate" handler="cb_create_pref_dialog"/>
+      </widget>
+    </child>
+  </widget>
+  <widget class="GtkDialog" id="dialog_search">
+    <property name="visible">True</property>
+    <property name="title" translatable="yes">Search for files</property>
+    <property name="modal">True</property>
+    <property name="default_width">500</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <child internal-child="vbox">
+      <widget class="GtkVBox" id="dialog-vbox4">
+        <property name="visible">True</property>
+        <child>
+          <widget class="GtkTable" id="table34">
+            <property name="visible">True</property>
+            <property name="border_width">5</property>
+            <property name="n_rows">6</property>
+            <property name="n_columns">2</property>
+            <property name="column_spacing">10</property>
+            <property name="row_spacing">8</property>
+            <child>
+              <widget class="GtkLabel" id="label18">
+                <property name="visible">True</property>
+                <property name="xalign">1</property>
+                <property name="label" translatable="yes">Look in folder:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">filebtn_search_folder</property>
+              </widget>
+              <packing>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label19">
+                <property name="visible">True</property>
+                <property name="xalign">1</property>
+                <property name="label" translatable="yes">Name Contains:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">entry_name</property>
+              </widget>
+              <packing>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkFileChooserButton" id="filebtn_search_folder">
+                <property name="visible">True</property>
+                <property name="do_overwrite_confirmation">True</property>
+                <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
+                <property name="show_hidden">True</property>
+                <property name="title" translatable="yes">Select A Folder</property>
+              </widget>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options">GTK_FILL</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkEntry" id="entry_name">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">Use shell glob pattern</property>
+              </widget>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkEntry" id="entry_group">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">Group name</property>
+              </widget>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label23">
+                <property name="visible">True</property>
+                <property name="xalign">1</property>
+                <property name="label" translatable="yes">Owned by group:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">entry_group</property>
+              </widget>
+              <packing>
+                <property name="top_attach">3</property>
+                <property name="bottom_attach">4</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label22">
+                <property name="visible">True</property>
+                <property name="xalign">1</property>
+                <property name="label" translatable="yes">Owned by user:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">entry_user</property>
+              </widget>
+              <packing>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkEntry" id="entry_user">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">User name</property>
+              </widget>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label20">
+                <property name="visible">True</property>
+                <property name="xalign">1</property>
+                <property name="label" translatable="yes">Data modified more than:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">spinbutton_data</property>
+              </widget>
+              <packing>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkSpinButton" id="spinbutton_data">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">Based on seconds</property>
+                <property name="adjustment">0 0 100 1 10 10</property>
+                <property name="climb_rate">1</property>
+              </widget>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">4</property>
+                <property name="bottom_attach">5</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label21">
+                <property name="visible">True</property>
+                <property name="xalign">1</property>
+                <property name="label" translatable="yes">Status modified more than:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">spinbutton_status</property>
+              </widget>
+              <packing>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkSpinButton" id="spinbutton_status">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="tooltip" translatable="yes">Based on seconds</property>
+                <property name="adjustment">0 0 100 1 10 10</property>
+                <property name="climb_rate">1</property>
+              </widget>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">5</property>
+                <property name="bottom_attach">6</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <widget class="GtkHButtonBox" id="dialog-action_area4">
+            <property name="visible">True</property>
+            <property name="layout_style">GTK_BUTTONBOX_END</property>
+            <child>
+              <widget class="GtkButton" id="helpbutton1">
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-help</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-11</property>
+                <signal name="clicked" handler="show_help"/>
+              </widget>
+            </child>
+            <child>
+              <widget class="GtkButton" id="button11">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="label">gtk-close</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-7</property>
+              </widget>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkButton" id="button_find">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="label">gtk-find</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-5</property>
+              </widget>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkButton" id="button_stop">
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="label">gtk-stop</property>
+                <property name="use_stock">True</property>
+                <property name="response_id">-6</property>
+              </widget>
+              <packing>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">GTK_PACK_END</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
+</glade-interface>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam.glade2p	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,32 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
+<!--
+ CDDL HEADER START
+
+ The contents of this file are subject to the terms of the
+ Common Development and Distribution License (the "License").  
+ You may not use this file except in compliance with the License.
+
+ You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
+ or http://www.opensolaris.org/os/licensing.
+ See the License for the specific language governing permissions
+ and limitations under the License.
+
+ When distributing Covered Code, include this CDDL HEADER in each
+ file and include the License file at src/OPENSOLARIS.LICENSE.
+ If applicable, add the following below this CDDL HEADER, with the
+ fields enclosed by brackets "[]" replaced with your own identifying
+ information: Portions Copyright [yyyy] [name of copyright owner]
+
+ CDDL HEADER END
+
+
+ Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+ Use is subject to license terms. 
+
+-->
+
+<glade-project>
+  <name>Fsexam</name>
+  <program_name>fsexam</program_name>
+</glade-project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cmd/fsexam/src/fsexam.h	Fri Apr 25 17:13:57 2008 +0800
@@ -0,0 +1,53 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms.
+ */
+
+#ifndef _FSEXAM_H_
+#define _FSEXAM_H_
+
+#define FSEXAM_VERSION      "0.4"
+
+#define HISTORY_LENGTH      100
+
+#define FSEXAM_GUI_NAME     "fsexam"
+#define FSEXAM_CLI_NAME     "fsexamc"
+
+#define FEEXIT_SUCCESS      0
+#define FEEXIT_FAILURE      1
+
+#define FSEXAM_HIDDEN       ".fsexam"
+#define HISTORY_FILE        "fsexam-hist.txt"
+
+#ifndef PATH_MAX
+#define PATH_MAX	2048
+#endif
+
+extern gboolean cli_mode;
+extern gboolean force_quit;
+extern gboolean stop_search;
+
+void   fsexam_cleanup_all ();
+
+#endif  //_FSEXAM_H_