Import Upstream version 5.0.14

This commit is contained in:
hanteng@kylinos.cn 2022-09-26 10:45:17 +08:00
commit bef8873e8d
202 changed files with 32206 additions and 0 deletions

58
.clang-format Normal file
View File

@ -0,0 +1,58 @@
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -4
ConstructorInitializerIndentWidth: 4
AlignEscapedNewlinesLeft: false
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AlwaysBreakTemplateDeclarations: true
AlwaysBreakBeforeMultilineStrings: false
BreakBeforeBinaryOperators: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BinPackParameters: true
ColumnLimit: 80
ConstructorInitializerAllOnOneLineOrOnePerLine: false
DerivePointerAlignment: false
ExperimentalAutoDetectBinPacking: false
IndentCaseLabels: false
IndentWrappedFunctionNames: false
IndentFunctionDeclarationAfterType: false
MaxEmptyLinesToKeep: 1
KeepEmptyLinesAtTheStartOfBlocks: true
NamespaceIndentation: None
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakString: 1000
PenaltyBreakFirstLessLess: 120
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
SpacesBeforeTrailingComments: 1
Cpp11BracedListStyle: true
Standard: Cpp11
IndentWidth: 4
TabWidth: 4
UseTab: Never
BreakBeforeBraces: Attach
SpacesInParentheses: false
SpacesInAngles: false
SpaceInEmptyParentheses: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: true
SpaceBeforeAssignmentOperators: true
ContinuationIndentWidth: 4
CommentPragmas: '^ IWYU pragma:'
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
SpaceBeforeParens: ControlStatements
DisableFormat: false
SortIncludes: true
...

7
.gitignore vendored Normal file
View File

@ -0,0 +1,7 @@
build/*
*.kdev4
.kdev_include_paths
.directory
*.kate-swp
*.orig
*~

86
CMakeLists.txt Normal file
View File

@ -0,0 +1,86 @@
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
set(CMAKE_DISABLE_SOURCE_CHANGES ON)
if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
message(FATAL_ERROR "In-source builds are disabled.
Please create a subfolder and use `cmake ..` inside it.
NOTE: cmake will now create CMakeCache.txt and CMakeFiles/*.
You must delete them, or cmake will refuse to work.")
endif()
project(fcitx5-configtool VERSION 5.0.19)
set(QT_MIN_VERSION "5.12.0")
find_package(ECM 1.0.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings)
include(FeatureSummary)
include(ECMSetupVersion)
include(GenerateExportHeader)
option(ENABLE_KCM "Enable KDE Config Module" On)
option(ENABLE_CONFIG_QT "Enable fcitx5-config-qt" On)
option(ENABLE_TEST "Enable test" Off)
add_definitions(-DTRANSLATION_DOMAIN=\"org.fcitx.fcitx5.kcm\")
add_definitions(-DFCITX_GETTEXT_DOMAIN=\"fcitx5-configtool\")
add_definitions(-DQT_NO_KEYWORDS)
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Gui Widgets X11Extras Concurrent)
if (ENABLE_CONFIG_QT)
find_package(KF5ItemViews REQUIRED)
endif()
if (ENABLE_KCM)
find_package(Qt5QuickControls2 REQUIRED)
find_package(KF5CoreAddons REQUIRED)
find_package(KF5I18n REQUIRED)
find_package(KF5Package REQUIRED)
find_package(KF5Declarative REQUIRED)
find_package(KF5IconThemes REQUIRED)
find_package(KF5Kirigami2 5.68 REQUIRED)
find_package(XKBCommon REQUIRED COMPONENTS XKBCommon)
find_package(KF5Plasma REQUIRED)
if (KF5Kirigami2_VERSION VERSION_LESS 5.76)
set(DISABLE_UNDER_KIRIGAMI2_5_76 "//Needs Kirigami2 5.76 ")
else()
set(DISABLE_UNDER_KIRIGAMI2_5_76 "")
endif()
endif()
find_package(Fcitx5Core 5.0.4 REQUIRED)
find_package(Fcitx5Config REQUIRED)
find_package(Fcitx5Utils REQUIRED)
find_package(Fcitx5Qt5DBusAddons REQUIRED)
find_package(Fcitx5Qt5WidgetsAddons 5.0.2 REQUIRED)
find_package(Qt5Svg)
set_package_properties(Qt5Svg PROPERTIES
DESCRIPTION "May be used for show icons"
TYPE RUNTIME)
get_target_property(FCITX5_QT5_GUI_WRAPPER Fcitx5Qt5::gui-wrapper IMPORTED_LOCATION)
find_package(KF5WidgetsAddons REQUIRED)
find_package(IsoCodes REQUIRED)
kde_enable_exceptions()
include("${FCITX_INSTALL_CMAKECONFIG_DIR}/Fcitx5Utils/Fcitx5CompilerSettings.cmake")
find_package(PkgConfig REQUIRED)
find_package(Gettext REQUIRED)
find_package(X11 REQUIRED)
find_package(XKeyboardConfig REQUIRED)
pkg_check_modules(XkbFile "xkbfile" REQUIRED IMPORTED_TARGET)
configure_file(config.h.in config.h)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_subdirectory(po)
add_subdirectory(src)
add_subdirectory(layout)
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)

View File

@ -0,0 +1,319 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share
and change it. By contrast, the GNU General Public License is intended to
guarantee your freedom to share and change free software--to make sure the
software is free for all its users. This General Public License applies to
most of the Free Software Foundation's software and to any other program whose
authors commit to using it. (Some other Free Software Foundation software
is covered by the GNU Lesser General Public License instead.) You can apply
it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom
to distribute copies of free software (and charge for this service if you
wish), that you receive source code or can get it if you want it, that you
can change the software or use pieces of it in new free programs; and that
you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to
deny you these rights or to ask you to surrender the rights. These restrictions
translate to certain responsibilities for you if you distribute copies of
the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or
for a fee, you must give the recipients all the rights that you have. You
must make sure that they, too, receive or can get the source code. And you
must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2)
offer you this license which gives you legal permission to copy, distribute
and/or modify the software.
Also, for each author's protection and ours, we want to make certain that
everyone understands that there is no warranty for this free software. If
the software is modified by someone else and passed on, we want its recipients
to know that what they have is not the original, so that any problems introduced
by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We
wish to avoid the danger that redistributors of a free program will individually
obtain patent licenses, in effect making the program proprietary. To prevent
this, we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification
follow.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice
placed by the copyright holder saying it may be distributed under the terms
of this General Public License. The "Program", below, refers to any such program
or work, and a "work based on the Program" means either the Program or any
derivative work under copyright law: that is to say, a work containing the
Program or a portion of it, either verbatim or with modifications and/or translated
into another language. (Hereinafter, translation is included without limitation
in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered
by this License; they are outside its scope. The act of running the Program
is not restricted, and the output from the Program is covered only if its
contents constitute a work based on the Program (independent of having been
made by running the Program). Whether that is true depends on what the Program
does.
1. You may copy and distribute verbatim copies of the Program's source code
as you receive it, in any medium, provided that you conspicuously and appropriately
publish on each copy an appropriate copyright notice and disclaimer of warranty;
keep intact all the notices that refer to this License and to the absence
of any warranty; and give any other recipients of the Program a copy of this
License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you
may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it,
thus forming a work based on the Program, and copy and distribute such modifications
or work under the terms of Section 1 above, provided that you also meet all
of these conditions:
a) You must cause the modified files to carry prominent notices stating that
you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or
in part contains or is derived from the Program or any part thereof, to be
licensed as a whole at no charge to all third parties under the terms of this
License.
c) If the modified program normally reads commands interactively when run,
you must cause it, when started running for such interactive use in the most
ordinary way, to print or display an announcement including an appropriate
copyright notice and a notice that there is no warranty (or else, saying that
you provide a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this License.
(Exception: if the Program itself is interactive but does not normally print
such an announcement, your work based on the Program is not required to print
an announcement.)
These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be reasonably
considered independent and separate works in themselves, then this License,
and its terms, do not apply to those sections when you distribute them as
separate works. But when you distribute the same sections as part of a whole
which is a work based on the Program, the distribution of the whole must be
on the terms of this License, whose permissions for other licensees extend
to the entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest your
rights to work written entirely by you; rather, the intent is to exercise
the right to control the distribution of derivative or collective works based
on the Program.
In addition, mere aggregation of another work not based on the Program with
the Program (or with a work based on the Program) on a volume of a storage
or distribution medium does not bring the other work under the scope of this
License.
3. You may copy and distribute the Program (or a work based on it, under Section
2) in object code or executable form under the terms of Sections 1 and 2 above
provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code,
which must be distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give
any third party, for a charge no more than your cost of physically performing
source distribution, a complete machine-readable copy of the corresponding
source code, to be distributed under the terms of Sections 1 and 2 above on
a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute
corresponding source code. (This alternative is allowed only for noncommercial
distribution and only if you received the program in object code or executable
form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making
modifications to it. For an executable work, complete source code means all
the source code for all modules it contains, plus any associated interface
definition files, plus the scripts used to control compilation and installation
of the executable. However, as a special exception, the source code distributed
need not include anything that is normally distributed (in either source or
binary form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component itself
accompanies the executable.
If distribution of executable or object code is made by offering access to
copy from a designated place, then offering equivalent access to copy the
source code from the same place counts as distribution of the source code,
even though third parties are not compelled to copy the source along with
the object code.
4. You may not copy, modify, sublicense, or distribute the Program except
as expressly provided under this License. Any attempt otherwise to copy, modify,
sublicense or distribute the Program is void, and will automatically terminate
your rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses terminated
so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed
it. However, nothing else grants you permission to modify or distribute the
Program or its derivative works. These actions are prohibited by law if you
do not accept this License. Therefore, by modifying or distributing the Program
(or any work based on the Program), you indicate your acceptance of this License
to do so, and all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program),
the recipient automatically receives a license from the original licensor
to copy, distribute or modify the Program subject to these terms and conditions.
You may not impose any further restrictions on the recipients' exercise of
the rights granted herein. You are not responsible for enforcing compliance
by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement
or for any other reason (not limited to patent issues), conditions are imposed
on you (whether by court order, agreement or otherwise) that contradict the
conditions of this License, they do not excuse you from the conditions of
this License. If you cannot distribute so as to satisfy simultaneously your
obligations under this License and any other pertinent obligations, then as
a consequence you may not distribute the Program at all. For example, if a
patent license would not permit royalty-free redistribution of the Program
by all those who receive copies directly or indirectly through you, then the
only way you could satisfy both it and this License would be to refrain entirely
from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply and
the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents
or other property right claims or to contest validity of any such claims;
this section has the sole purpose of protecting the integrity of the free
software distribution system, which is implemented by public license practices.
Many people have made generous contributions to the wide range of software
distributed through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing to
distribute software through any other system and a licensee cannot impose
that choice.
This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain
countries either by patents or by copyrighted interfaces, the original copyright
holder who places the Program under this License may add an explicit geographical
distribution limitation excluding those countries, so that distribution is
permitted only in or among countries not thus excluded. In such case, this
License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of
the General Public License from time to time. Such new versions will be similar
in spirit to the present version, but may differ in detail to address new
problems or concerns.
Each version is given a distinguishing version number. If the Program specifies
a version number of this License which applies to it and "any later version",
you have the option of following the terms and conditions either of that version
or of any later version published by the Free Software Foundation. If the
Program does not specify a version number of this License, you may choose
any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs
whose distribution conditions are different, write to the author to ask for
permission. For software which is copyrighted by the Free Software Foundation,
write to the Free Software Foundation; we sometimes make exceptions for this.
Our decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing and reuse
of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM
"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE
OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA
OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH
HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible
use to the public, the best way to achieve this is to make it free software
which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach
them to the start of each source file to most effectively convey the exclusion
of warranty; and each file should have at least the "copyright" line and a
pointer to where the full notice is found.
<one line to give the program's name and an idea of what it does.>
Copyright (C) <yyyy> <name of author>
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA 02110-1301, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when
it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software,
and you are welcome to redistribute it under certain conditions; type `show
c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may be
called something other than `show w' and `show c'; they could even be mouse-clicks
or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school,
if any, to sign a "copyright disclaimer" for the program, if necessary. Here
is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision'
(which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General
Public License does not permit incorporating your program into proprietary
programs. If your program is a subroutine library, you may consider it more
useful to permit linking proprietary applications with the library. If this
is what you want to do, use the GNU Lesser General Public License instead
of this License.

4
Messages.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
gen_pot kde:appdata:desktop:ui fcitx5-configtool po/fcitx5-configtool layout/ src/configtool/ src/lib/ src/migrator/
gen_pot kde:appdata:desktop:ui org.fcitx.fcitx5.kcm po/org.fcitx.fcitx5.kcm src/kcm/ src/plasmathemegenerator/

0
README Normal file
View File

36
cmake/FindIsoCodes.cmake Normal file
View File

@ -0,0 +1,36 @@
# - Try to find the IsoCodes libraries
# Once done this will define
#
# ISOCODES_FOUND - system has ISOCODES
# ISOCODES_INCLUDE_DIR - the ISOCODES include directory
# ISOCODES_LIBRARIES - ISOCODES library
#
# Copyright (c) 2012 CSSlayer <wengxt@gmail.com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if(ISOCODES_INCLUDE_DIR AND ISOCODES_LIBRARIES)
# Already in cache, be silent
set(ISOCODES_FIND_QUIETLY TRUE)
endif(ISOCODES_INCLUDE_DIR AND ISOCODES_LIBRARIES)
find_package(PkgConfig)
pkg_check_modules(PC_ISOCODES iso-codes)
find_file(ISOCODES_ISO639_2_JSON iso_639-2.json
HINTS "${PC_ISOCODES_PREFIX}/share/iso-codes/json/"
)
find_file(ISOCODES_ISO639_3_JSON iso_639-3.json
HINTS "${PC_ISOCODES_PREFIX}/share/iso-codes/json/"
)
find_file(ISOCODES_ISO639_5_JSON iso_639-5.json
HINTS "${PC_ISOCODES_PREFIX}/share/iso-codes/json/"
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(IsoCodes DEFAULT_MSG ISOCODES_ISO639_2_JSON ISOCODES_ISO639_3_JSON ISOCODES_ISO639_5_JSON)
mark_as_advanced(ISOCODES_ISO639_2_JSON ISOCODES_ISO639_3_JSON ISOCODES_ISO639_5_JSON)

44
cmake/FindXKBCommon.cmake Normal file
View File

@ -0,0 +1,44 @@
include(ECMFindModuleHelpersStub)
ecm_find_package_version_check(XKBCommon)
# Note that this list needs to be ordered such that any component
# appears after its dependencies
set(XKBCommon_known_components
XKBCommon
X11)
set(XKBCommon_XKBCommon_component_deps)
set(XKBCommon_XKBCommon_pkg_config "xkbcommon")
set(XKBCommon_XKBCommon_lib "xkbcommon")
set(XKBCommon_XKBCommon_header "xkbcommon/xkbcommon.h")
set(XKBCommon_X11_component_deps XKBCommon)
set(XKBCommon_X11_pkg_config "xkbcommon-x11")
set(XKBCommon_X11_lib "xkbcommon-x11")
set(XKBCommon_X11_header "xkbcommon/xkbcommon-x11.h")
ecm_find_package_parse_components(XKBCommon
RESULT_VAR XKBCommon_components
KNOWN_COMPONENTS ${XKBCommon_known_components}
)
ecm_find_package_handle_library_components(XKBCommon
COMPONENTS ${XKBCommon_components}
)
find_package_handle_standard_args(XKBCommon
FOUND_VAR
XKBCommon_FOUND
REQUIRED_VARS
XKBCommon_LIBRARIES
VERSION_VAR
XKBCommon_VERSION
HANDLE_COMPONENTS
)
include(FeatureSummary)
set_package_properties(XKBCommon PROPERTIES
URL "http://xkbcommon.org"
DESCRIPTION "Keyboard handling library using XKB data"
)

View File

@ -0,0 +1,20 @@
find_package(PkgConfig)
pkg_check_modules(PKG_XKEYBOARDCONFIG QUIET xkeyboard-config)
pkg_get_variable(XKEYBOARDCONFIG_XKBBASE xkeyboard-config xkb_base)
pkg_get_variable(XKEYBOARDCONFIG_DATADIR xkeyboard-config datadir)
set(XKEYBOARDCONFIG_VERSION ${PKG_XKEYBOARDCONFIG_VERSION})
mark_as_advanced(XKEYBOARDCONFIG_VERSION)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(XKeyboardConfig
FOUND_VAR
XKEYBOARDCONFIG_FOUND
REQUIRED_VARS
XKEYBOARDCONFIG_XKBBASE
XKEYBOARDCONFIG_DATADIR
VERSION_VAR
XKEYBOARDCONFIG_VERSION
)

17
config.h.in Normal file
View File

@ -0,0 +1,17 @@
/*
* SPDX-FileCopyrightText: 2017~2017 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef _KCM_FCITX5_CONFIG_H_
#define _KCM_FCITX5_CONFIG_H_
#cmakedefine PROJECT_VERSION "@PROJECT_VERSION@"
#cmakedefine XKEYBOARDCONFIG_XKBBASE "@XKEYBOARDCONFIG_XKBBASE@"
#cmakedefine ISOCODES_ISO639_2_JSON "@ISOCODES_ISO639_2_JSON@"
#cmakedefine ISOCODES_ISO639_3_JSON "@ISOCODES_ISO639_3_JSON@"
#cmakedefine ISOCODES_ISO639_5_JSON "@ISOCODES_ISO639_5_JSON@"
#define FCITX5_QT5_GUI_WRAPPER "@FCITX5_QT5_GUI_WRAPPER@"
#endif // _KCM_FCITX5_CONFIG_H_

28
layout/CMakeLists.txt Normal file
View File

@ -0,0 +1,28 @@
add_library(X11Import UNKNOWN IMPORTED)
set_target_properties(X11Import PROPERTIES
IMPORTED_LOCATION "${X11_X11_LIB}"
INTERFACE_INCLUDE_DIRECTORIES "${X11_X11_INCLUDE_PATH}")
add_library(X11XkblibImport INTERFACE IMPORTED)
set_target_properties(X11XkblibImport PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${X11_Xkblib_INCLUDE_PATH}")
add_library(layoutlib STATIC keyboardlayoutwidget.cpp)
set_target_properties(layoutlib PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
target_link_libraries(layoutlib PUBLIC Fcitx5::Utils Qt5::Widgets PRIVATE Qt5::X11Extras X11Import X11XkblibImport PkgConfig::XkbFile)
target_include_directories(layoutlib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
set(kbd_layout_viewer_SOURCES
main.cpp
)
add_executable(kbd-layout-viewer5 ${kbd_layout_viewer_SOURCES})
target_link_libraries(kbd-layout-viewer5 Fcitx5::Utils Qt5::Widgets Qt5::X11Extras layoutlib)
install(TARGETS kbd-layout-viewer5 DESTINATION ${KDE_INSTALL_BINDIR})
fcitx5_translate_desktop_file(
kbd-layout-viewer5.desktop.in
kbd-layout-viewer5.desktop PO_DIRECTORY ${PROJECT_SOURCE_DIR}/po/fcitx5-configtool)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/kbd-layout-viewer5.desktop"
DESTINATION ${KDE_INSTALL_APPDIR})

63
layout/deadmapdata.h Normal file
View File

@ -0,0 +1,63 @@
/*
* SPDX-FileCopyrightText: 2011~2011 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#ifndef _LAYOUT_DEADMAPDATA_H_
#define _LAYOUT_DEADMAPDATA_H_
struct DeadMap {
unsigned int dead;
unsigned int nondead;
} deadMapData[] = {
{XK_dead_grave, 0x0060},
{XK_dead_acute, 0x00b4},
{XK_dead_circumflex, 0x02c6},
{XK_dead_tilde, 0x02dc},
{XK_dead_macron, 0x00af},
{XK_dead_breve, 0x02D8},
{XK_dead_abovedot, 0x02D9},
{XK_dead_diaeresis, 0x00A8},
{XK_dead_abovering, 0x02DA},
{XK_dead_doubleacute, 0x02DD},
{XK_dead_caron, 0x02C7},
{XK_dead_cedilla, 0x00B8},
{XK_dead_ogonek, 0x02DB},
{XK_dead_iota, 0x0269},
{XK_dead_voiced_sound, 0x309B},
{XK_dead_semivoiced_sound, 0x309A},
{XK_dead_belowdot, 0x0323},
{XK_dead_hook, 0x0309},
{XK_dead_horn, 0x031b},
{XK_dead_stroke, 0x0335},
{XK_dead_abovecomma, 0x0312},
{XK_dead_abovereversedcomma, 0x0314},
{XK_dead_doublegrave, 0x030f},
{XK_dead_belowring, 0x0325},
{XK_dead_belowmacron, 0x0331},
{XK_dead_belowcircumflex, 0x032D},
{XK_dead_belowtilde, 0x0330},
{XK_dead_belowbreve, 0x032e},
{XK_dead_belowdiaeresis, 0x0324},
{XK_dead_invertedbreve, 0x0311},
{XK_dead_belowcomma, 0x0326},
{XK_dead_currency, 0x00A4},
/* dead vowels for universal syllable entry */
{XK_dead_a, 0x0061},
{XK_dead_A, 0x0041},
{XK_dead_e, 0x0065},
{XK_dead_E, 0x0045},
{XK_dead_i, 0x0069},
{XK_dead_I, 0x0049},
{XK_dead_o, 0x006f},
{XK_dead_O, 0x004f},
{XK_dead_u, 0x0075},
{XK_dead_U, 0x0055},
{XK_dead_small_schwa, 0x0259},
{XK_dead_capital_schwa, 0x018F},
};
#endif // _LAYOUT_DEADMAPDATA_H_

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Exec=kbd-layout-viewer5
Icon=input-keyboard
Type=Application
Name=Keyboard layout viewer
Comment=View keyboard layout
X-KDE-Keywords=keyboard;input;im
Categories=Qt;KDE;Utility;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,157 @@
/*
* SPDX-FileCopyrightText: 2011~2011 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
/* this file is based on from libgnomekbd/libgnomekbd/gkbd-keyboard-drawing.c */
#ifndef KEYBOARDLAYOUTWIDGET_H
#define KEYBOARDLAYOUTWIDGET_H
#include <QAbstractNativeEventFilter>
#include <QMap>
#include <QWidget>
#include <vector>
class QPainter;
struct Doodad;
struct _XkbDesc;
struct _XkbShapeDoodad;
union _XkbDoodad;
typedef enum {
KEYBOARD_DRAWING_ITEM_TYPE_INVALID = 0,
KEYBOARD_DRAWING_ITEM_TYPE_KEY,
KEYBOARD_DRAWING_ITEM_TYPE_KEY_EXTRA,
KEYBOARD_DRAWING_ITEM_TYPE_DOODAD
} KeyboardDrawingItemType;
typedef enum {
KEYBOARD_DRAWING_POS_TOPLEFT,
KEYBOARD_DRAWING_POS_TOPRIGHT,
KEYBOARD_DRAWING_POS_BOTTOMLEFT,
KEYBOARD_DRAWING_POS_BOTTOMRIGHT,
KEYBOARD_DRAWING_POS_TOTAL,
KEYBOARD_DRAWING_POS_FIRST = KEYBOARD_DRAWING_POS_TOPLEFT,
KEYBOARD_DRAWING_POS_LAST = KEYBOARD_DRAWING_POS_BOTTOMRIGHT
} KeyboardDrawingGroupLevelPosition;
namespace fcitx {
namespace kcm {
struct DrawingItem {
DrawingItem()
: type(KEYBOARD_DRAWING_ITEM_TYPE_INVALID), originX(0), originY(0),
angle(0), priority(0) {}
virtual ~DrawingItem() {}
KeyboardDrawingItemType type;
int originX;
int originY;
int angle;
unsigned int priority;
};
struct Doodad : public DrawingItem {
Doodad() : doodad(0), on(0) {}
union _XkbDoodad *doodad;
int on;
};
struct DrawingKey : public DrawingItem {
DrawingKey() : xkbkey(0), pressed(false), keycode(0) {}
struct _XkbKey *xkbkey;
bool pressed;
unsigned int keycode;
};
struct KeyboardDrawingGroupLevel {
int group;
int level;
};
class KeyboardLayoutWidget : public QWidget {
Q_OBJECT
public:
explicit KeyboardLayoutWidget(QWidget *parent = 0);
virtual ~KeyboardLayoutWidget();
void setGroup(int group);
void setKeyboardLayout(const QString &layout, const QString &variant);
void generatePixmap(bool force = false);
protected:
void keyPressEvent(QKeyEvent *event) override;
void keyReleaseEvent(QKeyEvent *event) override;
void paintEvent(QPaintEvent *event) override;
void init();
void alloc();
void release();
void initInicatorDoodad(union _XkbDoodad *xkbdoodad, Doodad &doodad);
unsigned int findKeycode(const char *keyName);
void rotateRectangle(int origin_x, int origin_y, int x, int y, int angle,
int &rotated_x, int &rotated_y);
bool parseXkbColorSpec(char *colorspec, QColor &color);
void initColors();
void focusOutEvent(QFocusEvent *event) override;
void drawKey(QPainter *painter, DrawingKey *item);
void drawDoodad(QPainter *painter, Doodad *doodad);
void drawKeyLabel(QPainter *painter, unsigned int keycode, int angle,
int arg4, int originY, int x2, int y2, bool pressed);
void drawKeyLabelHelper(QPainter *painter, const QString &text, int angle,
int glp, int end_glp, int x, int y, int width,
int height, int padding, bool is_pressed);
void drawShapeDoodad(QPainter *painter, Doodad *doodad,
struct _XkbShapeDoodad *shapeDoodad);
void drawTextDoodad(QPainter *painter, Doodad *doodad,
struct _XkbTextDoodad *textDoodad);
void drawIndicatorDoodad(QPainter *painter, Doodad *doodad,
struct _XkbIndicatorDoodad *indicatorDoodad);
int calcShapeOriginOffsetX(struct _XkbOutline *outline);
void drawOutline(QPainter *painter, struct _XkbOutline *outline,
QColor color, int angle, int originX, int originY);
void drawRectangle(QPainter *painter, QColor color, int angle, int xkb_x,
int xkb_y, int xkb_width, int xkb_height,
unsigned int radius);
void drawPolygon(QPainter *painter, QColor color, int originX, int originY,
struct _XkbPoint *points, unsigned int num_points,
unsigned int radius);
void rotateCoordinate(int originX, int originY, int x, int y, int angle,
int *rotated_x, int *rotated_y);
int xkbToPixmapCoord(int n);
double xkbToPixmapDouble(double d);
void roundedPolygon(QPainter *painter, bool filled, double radius,
const std::vector<QPointF> &points);
void drawCurveRectangle(QPainter *painter, bool filled, QColor color, int x,
int y, int width, int height, double radius);
void roundedCorner(QPainterPath &path, QPointF b, QPointF c, double radius);
void resizeEvent(QResizeEvent *event) override;
void setKeyboard(struct _XkbComponentNames *xkbDesc);
private:
void keyEvent(QKeyEvent *keyEvent);
QString keySymToString(unsigned long keysym);
QList<DrawingItem *> keyboardItems;
std::vector<DrawingKey> keys;
QList<Doodad *> physicalIndicators;
struct _XkbDesc *xkb = nullptr;
unsigned int l3mod = 0;
std::vector<QColor> colors;
QPixmap image;
double ratio = 1.0;
KeyboardDrawingGroupLevel **groupLevels;
bool trackModifiers = false;
int mods;
QMap<unsigned int, unsigned int> deadMap;
};
} // namespace kcm
} // namespace fcitx
#endif

73
layout/main.cpp Normal file
View File

@ -0,0 +1,73 @@
/*
* SPDX-FileCopyrightText: 2011~2011 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#include "config.h"
#include "keyboardlayoutwidget.h"
#include <QApplication>
#include <QCommandLineParser>
#include <QMainWindow>
#include <QMessageBox>
#include <QX11Info>
#include <fcitx-utils/i18n.h>
#include <fcitx-utils/standardpath.h>
int main(int argc, char *argv[]) {
qputenv("QT_QPA_PLATFORM", "xcb");
QApplication app(argc, argv);
app.setApplicationName(QLatin1String("kbd-layout-viewer"));
app.setApplicationVersion(QLatin1String(PROJECT_VERSION));
if (!QX11Info::isPlatformX11()) {
QMessageBox msgBox(QMessageBox::Critical, _("Error"),
_("This program only works on X11."));
msgBox.exec();
return 1;
}
QCommandLineParser parser;
parser.setApplicationDescription(_("A general keyboard layout viewer"));
parser.addHelpOption();
parser.addOptions(
{{{"g", "group"}, _("Keyboard layout <group> (0-3)"), _("group")},
{{"l", "layout"}, _("Keyboard <layout>"), _("layout")},
{{"v", "variant"}, _("Keyboard layout <variant>"), _("variant")}});
parser.process(app);
int group = -1;
QString variant, layout;
if (parser.isSet("group")) {
group = parser.value("group").toInt();
}
if (parser.isSet("layout")) {
layout = parser.value("layout");
}
if (parser.isSet("variant")) {
variant = parser.value("variant");
}
app.setAttribute(Qt::AA_UseHighDpiPixmaps);
QMainWindow mainWindow;
mainWindow.setWindowIcon(QIcon::fromTheme("input-keyboard"));
mainWindow.setWindowTitle(_("Keyboard Layout viewer"));
mainWindow.setMinimumSize(QSize(900, 400));
fcitx::kcm::KeyboardLayoutWidget widget;
if (group > 0 || layout.isNull()) {
if (group < 0)
group = 0;
widget.setGroup(group);
} else if (!layout.isNull()) {
widget.setKeyboardLayout(layout, variant);
}
mainWindow.setCentralWidget(&widget);
mainWindow.show();
return app.exec();
}

2
po/CMakeLists.txt Normal file
View File

@ -0,0 +1,2 @@
add_subdirectory(fcitx5-configtool)
add_subdirectory(org.fcitx.fcitx5.kcm)

View File

@ -0,0 +1 @@
fcitx5_install_translation(fcitx5-configtool)

View File

@ -0,0 +1,13 @@
ca
da
de
fr
he
ja
ko
ru
tr
vi
zh_CN
zh_TW

772
po/fcitx5-configtool/ca.po Normal file
View File

@ -0,0 +1,772 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2017
# Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>, 2017
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: Robert Antoni Buj i Gelonch <rbuj@fedoraproject.org>, 2017\n"
"Language-Team: Catalan (https://www.transifex.com/fcitx/teams/12005/ca/)\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr ""
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr ""
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr ""
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr ""
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr ""
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr ""
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr ""
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr ""
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr "Un visualitzador general de disposició de teclat"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr ""
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr ""
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr ""
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr "Qualsevol llengua"
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr ""
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr "Mètode d'entrada disponible:"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "No es pot connectar a fcitx amb DBus, està fcitx en execució?"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr ""
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr ""
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr ""
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr "Mètode d'entrada actual:"
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr ""
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "Predeterminat"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr ""
#: layout/main.cpp:26
msgid "Error"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr ""
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr ""
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr ""
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr ""
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr ""
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr ""
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr "Frontal"
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr ""
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr ""
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr "Nom del grup:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr "Grup:"
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr ""
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr ""
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr "Mètode d'entrada"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr ""
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr "Teclat <layout>"
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr "Visualitzador de disposició de teclat"
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr "Disposició del teclat <group> (0-3)"
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr "Disposició del teclat <variant>"
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr ""
"Disposició de teclat que s'ha d'utilitzar quan no hi ha cap mètode d'entrada "
"actiu"
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr "Visualitzador de disposició de teclat"
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr "Llengua:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr "Disposició:"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr ""
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr ""
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr ""
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr ""
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr "Mòdul"
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr ""
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr "Plurilingüe"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr "Grup nou"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr "No"
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr "Mo%stra sols la llengua actual"
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "Altres"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr ""
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr ""
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr "Cerca complements"
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr "Cerca el mètode d'entrada"
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr "Selecciona la &lletra..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr "Selecciona la disposició predeterminada"
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr ""
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr ""
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr "Mostra les opcions &avançades"
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr ""
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
"El primer mètode d'entrada serà l'estat inactiu. Generalment heu de posar "
"<b>Keyboard</b> o <b>Keyboard - <i>nom de disposició</i></b> en el primer "
"lloc."
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr ""
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr "Interfície d'usuari"
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr "Desconegut"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr "Variant:"
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr "Visualitza la disposició de teclat"
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr "Sí"
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: layout/main.cpp:36
msgid "group"
msgstr "grup"
#: layout/main.cpp:37
msgid "layout"
msgstr "disposició"
#: layout/main.cpp:38
msgid "variant"
msgstr "variant"

779
po/fcitx5-configtool/da.po Normal file
View File

@ -0,0 +1,779 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2017
# scootergrisen, 2021
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: scootergrisen, 2021\n"
"Language-Team: Danish (https://www.transifex.com/fcitx/teams/12005/da/)\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr "%1 - %2"
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr "%1 holdt op med at virke."
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr "%1 kunne ikke starte."
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr "&Anvend"
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr "&Annuller"
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr ""
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr "&Luk"
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr "&Næste >"
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr "&OK"
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr "&Nulstil"
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr "- Deaktivér %1\n"
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- Deaktivér nogle funktionaliteter i %1\n"
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr "En generel tastaturlayout-fremviser"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr "Tilføj"
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr ""
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr "Tilføjelser"
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr "Alle overførselsopgaver er fuldført."
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr "Vilkårligt sprog"
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr ""
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr "Spørger Fcitx om at afslutte ..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr "Tilgængelig inputmetode:"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "Kan ikke oprette forbindelse til Fcitx med DBus. Kører Fcitx?"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr "Skift inputmetode til at matche valget af layout."
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr "Skift systemets layout til at matche valget af inputmetode."
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr "Tjekker om Fcitx kører ..."
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr "Tjekker om Fcitx stadigvæk kører ..."
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr "Klik på en post for flere detaljer."
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr "Konfigurer"
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr "Konverter holdt op med at virke."
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr "Kopierer filen %1 til %2"
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr "Nuværende inputmetode:"
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr "Nuværende gruppe ændret"
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "Standard"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr "Mappen %1 findes ikke."
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr "Deaktivér %1"
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
"Deaktivering af %1 vil også:\n"
"%2%3\n"
"Er du sikker på, at du vil deaktivere den?"
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "Vil du ændre gruppe? Ændringerne til den nuværende vil gå tabt!"
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr "Ned"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr "Rediger"
#: layout/main.cpp:26
msgid "Error"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr "Kunne ikke kopiere filen %1 til %2"
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr "Kunne ikke oprette mappen %1."
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr "Kunne ikke hente konfiguration for %1"
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr "Kunne ikke starte DBus-kald."
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr ""
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr "Fcitx 5 kører ikke."
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr "Fcitx-konfiguration"
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr "Fcitx afsluttet."
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr "Fcitx er afsluttet helt."
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr "Fcitx er startet."
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr "Frontend"
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr "Global konfiguration"
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr "Globale valgmuligheder"
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr "Fik fejl: %1 %2"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr "Gruppenavn:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr "Gruppe:"
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr "Importér Pinyin-ordbog fra Fcitx 4"
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr "Importér tabeldata for installeret tabel fra Fcitx 4"
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr "Inputmetode"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr ""
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr "Tastatur <layout>"
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr "Tastaturlayout-fremviser"
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr "Tastaturlayout <gruppe> (0-3)"
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr "Tastaturlayout <variant>"
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr "Tastaturlayout som skal bruges når der ikke er nogen aktiv inputmetode"
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr "Tastaturlayout-fremviser"
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr "Kkc"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr "Sprog:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr "Layout:"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr "Indlæser"
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr "Overfør data fra Fcitx 4"
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr "Overfør Kkc-ordbog fra Fcitx 4"
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr ""
"Overfør Rime-ordbog fra Fcitx 4. Bemærk: det fjerner al eksisterende data."
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr "Overfør Skk-ordbog fra Fcitx 4"
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr "Overfør global tastvalgmulighed fra Fcitx 4"
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr "Overfør valgmulighed for Kkc-regel ..."
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr "Overfører Pinyin-data ..."
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr "Overfør valgmulighed for Skk-regel ..."
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr "Overfør tastvalgmulighed for global hottast ..."
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr "Overførelsesværktøj"
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr "Modul"
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr ""
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr "Flersproget"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr "Ny gruppe"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr "Nej"
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr "En af opgaverne mislykkedes. Afslutter øverførelsen."
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr "&Vis kun nuværende sprog"
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "Andre"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr "Pinyin"
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr "Pinyin-data er overført."
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr "Fjern"
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr ""
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr "Gendan &standarder"
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr "Rime"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr "Kør Fcitx 5"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr "Søg efter tilføjelser"
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr "Søg efter inputmetode"
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr "Vælg &alle"
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr "Vælg &skrifttype ..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr "Vælg layout"
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr "Vælg standardlayout"
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr "Vælg overførelsesopgaver"
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr "Vælg systemets tastaturlayout"
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr "Tjenesten %1 findes ikke på DBus."
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr "Tjenesten %1 findes stadigvæk på DBus."
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr "Vis &avancerede valgmuligheder"
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr "Skk"
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr "Tabel"
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
"Den første inputmetode vil være i inaktiv tilstand. Typisk skal der først "
"stå <b>Tastatur</b> eller <b>Tastatur - <i>layoutnavn</i></b>."
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr ""
"Assistenten hjælper dig med at overføre eksisterende brugerdata fra Fcitx 4 "
"til Fcitx 5"
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr "Prøv at overføre tabelfil: %1 ..."
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr "Brugerflade"
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr "Ukendt"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr "Op"
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr "Variant:"
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr "Vis tastaturlayout"
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr "WelcomePage"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr "Ja"
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"Din nuværende konfigurerede inputmetode matcher ikke dit layout. Vil du "
"skifte layoutindstillingen?"
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"Din nuværende konfigurerede inputmetode matcher ikke dit layout. Vil du "
"tilføje layoutets tilhørende inputmetode?"
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: layout/main.cpp:36
msgid "group"
msgstr "gruppe"
#: layout/main.cpp:37
msgid "layout"
msgstr "layout"
#: layout/main.cpp:38
msgid "variant"
msgstr "variant"

776
po/fcitx5-configtool/de.po Normal file
View File

@ -0,0 +1,776 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2017
# mar well <m.wellendorf@gmx.de>, 2018
# Ettore Atalan <atalanttore@googlemail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>, 2022\n"
"Language-Team: German (https://www.transifex.com/fcitx/teams/12005/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr "%1 - %2"
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr "%1 abgestürzt."
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr "&Anwenden"
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr "&Abbrechen"
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr "&Löschen"
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr "&Schließen"
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr "&Weiter >"
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr "&OK"
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr "&Zurücksetzen"
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr "- %1 deaktivieren\n"
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr "Ein allgemeiner Betrachter für Tastaturlayouts"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr "Hinzufügen"
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr "Gruppe hinzufügen"
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr ""
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr ""
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr "Jede Sprache"
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr "Konfigurationsänderungen anwenden"
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr "Verfügbare Eingabemethoden"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "DBus kann sich nicht mit FCITX verbinden. Läuft FCITX?"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr "Eingabemethode wechseln, um mit der Layoutauswahl übereinzustimmen."
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr ""
"Systemlayout ändern, um mit der Eingabemethodenauswahl übereinzustimmen"
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr "Konfigurieren"
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr "Konverter abgestürzt."
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr "Datei %1 wird nach %2 kopiert"
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr "Aktive Eingabemethode:"
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr "Gegenwärtige Gruppe geändert"
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "Standard"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr "Gruppe löschen"
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr "Verzeichnis %1 existiert nicht."
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr "%1 deaktivieren"
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr "Herunter"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr "Bearbeiten"
#: layout/main.cpp:26
msgid "Error"
msgstr "Fehler"
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr ""
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr ""
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr ""
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr "Fcitx 5 Konfiguration"
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr "Fcitx 5 Migrationsassistent"
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr "Fcitx 5 läuft nicht."
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr "Fcitx-Konfiguration"
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr "Fcitx ist gestartet."
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr "Frontend"
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr ""
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr "Globale Optionen"
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr "Fehler erhalten: %1 %2"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr "Gruppenname:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr "Gruppe:"
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr ""
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr ""
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr "Eingabemethode"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr ""
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr "Tastatur <layout>"
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr "Ansicht Tastaturlayout"
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr "Tastaturlayout <group> (0-3)"
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr "Tastaturlayout <variant>"
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr "Verwendetes Tastaturlayout wenn keine Eingabemethode Aktiv ist"
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr "Tastaturlayout-Betrachter"
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr "Sprache:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr "Layout:"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr "Starter"
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr "Daten aus Fcitx 4 migrieren"
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr ""
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr ""
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr ""
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr "Migrationswerkzeug"
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr "Modul"
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr "Nach unten verschieben"
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr "Nach oben verschieben"
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr "Mehrsprachig"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr "Neue Gruppe"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr "Nein"
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr "Nur &gegenwärtige Sprache anzeigen"
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "Andere"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr "Entfernen"
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr "Neustart"
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr "&Standardeinstellungen wiederherstellen"
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr "Fcitx 5 ausführen"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr "Addons suchen"
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr "Eingabemethoden filtern"
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr "&Alles auswählen"
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr "Auswahl &Font"
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr "Standardlayout auswählen"
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr "Migrationsaufgaben auswählen"
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr "Systemtastatur auswählen"
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr ""
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr "&Fortgeschrittene Optionen anzeigen"
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr ""
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr "Tabelle"
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
"Die erste Eingabemethode wird die inaktive sein. Normalerweise sollte "
"<b>Tastatur</b> oder <b>Tastatur - <i>Tastaturlayout</i></b> als Erstes "
"stehen."
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr "Dieses Programm funktioniert nur unter X11."
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr ""
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr "Benutzeroberfläche"
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr "Unbekannt"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr "Hoch"
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr "Variante:"
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr "Tastaturlayout ansehen"
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr "WillkommensSeite"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr "Ja"
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"Ihre gegenwärtig ausgewählte Eingabemethode passt nicht zu Ihrem Layout, "
"wollen sie die Layouteinstellungen ändern?"
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"Ihre gegenwärtig ausgewählte Eingabemethode passt nicht zu Ihrem Layout, "
"wollen sie passenden Layouteinstellungen hinzufügen?"
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: layout/main.cpp:36
msgid "group"
msgstr "Gruppe"
#: layout/main.cpp:37
msgid "layout"
msgstr "Layout"
#: layout/main.cpp:38
msgid "variant"
msgstr "Variante"

View File

@ -0,0 +1,762 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-08-16 20:24+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: LANG\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr ""
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr ""
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr ""
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr ""
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr ""
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr ""
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr ""
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr ""
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr ""
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr ""
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr ""
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr ""
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr ""
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr ""
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr ""
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr ""
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr ""
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr ""
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr ""
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr ""
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr ""
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr ""
#: layout/main.cpp:26
msgid "Error"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr ""
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr ""
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr ""
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr ""
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr ""
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr ""
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr ""
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr ""
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr ""
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr ""
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr ""
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr ""
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr ""
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr ""
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr ""
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr ""
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr ""
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr ""
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr ""
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr ""
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr ""
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr ""
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr ""
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr ""
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr ""
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr ""
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr ""
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr ""
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr ""
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr ""
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr ""
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr ""
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr ""
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr ""
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr ""
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr ""
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr ""
#: layout/main.cpp:36
msgid "group"
msgstr ""
#: layout/main.cpp:37
msgid "layout"
msgstr ""
#: layout/main.cpp:38
msgid "variant"
msgstr ""

801
po/fcitx5-configtool/fr.po Normal file
View File

@ -0,0 +1,801 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# roxfr <roxfr@outlook.fr>, 2022
# csslayer <wengxt@gmail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-08-16 20:24+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: csslayer <wengxt@gmail.com>, 2022\n"
"Language-Team: French (https://www.transifex.com/fcitx/teams/12005/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
"1000000 == 0 ? 1 : 2;\n"
#: src/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr "%1 -%2"
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr "%1 a planté."
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr "%1 n'a pas pu démarrer."
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr "%1  :"
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr "&Appliquer"
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr "&Annuler"
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr "&Effacer"
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr "&Fermer"
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr "&Suivant >"
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr "&OK"
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr "&Réinitialiser"
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr "- Désactiver %1\n"
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- Désactiver certaines fonctionnalités dans %1\n"
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr "Un visualiseur de disposition du clavier général"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr "Ajouter"
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr "Ajouter un groupe"
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr "Modules complémentaires"
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr "Toutes les tâches de migration sont terminées avec succès."
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr "N'importe quelle langue"
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr "Appliquer les changements de configuration"
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr "Demande à Fcitx de quitter..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr "Méthode de saisie disponible :"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr ""
"Impossible de se connecter à Fcitx par DBus, Fcitx est-il en cours "
"d'exécution  ?"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr "Modifier la configuration de Fcitx 5"
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr ""
"Modifier la méthode d'entrée pour correspondre à la sélection de la "
"disposition."
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr ""
"Modifier la disposition du système pour correspondre à la sélection de la "
"méthode d'entrée."
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr "Vérifier si Fcitx est en cours d'exécution..."
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr "Vérifier si Fcitx est toujours en cours d'exécution..."
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr "Cliquer sur un élément pour plus de détails."
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr "Configurer"
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr "Le convertisseur a planté."
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr "Copie du fichier %1 vers %2"
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr "Méthode d'entrée actuelle :"
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr "Le groupe actuel a changé"
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "Par défaut"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr "Supprimer le groupe"
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr "Le répertoire %1 n'existe pas."
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr "Désactiver %1"
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
"La désactivation de %1 permettra également :\n"
"%2%3\n"
"Êtes-vous sûr de vouloir le désactiver ?"
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
"Voulez-vous changer de groupe ? Les modifications apportées au groupe actuel "
"seront perdues !"
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr "Voulez-vous enregistrer les modifications ou les annuler ?"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr "En bas"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr "Modifier"
#: layout/main.cpp:26
msgid "Error"
msgstr "Erreur"
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr "Échec de la copie du fichier %1 vers %2"
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr "Échec de création du répertoire %1."
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr "Échec de récupération de la configuration pour %1"
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr "Échec du démarrage de l'appel DBus."
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr "Configuration Fcitx 5"
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr "Assistant de migration Fcitx 5"
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr "Fcitx 5 n'est pas en cours d'exécution."
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr "Configuration Fcitx"
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr "Fcitx a quitté."
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr "Fcitx est complètement fermé."
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr "Fcitx est démarré."
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"Mises à jour trouvées pour l'installation de fcitx. Voulez-vous vérifier les "
"méthodes de saisie et les modules complémentaires nouvellement installés ? "
"Pour mettre à jour les modules complémentaires déjà chargés, fcitx doit être "
"redémarré."
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr ""
"Mises à jour trouvées pour l'installation de fcitx. Voulez-vous redémarrer "
"Fcitx ?"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr "Frontal"
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr "Configuration globale"
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr "Options globales"
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr "Erreur : %1 %2"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr "Nom du groupe :"
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr "Groupe :"
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr "Importer le dictionnaire Pinyin depuis Fcitx 4"
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr ""
"Importer des données à partir d'une autre méthode d'entrée telle que Fcitx 4"
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr ""
"Importer les données de la table pour la table installée depuis Fcitx 4"
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr "Méthode de saisie"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr "Configuration de la méthode d'entrée"
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr "Clavier <layout>"
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr "Visionneuse de disposition de clavier"
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr "Disposition du clavier<group> (0-3)"
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr "Disposition du clavier <variant>"
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr ""
"Disposition du clavier à utiliser lorsqu'aucune méthode de saisie n'est "
"active"
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr "Visionneuse de disposition de clavier"
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr "Kkc"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr "Langue :"
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr "Disposition"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr "Disposition :"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr "Chargeur"
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr "Migrer les données depuis Fcitx 4"
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr "Migrer le dictionnaire Kkc depuis Fcitx 4"
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr ""
"Migrer le dictionnaire Rime de Fcitx 4. Remarque : cela supprimera toutes "
"les données existantes."
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr "Migrer le dictionnaire Skk depuis Fcitx 4"
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr "Option de migration de clé globale depuis Fcitx 4"
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr "Migration de l'option de règle Kkc..."
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr "Migration des données Pinyin..."
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr "Migration de l'option de règle Skk..."
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr "Migration de l'option de touche de raccourci globale..."
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr "Outil de migration"
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr "Module"
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr "Déplacer vers le bas"
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr "Déplacer vers le haut"
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr "Multilingue"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr "Nouveau groupe"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr "Non"
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr "L'une des tâches a échoué. Arrêt de la migration."
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr "&Afficher uniquement la langue actuelle"
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "Autre"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr "Pinyin"
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr "Les données Pinyin sont migrées."
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr "Supprimer"
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr "Redémarrer"
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr "Restaurer les &défauts"
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr "Rime"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr "Exécuter Fcitx 5"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr "Modules de recherche"
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr "Méthode d'entrée de recherche"
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr "Sélectionner &tout"
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr "Sélectionner la &police..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr "Sélectionner la disposition"
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr "Sélectionner la disposition par défaut"
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr "Sélectionner les tâches de migration"
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr "Sélectionner la disposition du clavier système"
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr "Le service %1 n'est pas présent sur DBus."
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr "Le service %1 est toujours présent sur DBus."
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr "Afficher les options &avancées"
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr "Skk"
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr "Tableau"
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
"La première méthode d'entrée sera l'état inactif. Habituellement, vous devez "
"mettre<b> Clavier</b>ou <b>Clavier - <i>nom de la disposition</i></b> en "
"premier lieu."
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr "Ce programme ne fonctionne que sur X11."
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr ""
"Cet assistant vous aidera à migrer les données utilisateur existantes de "
"Fcitx 4 vers Fcitx 5"
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr "Essayez de migrer le fichier de table : %1..."
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr "Interface Utilisateur"
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr "Inconnu"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr "Haut"
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr "Mettre à jour"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr "Variante :"
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr "Afficher la disposition du clavier"
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr "Page d'accueil"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr "Oui"
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"Votre méthode de saisie actuellement configurée ne correspond pas à votre "
"disposition, voulez-vous modifier le paramètre de la disposition ?"
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"Votre méthode de saisie actuellement configurée ne correspond pas à la "
"disposition sélectionnée, voulez-vous ajouter la méthode de saisie "
"correspondante pour la disposition ?"
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: layout/main.cpp:36
msgid "group"
msgstr "groupe"
#: layout/main.cpp:37
msgid "layout"
msgstr "disposition"
#: layout/main.cpp:38
msgid "variant"
msgstr "variante"

767
po/fcitx5-configtool/he.po Normal file
View File

@ -0,0 +1,767 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# Omer I.S. <omeritzicschwartz@gmail.com>, 2021
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: Omer I.S. <omeritzicschwartz@gmail.com>, 2021\n"
"Language-Team: Hebrew (https://www.transifex.com/fcitx/teams/12005/he/)\n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
"1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
#: src/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr ""
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr ""
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr ""
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr ""
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr ""
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr ""
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr ""
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr ""
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr ""
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr ""
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr ""
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr "הוספה"
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr ""
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr ""
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr ""
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr "כל שפה"
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr ""
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr ""
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr ""
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr "הגדרה"
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr ""
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr ""
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "ברירת מחדל"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr ""
#: layout/main.cpp:26
msgid "Error"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr ""
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr ""
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr ""
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr ""
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr ""
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr ""
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr "ממשק גרפי"
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr ""
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr ""
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr "שם קבוצה:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr ""
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr ""
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr ""
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr ""
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr ""
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr ""
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr ""
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr ""
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr "מציג פריסות מקלדת"
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr "שפה:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr "פריסה:"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr ""
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr ""
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr ""
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr ""
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr ""
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr "קבוצה חדשה"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr "לא"
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr ""
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "שונות"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr "פיניין"
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr ""
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr ""
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr ""
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr ""
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr ""
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr ""
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr ""
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr ""
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr ""
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr "ממשק משתמש"
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr ""
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr "כן"
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr ""
#: layout/main.cpp:36
msgid "group"
msgstr ""
#: layout/main.cpp:37
msgid "layout"
msgstr ""
#: layout/main.cpp:38
msgid "variant"
msgstr ""

787
po/fcitx5-configtool/ja.po Normal file
View File

@ -0,0 +1,787 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2017
# ABE Tsunehiko, 2017
# Takuro Onoue <kusanaginoturugi@gmail.com>, 2020
# UTUMI Hirosi <utuhiro78@yahoo.co.jp>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: UTUMI Hirosi <utuhiro78@yahoo.co.jp>, 2022\n"
"Language-Team: Japanese (https://www.transifex.com/fcitx/teams/12005/ja/)\n"
"Language: ja\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/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr "%1 - %2"
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr "%1 がクラッシュしました。"
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr "%1 を開始できませんでした。"
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr "適用(&A)"
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr "キャンセル(&C)"
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr "クリア(&C)"
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr "閉じる(&C)"
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr "次へ(&N) >"
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr "&OK"
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr "リセット(&R)"
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr "- %1 を無効にする\n"
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- %1 の一部の機能を無効にする\n"
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr "一般的なキーボドレイアウトビューアー"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr "追加"
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr "グループを追加"
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr "アドオン"
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr "すべての移行タスクが正常に完了しました。"
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr "すべての言語"
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr "設定の変更を適用する"
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr "Fcitxに終了を要求しています..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr "有効な入力メソッド:"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "DBusがFcitxと接続できませんでした。Fcitxは動いていますか?"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr "Fcitx 5 の設定を変更"
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr "レイアウトの選択に一致するように入力メソッドを変更します。"
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr "入力メソッドの選択に一致するようにシステムレイアウトを変更します。"
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr "Fcitxが実行中か確認しています..."
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr "Fcitxがまだ実行中か確認しています..."
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr "詳細についてはアイテムをクリックしてください。"
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr "設定"
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr "コンバーターがクラッシュしました。"
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr "ファイル %1 を %2 にコピーしています"
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr "現在の入力メソッド:"
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr "現在のグループを変更しました"
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "デフォルト"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr "グループを削除"
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr "ディレクトリ %1 は存在しません。"
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr "%1 を無効にする"
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
"%1 を無効にすると次のようにもなります:\n"
"%2 %3\n"
"無効にしますか?"
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "グループを変更しますか?現在のグループへの変更は失われます!"
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr "変更を保存しますか、それとも破棄しますか?"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr "下へ"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr "編集"
#: layout/main.cpp:26
msgid "Error"
msgstr "エラー"
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr "ファイル %1 を %2 にコピーできませんでした"
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr "ディレクトリ %1 の作成に失敗しました。"
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr "%1 の設定の取得に失敗しました"
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr "DBus Call の開始に失敗しました。"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr "Fcitx 5 の設定"
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr "Fcitx 5 移行ウィザード"
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr "Fcitx 5 が実行されていません。"
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr "Fcitx の設定"
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr "Fcitx が終了しました。"
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr "Fcitx は完全に終了します。"
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr "Fcitx が開始されます。"
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"fcitx のアップデートが見つかりました。新しくインストールされる入力メソッドと"
"アドオンを確認しますかすでにロードされているアドオンを更新するには、fcitx "
"を再起動する必要があります。"
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr ""
"Fcitx インストールのアップデートが見つかりました。Fcitx を再起動しますか?"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr "フロントエンド"
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr "グローバル設定"
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr "グローバルオプション"
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr "エラーが発生しました: %1 %2"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr "グループ名:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr "グループ:"
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr "Fcitx 4 からピンイン辞書をインポートする"
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr "Fcitx 4 などの他の入力メソッドからデータをインポートする"
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr "Fcitx 4 からインストール済みテーブルのデータをインポートする"
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr "入力メソッド"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr "入力メソッドの設定"
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr "キーボード <layout>"
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr "キーボードレイアウトビューアー"
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr "キーボードレイアウト <group> (0-3)"
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr "キーボードレイアウト <variant>"
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr "どの入力メソッドが有効でない場合のキーボードレイアウト"
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr "キーボードレイアウトビューアー"
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr "kkc"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr "言語:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr "レイアウト"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr "レイアウト:"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr "ローダー"
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr "Fcitx 4 からデータを移行する"
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr "Fcitx 4 から kkc 辞書を移行する"
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr ""
"Fcitx 4 から Rime 辞書を移行します。注意: これにより既存のデータがすべて削除"
"されます。"
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr "Fcitx 4 から SKK 辞書を移行する"
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr "Fcitx 4 からグローバルキーオプションを移行する"
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr "kkc ルールオプションを移行しています..."
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr "ピンインデータを移行しています..."
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr "SKK ルールオプションを移行しています..."
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr "グローバルホットキーオプションを移行しています..."
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr "移行ツール"
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr "モジュール"
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr "下に移動"
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr "上に移動"
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr "多言語"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr "新しいグループ"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr "いいえ"
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr "タスクの1つが失敗しました。移行を終了します。"
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr "現在の言語のみ表示(&S)"
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "その他"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr "ピンイン"
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr "ピンインデータが移行されます。"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr "削除"
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr "再起動"
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr "デフォルトに戻す(&D)"
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr "Rime"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr "Fcitx 5 を実行する"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr "アドオンの検索"
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr "入力メソッドの検索"
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr "すべて選択(&A)"
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr "フォントを選択(&F)..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr "レイアウトを選択"
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr "デフォルトのレイアウトを選択"
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr "移行タスクを選択"
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr "システムキーボードのレイアウトを選択"
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr "サービス %1 は DBus に存在しません。"
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr "サービス %1 はまだ DBus に存在します。"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr "拡張オプションの表示(&A)"
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr "SKK"
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr "テーブル"
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
"第1入力メソッドは非アクティブ状態になります。通常は第1入力メソッドとして <b>"
"キーボード</b> または <b>キーボード - <i>レイアウト名</i></b> を置く必要があ"
"ります。"
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr "このプログラムは X11 でのみ動作します。"
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr ""
"このウィザードは、既存のユーザーデータを Fcitx 4 から Fcitx 5 に移行するのに"
"役立ちます"
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr "テーブルファイルの移行を試みています: %1 ..."
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr "UI"
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr "不明"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr "上へ"
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr "更新"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr "バリアント:"
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr "キーボードレイアウトを見る"
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr "ウェルカムページ"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr "はい"
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"現在設定されている入力メソッドがレイアウトと一致しません。レイアウト設定を変"
"更しますか?"
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"現在設定されている入力メソッドが選択したレイアウトと一致しません。対応する入"
"力メソッドをレイアウトに追加しますか?"
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: layout/main.cpp:36
msgid "group"
msgstr "グループ"
#: layout/main.cpp:37
msgid "layout"
msgstr "レイアウト"
#: layout/main.cpp:38
msgid "variant"
msgstr "バリアント"

782
po/fcitx5-configtool/ko.po Normal file
View File

@ -0,0 +1,782 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2017
# Bon Keun Seo <scobyseo@gmail.com>, 2021
# Junghee Lee <daemul72@gmail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: Junghee Lee <daemul72@gmail.com>, 2022\n"
"Language-Team: Korean (https://www.transifex.com/fcitx/teams/12005/ko/)\n"
"Language: ko\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/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr "%1 - %2"
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr "%1 충돌함."
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr "%1을(를) 시작하지 못함."
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr "적용(&A)"
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr "취소(&C)"
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr "지우기(&C)"
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr "닫기(&C)"
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr "다음(&N)>"
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr "확인(&O)"
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr "재설정(&R)"
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr "- %1 비활성화\n"
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- %1의 일부 기능 비활성화\n"
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr "일반 키보드 자판 보기도구"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr "추가"
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr "그룹 추가"
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr "애드온"
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr "모든 마이그레이션 작업이 성공적으로 완료되었습니다."
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr "모든 언어"
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr "구성 변경사항 적용"
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr "Fcitx를 종료하도록 요청하는 중..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr "사용가능한 입력기:"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "DBus로 Fcitx에 연결할 수 없습니다. Fcitx가 실행되고 있습니까?"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr "Fcitx5 구성 변경"
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr "선택된 자판에 맞게 입력기 변경"
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr "입력기 선택과 일치하도록 시스템 자판을 변경합니다."
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr "Fcitx가 실행 중인지 확인하는 중..."
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr "Fcitx가 여전히 실행 중인지 확인하는 중..."
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr "자세한 내용을 보려면 항목을 클릭합니다."
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr "구성하기"
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr "변환도구 충돌함."
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr "파일 %1을 %2로 복사 중"
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr "현재 입력기:"
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr "현재 그룹이 변경됨"
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "기본값"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr "그룹 삭제"
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr "%1 디렉토리가 없어요."
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr "%1 비활성화"
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
"%1을 해제하면 %2%3도 함께 꺼집니다.\n"
"정말로 해제하실 건가요?"
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "그룹을 변경하시겠습니까? 현재 그룹에 대한 변경 사항은 손실됩니다!"
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr "변경 사항을 저장하시겠습니까 아니면 삭제하시겠습니까?"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr "아래쪽"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr "편집"
#: layout/main.cpp:26
msgid "Error"
msgstr "오류"
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr "%1 파일을 %2로 복사하지 못했어요"
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr "%1디렉토리를 생성하지 못했어요"
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr "%1의 구성을 가져오지 못했어요"
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr "DBus 호출을 시작하지 못했습니다."
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr "Fcitx5 구성"
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr "Fcitx5 마이그레이션 마법사"
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr "Fcitx5가 실행되고 있지 않습니다."
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr "Fcitx 구성"
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr "Fcitx가 종료되었습니다."
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr "Fcitx가 완전히 종료되었습니다."
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr "Fcitx가 시작됩니다."
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"Fcitx 설치에 대한 업데이트를 찾았습니다. 새로 설치된 입력기 및 추가 기능을 확"
"인하시겠습니까? 이미 불러온 추가 기능을 업데이트하려면 Fcitx를 다시 시작해야 "
"합니다."
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr "전처리기"
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr "전역 구성"
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr "전역 옵션"
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr "오류: %1 %2"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr "그룹 이름:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr "그룹:"
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr "Fcitx 4에서 Pinyin 사전 가져오기"
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr "Fcitx 4와 같은 다른 입력기에서 데이터 가져오기"
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr "Fcitx 4에서 설치된 테이블의 테이블 데이터 가져오기"
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr "입력기"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr "입력기 구성"
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr "키보드 <자판>"
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr "키보드 자판 보기도구"
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr "키보드 자판 <그룹> (0-3)"
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr "키보드 자판 <변형>"
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr "활성 입력기가 없을 때 사용할 키보드 자판"
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr "키보드 자판 보기도구"
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr "Kkc"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr "언어:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr "자판"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr "자판:"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr "불러오기 도구"
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr "Fcitx 4에서 데이터 마이그레이션"
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr "Fcitx 4에서 Kkc 사전 마이그레이션"
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr ""
"Fcitx 4에서 Rime 사전을 마이그레이션합니다. 참고: 기존 데이터가 모두 제거됩니"
"다."
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr "Fcitx 4에서 Skk 사전 마이그레이션"
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr "Fcitx 4에서 전역 키 옵션 마이그레이션"
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr "Kkc 규칙 옵션을 마이그레이션하는 중..."
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr "Pinyin 데이터를 마이그레이션하는 중..."
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr "Skk 규칙 옵션을 마이그레이션하는 중..."
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr "전역 단축키 키 옵션을 마이그레이션하는 중..."
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr "마이그레이션 도구"
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr "모듈"
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr "아래로 이동"
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr "위로 이동"
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr "다국어"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr "새 그룹"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr "아니오"
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr "작업 중 하나가 실패했습니다. 마이그레이션을 종료하고 있습니다."
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr "현재 언어만 표시(&S)"
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "기타"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr "Pinyin"
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr "Pinyin 데이터가 마이그레이션됩니다."
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr "제거"
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr "재시작"
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr "기본값 복원(&D)"
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr "Rime"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr "Fcitx5 실행"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr "애드온 검색"
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr "입력기 검색"
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr "모두 선택(&A)"
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr "글꼴 선택(&F)"
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr "자판 선택"
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr "기본 자판 선택"
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr "마이그레이션 작업 선택"
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr "시스템 키보드 자판 선택"
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr "%1 서비스가 DBus에 없습니다."
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr "%1 서비스가 여전히 DBus에 있습니다."
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr "고급 옵션 표시(&A)"
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr "Skk"
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr "표"
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
"첫번째 입력기가 비활성화 상태입니다. 대체로 <b>키보드</b> 또는 <b>키보드 - "
"<i> 자판명 </i> </b>을 첫 항목으로 하여야 합니다."
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr "이 프로그램은 X11에서만 작동합니다."
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr ""
"이 마법사는 기존 사용자 데이터를 Fcitx 4에서 Fcitx5로 옮기는 것을 도와줄 거에"
"요."
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr "표 파일을 옮기려고 시도: %1 ..."
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr "사용자 인터페이스"
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr "알 수 없음 "
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr "위쪽"
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr "업데이트"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr "변형:"
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr "키보드 자판 보기"
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr "시작 페이지"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr "예"
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"현재 구성된 입력기가 자판과 맞지 않습니다. 자판 구성을 변경하시겠습니까?"
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"현재 구성된 입력기가 선택한 자판과 맞지 않습니다. 자판에 적합한 입력기를 추가"
"하시겠습니까?"
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: layout/main.cpp:36
msgid "group"
msgstr "그룹"
#: layout/main.cpp:37
msgid "layout"
msgstr "자판"
#: layout/main.cpp:38
msgid "variant"
msgstr "변형"

787
po/fcitx5-configtool/ru.po Normal file
View File

@ -0,0 +1,787 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2017
# TotalCaesar659 <x24cm5b8c54q6szxw@yandex.ru>, 2017
# Dmitry <dmitrydmitry761@gmail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: Dmitry <dmitrydmitry761@gmail.com>, 2022\n"
"Language-Team: Russian (https://www.transifex.com/fcitx/teams/12005/ru/)\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
"(n%100>=11 && n%100<=14)? 2 : 3);\n"
#: src/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr "%1 - %2"
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr "%1 повреждён."
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr "%1 не удалось начать. "
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr "&Применить"
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr "&Отмена"
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr "&Очистить"
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr "&Закрыть"
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr "&Следующее >"
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr "&OK"
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr "&Перезагрузить"
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr "- Отключить %1\n"
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- Отключить некоторые функции в %1\n"
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr "Основной просмотрщик раскладки клавиатуры"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr "Добавить"
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr "Добавить группу"
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr "Аддоны"
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr "Все задачи перемещения успешно завершены."
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr "Любой язык"
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr "Применить изменения конфигурации"
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr "Прошу Fcitx выйти..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr "Доступный метод ввода:"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "Не удалось соединиться с Fcitx через DBus, запущен ли Fcitx?"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr "Изменить конфигурацию Fcitx 5"
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr "Измените Метод ввода, чтобы он соответствовал выбранной раскладке."
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr "Измените раскладку системы в соответствии с выбором метода ввода."
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr "Проверяем, запущен ли Fcitx..."
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr "Проверяем, работает ли Fcitx..."
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr "Нажмите на элемент для получения более подробной информации."
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr "Настроить"
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr "Сбой конвертера."
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr "Копирование файла %1 в %2"
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr "Текущий метод ввода:"
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr "Текущая группа изменена"
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "По умолчанию"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr "Удалить Группу"
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr "Каталог %1 не существует."
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr "Отключить %1"
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
"Отключить %1 также:\n"
"%2%3\n"
"Вы уверены, что хотите отключить?"
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "Вы хотите сменить группу? Изменения в текущей группе будут потеряны!"
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr "Вы хотите сохранить изменения или отказаться от них?"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr "Вниз"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr "Редактировать"
#: layout/main.cpp:26
msgid "Error"
msgstr "Ошибка"
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr "Не удалось скопировать файл %1 в %2"
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr "Не удалось создать каталог %1."
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr "Не удалось получить конфигурацию для %1"
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr "Не удалось запустить вызов DBus."
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr "Конфигурация Fcitx 5"
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr "Мастер Перемещения Fcitx 5"
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr "Fcitx 5 не запущен."
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr "Настройка Fcitx"
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr "Выход из Fcitx."
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr "Fcitx полностью закрыт."
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr "Fcitx запущен."
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"Найдены обновления для установки fcitx. Вы хотите проверить наличие недавно "
"установленных методов ввода и дополнений? Чтобы обновить уже загруженные "
"дополнения, необходимо перезапустить fcitx."
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr "Найдены обновления для установки fcitx. Вы хотите перезапустить Fcitx?"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr "Интерфейс"
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr "Общие настройки"
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr "Глобальные параметры"
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr "Получена ошибка: %1 %2"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr "Название группы:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr "Группа:"
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr "Импорт словаря Pinyin из Fcitx 4"
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr "Импорт данных из другого метода ввода, такого как Fcitx 4"
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr "Импорт данных таблицы для установленной таблицы из Fcitx 4"
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr "Метод ввода"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr "Настройка метода ввода"
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr "Клавиатура <layout>"
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr "Просмотрщик раскладки клавиатуры"
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr "Раскладка клавиатуры <group> (0-3)"
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr "Раскладка клавиатуры <variant>"
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr "Раскладка клавиатуры при неактивных методах ввода"
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr "Просмотрщик раскладки клавиатуры"
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr "Kkc"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr "Язык:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr "Раскладка"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr "Раскладка:"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr "Загрузчик"
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr "Перенос данных из Fcitx 4"
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr "Перенос словаря Kkc из Fcitx 4"
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr ""
"Перенесите словарь Rime из Fcitx 4. Обратите внимание: это удалит все "
"существующие данные."
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr "Перенос словаря Skk из Fcitx 4"
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr "Перенести глобальные ключевые параметры из Fcitx 4"
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr "Опция переноса правила Kkc..."
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr "Перенос данных Pinyin..."
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr "Опция переноса правила Skk..."
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr "Перенос глобальных параметров горячей клавиши..."
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr "Инструмент Перемещения"
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr "Модуль"
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr "Двигать Вниз"
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr "Двигать Вверх"
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr "Многоязычный"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr "Новая группа"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr "Нет"
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr "Одно из заданий не выполнено. Прекращение перемещения."
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr "&Показывать только текущий язык"
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "Другое"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr "Pinyin"
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr "Переносятся данные Pinyin."
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr "Удалить"
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr "Перезапустить"
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr "Восстановить &Значения по умолчанию"
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr "Rime"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr "Запустить Fcitx 5"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr "Найти дополнения"
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr "Поиск метода ввода"
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr "Выбрать &Все"
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr "Выбрать &шрифт..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr "Выбрать Раскладку"
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr "Выберите раскладку по умолчанию"
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr "Выберите задачи переноса"
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr "Выберите системную раскладку клавиатуры"
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr "Служба %1 не представлена на DBus."
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr "Служба %1 все еще присутствует на DBus."
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr "Показать &дополнительные настройки"
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr "Skk"
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr "Таблица"
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
"Первый метод ввода будет неактивным. Обычно вам потребуется установить "
"<b>Клавиатура</b> или <b>Клавиатура - <i>название раскладки</i></b> на "
"первое место."
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr "Эта программа работает только на X11."
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr ""
"Этот мастер поможет вам перенести существующие пользовательские данные с "
"Fcitx 4 на Fcitx 5."
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr "Попробуйте выполнить перенос файла таблицы: %1 ..."
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr "Графический интерфейс"
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr "Неизвестно"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr "Вверх"
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr "Обновить"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr "Вариант:"
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr "Просмотреть раскладку клавиатуры"
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr "Страница Приветствия"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr "Да"
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"Текущий настроенный метод ввода не соответствует раскладке. Хотите изменить "
"настройку раскладки?"
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"Ваш текущий метод ввода не соответствует выбранной раскладке. Вы хотите "
"добавить соответствующий метод ввода для раскладки?"
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: layout/main.cpp:36
msgid "group"
msgstr "group"
#: layout/main.cpp:37
msgid "layout"
msgstr "layout"
#: layout/main.cpp:38
msgid "variant"
msgstr "variant"

769
po/fcitx5-configtool/tr.po Normal file
View File

@ -0,0 +1,769 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2017
# abc Def <hdogan1974@gmail.com>, 2021
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: abc Def <hdogan1974@gmail.com>, 2021\n"
"Language-Team: Turkish (https://www.transifex.com/fcitx/teams/12005/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr "%1 - %2"
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr ""
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr ""
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr ""
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr ""
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr ""
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr ""
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr ""
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr "Genel bir klavye serilimi görüntüleyici"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr "Ekle"
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr "Grup Ekle"
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr "Eklentiler"
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr "Tüm göç etme görevleri başarıyla tamamlandı."
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr "Herhangi bir dil"
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr "Yapılandırma değişimlerini uygulayın"
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr "Kullanılabilir Giriş Yöntemi:"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "DBus tarafından Fcitx'e bağlanılamıyor, Fcitx çalışıyor mu?"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr "Fcitx 5 Yapılandırmasını Değiştirin"
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr ""
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr "Yapılandır"
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr ""
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr "Geçerli Giriş Yöntemi:"
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr "Geçerli grup değişti"
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "Varsayılan"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr "Grubu Sil"
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr "Aşağı"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr "Düzenle"
#: layout/main.cpp:26
msgid "Error"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr ""
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr ""
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr ""
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr "Fcitx 5 Yapılandırması"
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr "Fcitx 5 Göç Etme Sihirbazı"
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr ""
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr "Fcitx Yapılandırması"
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr "Fcitx başlatıldı."
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr ""
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr "Küresel Yapılandırma"
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr "Küresel Tercihler"
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr "Grup Adı:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr "Grup:"
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr ""
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr ""
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr "Girdi Yöntemi"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr "Girdi Yöntemi Yapılandırması"
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr "Klavye"
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr "Klavye Serilimi görüntüleyici"
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr "Klavye düzen (0-3)"
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr "Klavye Düzeni"
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr "Giriş yöntemi etkin değilken kullanılacak klavye düzeni"
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr "Klavye Düzeni görüntüleyici"
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr "Kkc"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr "Dil:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr "Serilim"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr "Serilim:"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr "Yükleyici"
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr ""
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr ""
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr ""
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr ""
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr "Göçme Aracı"
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr "Modül"
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr "Aşağı Taşı"
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr "Yukarı Taşı"
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr "Çok dilli"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr "Yeni Grup"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr "Hayır"
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr "Göster :&Sadece Geçerli Dili"
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "Diğer"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr "Pinyin"
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr "Kaldır"
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr "Yeniden Başlat"
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr ""
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr "Fcitx 5'i Çalıştır"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr "Eklentileri Ara"
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr "Giriş Yöntemi Ara"
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr "Seç &Yazı tipi..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr "Serilimi Seçin"
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr "Varsayılan serilimi seçin"
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr "Göçme görevlerini seçin"
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr "Sistem klavye serilimini seçin"
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr ""
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr ""
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr ""
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
"İlk giriş yöntemi aktif değildirr. Genellikle <b> Klavye </ b> veya <b> "
"Klavye - <i> düzen adı </ i> </ b> koymanız gerekir."
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr ""
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr "UI"
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr "Bilinmeyen"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr "Yukarı"
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr "Güncelle"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr ""
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr "Klavye serilimini görüntüle"
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr "Hoşgeldin Sayfası"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr "Evet"
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: layout/main.cpp:36
msgid "group"
msgstr "grup"
#: layout/main.cpp:37
msgid "layout"
msgstr "düzeni"
#: layout/main.cpp:38
msgid "variant"
msgstr "türü"

766
po/fcitx5-configtool/vi.po Normal file
View File

@ -0,0 +1,766 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2017
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: csslayer <wengxt@gmail.com>, 2017\n"
"Language-Team: Vietnamese (https://www.transifex.com/fcitx/teams/12005/vi/)\n"
"Language: vi\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/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr ""
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr ""
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr ""
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr ""
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr ""
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr ""
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr ""
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr ""
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr ""
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr ""
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr ""
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr ""
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr ""
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr ""
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr ""
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr ""
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr ""
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr ""
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr ""
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr ""
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr ""
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr ""
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "Mặc định"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr ""
#: layout/main.cpp:26
msgid "Error"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr ""
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr ""
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr ""
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr ""
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr ""
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr ""
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr ""
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr ""
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr ""
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr ""
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr ""
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr ""
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr ""
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr "Kiểu gõ"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr ""
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr ""
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr ""
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr ""
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr ""
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr ""
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr ""
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr ""
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr ""
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr ""
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr ""
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr ""
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr ""
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr "Đa ngôn ngữ"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr ""
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr ""
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "Khác"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr ""
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr ""
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr ""
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr "Tìm kiếm Addons"
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr ""
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr "Chọn &Font..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr ""
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr ""
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr ""
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr ""
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr ""
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr ""
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr ""
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr ""
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr ""
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr "Không rõ"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr ""
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr ""
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr ""
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr ""
#: layout/main.cpp:36
msgid "group"
msgstr ""
#: layout/main.cpp:37
msgid "layout"
msgstr ""
#: layout/main.cpp:38
msgid "variant"
msgstr ""

View File

@ -0,0 +1,776 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# wwj402 <wwj402@gmail.com>, 2021
# csslayer <wengxt@gmail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: csslayer <wengxt@gmail.com>, 2022\n"
"Language-Team: Chinese (China) (https://www.transifex.com/fcitx/teams/12005/"
"zh_CN/)\n"
"Language: zh_CN\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/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr "%1 - %2"
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr "%1 已崩溃。"
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr "%1 启动失败。"
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr "%1"
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr "应用(&A)"
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr "取消(&C)"
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr "清空(&C)"
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr "关闭(&C)"
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr "下一步(&N) >"
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr "确定(&O)"
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr "重置(&R)"
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr ""
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr "- 禁用 %1\n"
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- 禁用 %1 中的某些功能\n"
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr "通用键盘布局查看器"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr "添加"
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr "添加分组"
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr "附加组件"
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr "所有迁移任务都已成功完成。"
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr "任意语言"
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr "应用配置更改"
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr "请求 Fcitx 退出..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr "可用输入法:"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "无法通过 DBus 连接到 FcitxFcitx 是否正在运行?"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr "修改 Fcitx 5 配置"
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr "更改输入方式以匹配布局选择。"
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr "更改系统布局以匹配输入方式选择。"
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr "检查 Fcitx 是否正在运行..."
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr "检查 Fcitx 是否仍在运行..."
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr "点击项目查看更多细节。"
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr "配置"
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr "转换器崩溃。"
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr "复制文件 %1 到 %2"
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr "当前输入法:"
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr "当前分组已修改"
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "默认"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr "删除分组"
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr "目录 %1 不存在。"
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr "禁用 %1"
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
"禁用 %1 将同时:\n"
"%2%3\n"
"确认要禁用它吗?"
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "您想要更改分组吗?当前分组未保存的修改将会丢失!"
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr "您想保存更改还是放弃更改?"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr "向下"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr "编辑"
#: layout/main.cpp:26
msgid "Error"
msgstr "错误"
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr "从 %1 复制文件到 %2 失败"
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr "创建目录 %1 失败。"
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr "获取 %1 的配置失败"
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr "执行 DBus 调用失败。"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr "Fcitx 5 配置"
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr "Fcitx 5 迁移向导"
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr "Fcitx 5 没有在运行。"
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr "Fcitx 配置"
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr "Fcitx 已退出。"
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr "Fcitx 已经完全退出。"
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr "Fcitx 已启动。"
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"发现了 Fcitx 安装的更新。是否想要检查新安装的输入法和附加组件?如果需要更新已"
"经加载的附加组件Fcitx 需要重新启动。"
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr "发现 Fcitx 已更新。是否要重新启动 Fcitx"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr "前端"
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr "全局配置"
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr "全局选项"
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr "发生错误:%1 %2"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr "分组名称:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr "分组:"
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr "从 Fcitx 4 导入拼音词典"
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr "从其他输入法导入数据例如 Fcitx 4"
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr "从 Fcitx 4 导入码表数据到已安装的码表"
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr "输入法"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr "输入法配置"
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr "键盘 <布局>"
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr "键盘布局查看器"
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr "键盘布局<分组号> (0-3)"
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr "键盘布局<变体>"
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr "无活动输入法时使用的键盘布局"
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr "键盘布局查看器"
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr "Kkc"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr "语言:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr "布局"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr "布局:"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr "启动器"
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr "从 Fcitx 4 迁移数据"
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr "从 Fcitx 4 迁移 Kkc 词典"
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr "从 Fcitx 4 迁移 Rime 目录。注意:这将删除所有已有数据。"
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr "从 Fcitx 4 迁移 Skk 词典"
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr "从 Fcitx 4 迁移全局按键选项"
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr "迁移 Kkc 规则选项..."
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr "迁移拼音数据..."
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr "迁移 Skk 规则选项..."
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr "正在迁移全局快捷键选项..."
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr "迁移工具"
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr "模块"
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr "下移"
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr "上移"
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr "多语言"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr "新建分组"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr "否"
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr "有一个任务失败了。终止迁移。"
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr "仅显示当前语言(&S)"
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "其它"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr "拼音"
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr "拼音数据已迁移。"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr "移除"
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr "重启"
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr "恢复默认(&D)"
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr "中州韻"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr "运行 Fcitx 5"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr "搜索附加组件"
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr "搜索输入法"
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr "全选(&A)"
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr "选择字体(&F)..."
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr "选择布局"
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr "选择默认布局"
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr "选择迁移任务"
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr "选择系统键盘布局"
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr "服务 %1 不在 DBus 上。"
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr "服务 %1 还在 DBus 上存在。"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr "显示高级选项(&A)"
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr "Skk"
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr "码表"
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
"第一个输入法将为非激活状态。通常您需要将<b>键盘</b>或<b>键盘 - <i>布局名称</"
"i></b>放在第一位。"
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr "这个程序仅能在 X11 下使用。"
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr "这个向导将帮助你从 Fcitx 4 迁移已有的用户数据到 Fcitx 5。"
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr "尝试迁移码表文件:%1... "
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr "界面"
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr "未知"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr "向上"
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr "更新"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr "变体:"
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr "查看键盘布局"
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr "欢迎页"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr "是"
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr "您当前配置的输入方式与您的布局不匹配,是否要更改布局设置?"
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"您当前配置的输入方式与您所选的布局不匹配,是否要为布局添加相应的输入方式?"
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: layout/main.cpp:36
msgid "group"
msgstr "分组"
#: layout/main.cpp:37
msgid "layout"
msgstr "布局"
#: layout/main.cpp:38
msgid "variant"
msgstr "变体"

View File

@ -0,0 +1,779 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the fcitx5-configtool package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2017
# 黃柏諺 <s8321414@gmail.com>, 2017
# pan93412 <pan93412@gmail.com>, 2019
# bruh, 2020
# Weizhong Yang <zonble@gmail.com>, 2022
# 菘菘 <rrt467778@gmail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: fcitx5-configtool\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2017-11-23 04:55+0000\n"
"Last-Translator: 菘菘 <rrt467778@gmail.com>, 2022\n"
"Language-Team: Chinese (Taiwan) (https://www.transifex.com/fcitx/teams/12005/"
"zh_TW/)\n"
"Language: zh_TW\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/lib/configlib/layoutprovider.cpp:74
#, kde-format
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/model.cpp:135
#, kde-format
msgctxt "%1 is language name, %2 is country name"
msgid "%1 (%2)"
msgstr "%1 (%2)"
#: src/lib/configlib/layoutprovider.cpp:153
#, kde-format
msgid "%1 - %2"
msgstr "%1 - %2"
#: src/migrator/lib/processrunner.cpp:69
#, kde-format
msgid "%1 crashed."
msgstr "%1 當掉了。"
#: src/migrator/lib/processrunner.cpp:76
#, kde-format
msgid "%1 failed to start."
msgstr "%1 啟動失敗。"
#: src/lib/configwidgetslib/optionwidget.cpp:539
#: src/lib/configwidgetslib/optionwidget.cpp:550
#: src/lib/configwidgetslib/optionwidget.cpp:556
#: src/lib/configwidgetslib/optionwidget.cpp:559
#: src/lib/configwidgetslib/optionwidget.cpp:562
#: src/lib/configwidgetslib/optionwidget.cpp:565
#: src/lib/configwidgetslib/optionwidget.cpp:568
#: src/lib/configwidgetslib/optionwidget.cpp:571
#, kde-format
msgid "%1:"
msgstr "%1"
#: src/configtool/mainwindow.cpp:56
msgid "&Apply"
msgstr "&套用"
#: src/lib/configwidgetslib/configwidget.cpp:205
#: src/lib/configwidgetslib/fontbutton.cpp:48
#: src/lib/configwidgetslib/optionwidget.cpp:615
msgid "&Cancel"
msgstr "&取消"
#: src/lib/configwidgetslib/layoutselector.cpp:76
msgid "&Clear"
msgstr "&清除"
#: src/configtool/mainwindow.cpp:58
msgid "&Close"
msgstr "&關閉"
#: src/migrator/app/taskpage.cpp:203
msgid "&Next >"
msgstr "&下一步 >"
#: src/configtool/mainwindow.cpp:57
#: src/lib/configwidgetslib/configwidget.cpp:204
#: src/lib/configwidgetslib/fontbutton.cpp:47
#: src/lib/configwidgetslib/layoutselector.cpp:75
#: src/lib/configwidgetslib/optionwidget.cpp:614
msgid "&OK"
msgstr "&確定"
#: src/configtool/mainwindow.cpp:59
msgid "&Reset"
msgstr "&重置"
#: src/lib/configwidgetslib/addonselector.cpp:384
msgctxt "Separator of a comma list"
msgid ", "
msgstr "、"
#: src/lib/configwidgetslib/addonselector.cpp:394
#, kde-format
msgid "- Disable %1\n"
msgstr "- 停用 %1\n"
#: src/lib/configwidgetslib/addonselector.cpp:405
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- 停用 %1 的部分功能\n"
#: layout/main.cpp:33
msgid "A general keyboard layout viewer"
msgstr "一般鍵盤佈局檢視器"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:31
#. i18n: ectx: property (text), widget (QToolButton, addButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:69
#. i18n: ectx: property (text), widget (QToolButton, addGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:139
#. i18n: ectx: property (toolTip), widget (QToolButton, addIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:142
#. i18n: ectx: property (text), widget (QToolButton, addIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:31 rc.cpp:9 rc.cpp:42 rc.cpp:57
#: rc.cpp:60
#, kde-format
msgid "Add"
msgstr "新增"
#. i18n: file: src/lib/configwidgetslib/impage.ui:66
#. i18n: ectx: property (toolTip), widget (QToolButton, addGroupButton)
#: rc.cpp:39
#, kde-format
msgid "Add Group"
msgstr "新增群組"
#: src/configtool/mainwindow.cpp:47
msgid "Addons"
msgstr "附加元件"
#: src/migrator/app/progresspage.cpp:44
msgid "All migration tasks are completed successfully."
msgstr "遷移任務已全部完成。"
#: src/lib/configlib/layoutprovider.cpp:66
#: src/lib/configlib/layoutprovider.cpp:68
msgid "Any language"
msgstr "任何語言"
#: src/configtool/mainwindow.cpp:120
msgid "Apply configuration changes"
msgstr "修改設定"
#: src/migrator/app/taskpage.cpp:235
msgid "Asking Fcitx to exit..."
msgstr "請求 Fcitx 退出……"
#. i18n: file: src/lib/configwidgetslib/impage.ui:285
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:93
#, kde-format
msgid "Available Input Method:"
msgstr "可用輸入法:"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:167
#. i18n: ectx: property (text), widget (QLabel, textLabel)
#: rc.cpp:24
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "無法通過 DBus 連接到 FcitxFcitx 是否正在運行?"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:5
msgid "Change Fcitx 5 Configuration"
msgstr "變更 Fcitx 5 設定"
#: src/lib/configwidgetslib/impage.cpp:281
msgid "Change Input method to match layout selection."
msgstr "變更輸入法以符合選擇的配置。"
#: src/lib/configwidgetslib/impage.cpp:359
msgid "Change System layout to match input method selection."
msgstr "變更系統配置以符合選擇的輸入法。"
#: src/migrator/app/taskpage.cpp:249
msgid "Checking if Fcitx is running..."
msgstr "檢查 Fcitx 是否正在執行……"
#: src/migrator/app/taskpage.cpp:237
msgid "Checking if Fcitx is still running..."
msgstr "檢查 Fcitx 是否仍在執行……"
#: src/migrator/app/taskpage.cpp:151 src/migrator/app/taskpage.cpp:159
msgid "Click on an item for more details."
msgstr "點選項目以檢視更多細節。"
#. i18n: file: src/lib/configwidgetslib/impage.ui:236
#. i18n: ectx: property (toolTip), widget (QToolButton, configureButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:239
#. i18n: ectx: property (text), widget (QToolButton, configureButton)
#: src/lib/configwidgetslib/addonselector.cpp:185
#: src/lib/configwidgetslib/optionwidget.cpp:474 rc.cpp:81 rc.cpp:84
#, kde-format
msgid "Configure"
msgstr "設定"
#: src/migrator/lib/renamefile.cpp:32
msgid "Converter crashed."
msgstr "轉換器當掉了。"
#: src/migrator/lib/copydirectory.cpp:114
#, kde-format
msgid "Copying file %1 to %2"
msgstr "複製文件 %1 至 %2"
#. i18n: file: src/lib/configwidgetslib/impage.ui:34
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:33
#, kde-format
msgid "Current Input Method:"
msgstr "目前輸入法:"
#: src/lib/configwidgetslib/impage.cpp:193
msgid "Current group changed"
msgstr "目前的群組已變更"
#: src/lib/configlib/layoutmodel.cpp:123
msgid "Default"
msgstr "預設"
#. i18n: file: src/lib/configwidgetslib/impage.ui:82
#. i18n: ectx: property (toolTip), widget (QToolButton, deleteGroupButton)
#: rc.cpp:45
#, kde-format
msgid "Delete Group"
msgstr "刪除群組"
#: src/migrator/lib/copydirectory.cpp:86
#, kde-format
msgid "Directory %1 does not exist."
msgstr "目錄 %1 不存在。"
#: src/lib/configwidgetslib/addonselector.cpp:413
#, kde-format
msgid "Disable %1"
msgstr "停用 %1"
#: src/lib/configwidgetslib/addonselector.cpp:408
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2%3\n"
"Are you sure you want to disable it?"
msgstr ""
"停用 %1 將同時:\n"
"%2%3\n"
"確認要停用它嗎?"
#: src/lib/configwidgetslib/impage.cpp:194
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "您想要變更群組嗎?對目前群組的變更將會遺失!"
#: src/configtool/mainwindow.cpp:121
msgid "Do you want to save the changes or discard them?"
msgstr "您想要儲存還是要捨棄修改過的設定?"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:79
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:217
#. i18n: ectx: property (text), widget (QToolButton, moveDownButton)
#: rc.cpp:18 rc.cpp:78
#, kde-format
msgid "Down"
msgstr "下"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:47
#. i18n: ectx: property (text), widget (QToolButton, editButton)
#: rc.cpp:12
#, kde-format
msgid "Edit"
msgstr "編輯"
#: layout/main.cpp:26
msgid "Error"
msgstr "錯誤"
#: src/migrator/lib/copydirectory.cpp:120
#, kde-format
msgid "Failed to copy file %1 to %2"
msgstr "複製文件 %1 至 %2 失敗"
#: src/migrator/lib/copydirectory.cpp:93
#, kde-format
msgid "Failed to create directory %1."
msgstr "建立資料夾 %1 失敗。"
#: src/migrator/lib/configmigrator.cpp:89
#, kde-format
msgid "Failed to fetch config for %1"
msgstr "獲取 %1 設定失敗"
#: src/migrator/lib/dbuscaller.cpp:21
msgid "Failed to start DBus Call."
msgstr "執行 DBus 調用失敗。"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:3
msgid "Fcitx 5 Configuration"
msgstr "Fcitx 5 設定"
#: src/migrator/app/main.cpp:21
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:3
msgid "Fcitx 5 Migration Wizard"
msgstr "Fcitx 5 資料搬移精靈"
#. i18n: file: src/migrator/app/welcomepage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#. i18n: file: src/migrator/app/taskpage.ui:23
#. i18n: ectx: property (text), widget (KMessageWidget, fcitxNotRunningMessage)
#: rc.cpp:126 rc.cpp:135
#, kde-format
msgid "Fcitx 5 is not running."
msgstr "Fcitx 5 未執行。"
#. i18n: file: src/configtool/mainwindow.ui:14
#. i18n: ectx: property (windowTitle), widget (QMainWindow, MainWindow)
#: src/configtool/main.cpp:15 rc.cpp:3
#, kde-format
msgid "Fcitx Configuration"
msgstr "Fcitx 設定"
#: src/migrator/app/taskpage.cpp:235
msgid "Fcitx Exited."
msgstr "Fcitx 已退出。"
#: src/migrator/app/taskpage.cpp:238
msgid "Fcitx is fully exited."
msgstr "Fcitx 已完全退出。"
#: src/migrator/app/taskpage.cpp:250
msgid "Fcitx is started."
msgstr "Fcitx 已啟動。"
#. i18n: file: src/lib/configwidgetslib/impage.ui:20
#. i18n: ectx: property (text), widget (KMessageWidget, checkUpdateMessage)
#: rc.cpp:30
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"有新的 Fcitx 安裝套件。您想要檢查是否有新的輸入法以及附加組件嗎?如果要更新已"
"經安裝的附加組件,您需要重新啟動 Fcitx。"
#: src/lib/configwidgetslib/impage.cpp:110
msgid "Found updates to fcitx installation. Do you want to restart Fcitx?"
msgstr ""
#: src/lib/configlib/addonmodel.cpp:22
msgid "Frontend"
msgstr "前端"
#. namespace
#: src/migrator/global/globalconfigmigrator.cpp:45
msgid "Global Config"
msgstr "全域設定"
#: src/configtool/mainwindow.cpp:46
msgid "Global Options"
msgstr "全域選項"
#: src/migrator/lib/dbuscaller.cpp:29
#, kde-format
msgid "Got error: %1 %2"
msgstr "發生錯誤:%1 %2"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "Group Name:"
msgstr "群組名稱:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:43
#. i18n: ectx: property (text), widget (QLabel, label_5)
#: rc.cpp:36
#, kde-format
msgid "Group:"
msgstr "群組:"
#: src/migrator/pinyin/pinyinmigrator.cpp:19
msgid "Import Pinyin dictionary from Fcitx 4"
msgstr "從 Fcitx 4 導入拼音詞典"
#: src/migrator/app/org.fcitx.fcitx5-migrator.desktop.in:4
msgid "Import data from other input method such as Fcitx 4"
msgstr "從其他輸入法(如 Fcitx 4匯入資料"
#: src/migrator/table/tablemigrator.cpp:44
msgid "Import table data for installed table from Fcitx 4"
msgstr "從 Fcitx 4 導入已安裝碼表的碼表資料"
#: src/configtool/mainwindow.cpp:45 src/lib/configlib/addonmodel.cpp:22
msgid "Input Method"
msgstr "輸入法"
#: src/configtool/org.fcitx.fcitx5-config-qt.desktop.in:4
msgid "Input Method Configuration"
msgstr "輸入法設定"
#: layout/main.cpp:37
msgid "Keyboard <layout>"
msgstr "鍵盤 <layout>"
#: layout/main.cpp:58
msgid "Keyboard Layout viewer"
msgstr "鍵盤佈局檢視器"
#: layout/main.cpp:36
msgid "Keyboard layout <group> (0-3)"
msgstr "鍵盤配置 <group> (0-3)"
#: layout/main.cpp:38
msgid "Keyboard layout <variant>"
msgstr "鍵盤配置 <variant>"
#. i18n: file: src/lib/configwidgetslib/impage.ui:97
#. i18n: ectx: property (toolTip), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:51
#, kde-format
msgid "Keyboard layout to use when no input method active"
msgstr "無活動輸入法時使用的鍵盤佈局"
#: layout/kbd-layout-viewer5.desktop.in:7
msgid "Keyboard layout viewer"
msgstr "鍵盤佈局檢視器"
#. namespace
#: src/migrator/kkc/kkcmigrator.cpp:37
msgid "Kkc"
msgstr "Kkc"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:22
#. i18n: ectx: property (text), widget (QLabel, label_3)
#: rc.cpp:105
#, kde-format
msgid "Language:"
msgstr "語言:"
#. i18n: file: src/lib/configwidgetslib/impage.ui:261
#. i18n: ectx: property (text), widget (QToolButton, layoutButton)
#: rc.cpp:90
#, kde-format
msgid "Layout"
msgstr "佈局"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:39
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:108
#, kde-format
msgid "Layout:"
msgstr "佈局:"
#: src/lib/configlib/addonmodel.cpp:22
msgid "Loader"
msgstr "載入器"
#. i18n: file: src/migrator/app/welcomepage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, WelcomePage)
#: rc.cpp:123
#, kde-format
msgid "Migrate Data from Fcitx 4"
msgstr "從 Fcitx 4 遷移資料"
#: src/migrator/kkc/kkcmigrator.cpp:40
msgid "Migrate Kkc dictionary from Fcitx 4"
msgstr "從 Fcitx 4 遷移 Kkc 詞典"
#: src/migrator/rime/rimemigrator.cpp:39
msgid ""
"Migrate Rime dictionary from Fcitx 4. Notice: this will remove all the "
"existing data."
msgstr "從 Fcitx 4 遷移 Rime 詞典。注意:這將會移除所有已有數據。"
#: src/migrator/skk/skkmigrator.cpp:40
msgid "Migrate Skk dictionary from Fcitx 4"
msgstr "從 Fcitx 4 遷移 Skk 詞典"
#: src/migrator/global/globalconfigmigrator.cpp:48
msgid "Migrate global key option from Fcitx 4"
msgstr "從 Fcitx 4 遷移全局按鍵設定"
#: src/migrator/kkc/kkcmigrator.cpp:74
msgid "Migrating Kkc rule option..."
msgstr "遷移 Kkc 規則設定……"
#: src/migrator/pinyin/pinyinmigrator.cpp:35
msgid "Migrating Pinyin data..."
msgstr "遷移拼音數據……"
#: src/migrator/skk/skkmigrator.cpp:74
msgid "Migrating Skk rule option..."
msgstr "遷移 Skk 規則設定……"
#: src/migrator/global/globalconfigmigrator.cpp:89
msgid "Migrating global hotkey key option..."
msgstr "遷移全局按鍵設定……"
#: src/migrator/app/mainwindow.cpp:23
msgid "Migration Tool"
msgstr "遷移工具"
#: src/lib/configlib/addonmodel.cpp:23
msgid "Module"
msgstr "模組"
#. i18n: file: src/lib/configwidgetslib/impage.ui:214
#. i18n: ectx: property (toolTip), widget (QToolButton, moveDownButton)
#: rc.cpp:75
#, kde-format
msgid "Move Down"
msgstr "下移"
#. i18n: file: src/lib/configwidgetslib/impage.ui:189
#. i18n: ectx: property (toolTip), widget (QToolButton, moveUpButton)
#: rc.cpp:69
#, kde-format
msgid "Move Up"
msgstr "上移"
#: src/lib/configlib/model.cpp:97
msgid "Multilingual"
msgstr "多語言"
#: src/lib/configwidgetslib/impage.cpp:417
msgid "New Group"
msgstr "新群組"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "No"
msgstr "取消"
#: src/migrator/app/progresspage.cpp:49
msgid "One of the task is failed. Terminating the migration."
msgstr "有一個任務失敗了。終止遷移。"
#. i18n: file: src/lib/configwidgetslib/impage.ui:324
#. i18n: ectx: property (text), widget (QCheckBox, onlyCurrentLanguageCheckBox)
#: rc.cpp:99
#, kde-format
msgid "Only &Show Current Language"
msgstr "只顯示目前語言(&S)"
#: src/lib/configlib/model.cpp:117
msgid "Other"
msgstr "其他"
#: src/migrator/pinyin/pinyinmigrator.cpp:16
msgid "Pinyin"
msgstr "拼音"
#: src/migrator/pinyin/pinyinmigrator.cpp:36
msgid "Pinyin data is migrated."
msgstr "拼音數據已遷移。"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:95
#. i18n: ectx: property (text), widget (QToolButton, removeButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:85
#. i18n: ectx: property (text), widget (QToolButton, deleteGroupButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:164
#. i18n: ectx: property (toolTip), widget (QToolButton, removeIMButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:167
#. i18n: ectx: property (text), widget (QToolButton, removeIMButton)
#: src/lib/configwidgetslib/keylistwidget.cpp:63 rc.cpp:21 rc.cpp:48 rc.cpp:63
#: rc.cpp:66
#, kde-format
msgid "Remove"
msgstr "移除"
#: src/lib/configwidgetslib/impage.cpp:119
msgid "Restart"
msgstr "重新啟動"
#: src/configtool/mainwindow.cpp:61
#: src/lib/configwidgetslib/configwidget.cpp:207
msgid "Restore &Defaults"
msgstr "還原成預設值"
#. namespace
#: src/migrator/rime/rimemigrator.cpp:36
msgid "Rime"
msgstr "中州韻"
#. i18n: file: src/lib/configwidgetslib/erroroverlay.ui:177
#. i18n: ectx: property (text), widget (QPushButton, runFcitxButton)
#: rc.cpp:27
#, kde-format
msgid "Run Fcitx 5"
msgstr "執行 Fcitx 5"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:32
#. i18n: ectx: property (placeholderText), widget (QLineEdit, lineEdit)
#: rc.cpp:114
#, kde-format
msgid "Search Addons"
msgstr "搜尋附加元件"
#. i18n: file: src/lib/configwidgetslib/impage.ui:292
#. i18n: ectx: property (placeholderText), widget (QLineEdit, filterTextEdit)
#: rc.cpp:96
#, kde-format
msgid "Search Input Method"
msgstr "搜尋輸入法"
#. i18n: file: src/migrator/app/taskpage.ui:47
#. i18n: ectx: property (text), widget (QCheckBox, selectAllBox)
#: rc.cpp:138
#, kde-format
msgid "Select &All"
msgstr "選取全部"
#. i18n: file: src/lib/configwidgetslib/fontbutton.ui:60
#. i18n: ectx: property (text), widget (QPushButton, fontSelectButton)
#: rc.cpp:6
#, kde-format
msgid "Select &Font..."
msgstr "選取字型"
#. i18n: file: src/lib/configwidgetslib/impage.ui:258
#. i18n: ectx: property (toolTip), widget (QToolButton, layoutButton)
#: src/lib/configwidgetslib/impage.cpp:326 rc.cpp:87
#, kde-format
msgid "Select Layout"
msgstr "選取佈局"
#: src/lib/configwidgetslib/impage.cpp:266
msgid "Select default layout"
msgstr "選取預設佈局"
#. i18n: file: src/migrator/app/taskpage.ui:17
#. i18n: ectx: property (title), widget (QWizardPage, TaskPage)
#: rc.cpp:132
#, kde-format
msgid "Select migration tasks"
msgstr "選取遷移任務"
#. i18n: file: src/lib/configwidgetslib/impage.ui:100
#. i18n: ectx: property (text), widget (QPushButton, defaultLayoutButton)
#: rc.cpp:54
#, kde-format
msgid "Select system keyboard layout"
msgstr "請選擇系統鍵盤配置"
#: src/migrator/lib/dbuswatcher.cpp:38
#, kde-format
msgid "Service %1 does not present on DBus."
msgstr "服務 %1 不在 DBus 上。"
#: src/migrator/lib/dbuswatcher.cpp:34
#, kde-format
msgid "Service %1 still present on DBus."
msgstr "服務 %1 仍在 DBus 上存在。"
#. i18n: file: src/lib/configwidgetslib/addonselector.ui:76
#. i18n: ectx: property (text), widget (QCheckBox, advancedCheckbox)
#: rc.cpp:117
#, kde-format
msgid "Show &Advanced options"
msgstr "顯示進階選項"
#. namespace
#: src/migrator/skk/skkmigrator.cpp:37
msgid "Skk"
msgstr "Skk"
#. namespace
#: src/migrator/table/tablemigrator.cpp:41
msgid "Table"
msgstr "碼表"
#. i18n: file: src/lib/configwidgetslib/impage.ui:381
#. i18n: ectx: property (text), widget (QLabel, infoLabel)
#: rc.cpp:102
#, kde-format
msgid ""
"The first input method will be inactive state. Usually you need to put "
"<b>Keyboard</b> or <b>Keyboard - <i>layout name</i></b> in the first place."
msgstr ""
"第一個輸入法將作爲非激活狀態。通常您需要將<b>鍵盤<b>或者<b>鍵盤 - <i>佈局名稱"
"</i></b>放到第一個。"
#: layout/main.cpp:27
msgid "This program only works on X11."
msgstr "本程式只能在 X11 下執行。"
#. i18n: file: src/migrator/app/welcomepage.ui:33
#. i18n: ectx: property (text), widget (QLabel, label)
#: rc.cpp:129
#, kde-format
msgid ""
"This wizard will help you to migrate existing user data from Fcitx 4 to "
"Fcitx 5"
msgstr "這個嚮導將幫助你從 Fcitx 4 遷移已有的使用者資料到 Fcitx 5。"
#: src/migrator/table/tablemigrator.cpp:68
#, kde-format
msgid "Try to Migrating table file: %1 ..."
msgstr "嘗試遷移碼表文件:%1……"
#: src/lib/configlib/addonmodel.cpp:23
msgid "UI"
msgstr "使用者介面"
#: src/lib/configlib/model.cpp:95
msgid "Unknown"
msgstr "未知"
#. i18n: file: src/lib/configwidgetslib/listoptionwidget.ui:63
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#. i18n: file: src/lib/configwidgetslib/impage.ui:192
#. i18n: ectx: property (text), widget (QToolButton, moveUpButton)
#: rc.cpp:15 rc.cpp:72
#, kde-format
msgid "Up"
msgstr "上"
#: src/lib/configwidgetslib/impage.cpp:113
msgid "Update"
msgstr "更新"
#. i18n: file: src/lib/configwidgetslib/layoutselector.ui:56
#. i18n: ectx: property (text), widget (QLabel, label_2)
#: rc.cpp:111
#, kde-format
msgid "Variant:"
msgstr "變體"
#: layout/kbd-layout-viewer5.desktop.in:8
msgid "View keyboard layout"
msgstr "檢視鍵盤佈局"
#. i18n: file: src/migrator/app/welcomepage.ui:14
#. i18n: ectx: property (windowTitle), widget (QWizardPage, WelcomePage)
#: rc.cpp:120
#, kde-format
msgid "WelcomePage"
msgstr "歡迎頁"
#: src/lib/configwidgetslib/optionwidget.cpp:647
msgid "Yes"
msgstr "確定"
#: src/lib/configwidgetslib/impage.cpp:360
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr "您目前設定的輸入法與配置不符,是否變更配置設定?"
#: src/lib/configwidgetslib/impage.cpp:282
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr "您目前設定的輸入法與選取配置不符,是否要對配置新增對應輸入法?"
#: src/lib/configwidgetslib/optionwidget.cpp:680
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: layout/main.cpp:36
msgid "group"
msgstr "群組"
#: layout/main.cpp:37
msgid "layout"
msgstr "配置"
#: layout/main.cpp:38
msgid "variant"
msgstr "變體"

View File

@ -0,0 +1 @@
fcitx5_install_translation(org.fcitx.fcitx5.kcm)

View File

@ -0,0 +1,14 @@
ca
da
de
es
fr
he
ja
ko
ru
tr
vi
zh_CN
zh_TW

View File

@ -0,0 +1,386 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2020
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: csslayer <wengxt@gmail.com>, 2020\n"
"Language-Team: Catalan (https://www.transifex.com/fcitx/teams/12005/ca/)\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr ""
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr ""
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr "Autor"
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "No es pot connectar a fcitx amb DBus, està fcitx en execució?"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr ""
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr "Configura fcitx 5"
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr "Configura el mètode d'entrada"
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr ""
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr "Drets d'autor (c) 2017 Xuetian Weng"
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr ""
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr ""
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr ""
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr ""
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "Mètode d'entrada"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr "Llengua:"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr "Disposició:"
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr "No"
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr ""
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr "Mo%stra sols la llengua actual"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr ""
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr ""
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr ""
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr "Variant:"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr "Xuetian Weng"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr "Sí"
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr ""
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr ""

View File

@ -0,0 +1,395 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2020
# scootergrisen, 2020
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: scootergrisen, 2020\n"
"Language-Team: Danish (https://www.transifex.com/fcitx/teams/12005/da/)\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr "- Deaktivér %1\n"
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- Deaktivér nogle funktionaliteter i %1\n"
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr " ..."
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr "Tilføj"
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr "Tilføj gruppe"
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr "Tilføj inputmetode"
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr "Tilføj inputmetode ..."
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr "Tilføjelser"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr "Forfatter"
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "Kan ikke oprette forbindelse til Fcitx med DBus. Kører Fcitx?"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr "Ryd"
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr "Konfigurer"
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr "Konfigurer Fcitx 5"
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr "Konfigurer inputmetode"
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr "Konfigurer tilføjelser ..."
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr "Konfigurer globale valgmuligheder ..."
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr "Ophavsret 2017 Xuetian Weng"
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr "Nuværende gruppe ændret"
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr ""
"Den nuværende side er ikke gemt endnu. Gem venligst konfigurationen først."
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
"Deaktivering af %1 vil også:\n"
"%2\n"
"Er du sikker på, at du vil deaktivere den?"
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "Vil du ændre gruppe? Ændringerne til den nuværende gruppe vil gå tabt!"
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr "Tøm"
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr "Fcitx 5"
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr ""
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr "Ret"
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr "Globale valgmuligheder"
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr "Gruppenavn"
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr "Gruppe:"
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "Inputmetode"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr "Tastekode-tilstand"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr "Sprog:"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr "Layout:"
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr "Navn:"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr "Nej"
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr "OK"
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr "&Vis kun nuværende sprog"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr "Genaktivér"
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr "Fjern"
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr "Kør Fcitx"
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr "Søg ..."
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr "Vælg farve"
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr "Vælg skrifttype"
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr "Vælg layout"
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr "Vælg layout til %1"
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr "Vælg systemets tastaturlayout ..."
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr "Vælg systemets layout til gruppen %1"
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr "Vælg systemets layout ..."
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr "Noget af konfigurationen er ikke blevet gemt"
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr ""
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr "Variant:"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr "Xuetian Weng"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr "Ja"
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"Din nuværende konfigurerede inputmetode matcher ikke dit layout. Vil du "
"skifte layoutindstillingen?"
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"Din nuværende konfigurerede inputmetode matcher ikke dit layout. Vil du "
"tilføje layoutets tilhørende inputmetode?"
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr "rediger"
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr ""

View File

@ -0,0 +1,391 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2020
# Ettore Atalan <atalanttore@googlemail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>, 2022\n"
"Language-Team: German (https://www.transifex.com/fcitx/teams/12005/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr "- %1 deaktivieren\n"
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr "..."
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr "Hinzufügen"
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr "Gruppe hinzufügen"
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr "Eingabemethode hinzufügen"
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr "Eingabemethode hinzufügen..."
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr ""
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr "Autor"
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "DBus kann sich nicht mit FCITX verbinden. Läuft FCITX?"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr "Konfigurieren"
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr "Fcitx 5 konfigurieren"
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr "Eingabemethode konfigurieren"
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr "Globale Optionen konfigurieren..."
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr "Copyright 2017 Xuetian Weng"
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr "Gegenwärtige Gruppe geändert"
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr "Leer"
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr "Fcitx 5"
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr ""
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr "Globale Optionen"
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr "Gruppenname"
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr "Gruppe:"
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "Eingabemethode"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr "Tastencode-Modus"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr "Sprache:"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr "Layout:"
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr "Name:"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr "Nein"
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr "Ok"
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr "Nur &gegenwärtige Sprache anzeigen"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr "Reaktivieren"
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr "Entfernen"
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr "Neustart"
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr "Fcitx ausführen"
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr "Suche..."
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr "Farbe auswählen"
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr "Schriftart auswählen"
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr ""
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr "Variante:"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr "Xuetian Weng"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr "Ja"
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"Ihre gegenwärtig ausgewählte Eingabemethode passt nicht zu Ihrem Layout, "
"wollen sie die Layouteinstellungen ändern?"
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"Ihre gegenwärtig ausgewählte Eingabemethode passt nicht zu Ihrem Layout, "
"wollen sie passenden Layouteinstellungen hinzufügen?"
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr "bearbeiten"
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr ""

View File

@ -0,0 +1,389 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# Adolfo Jayme-Barrientos, 2021
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: Adolfo Jayme-Barrientos, 2021\n"
"Language-Team: Spanish (https://www.transifex.com/fcitx/teams/12005/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? "
"1 : 2;\n"
#: src/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr "Añadir"
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr "Añadir grupo"
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr "Añadir método de entrada"
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr "Añadir método de entrada…"
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr "Complementos"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr "Autoría"
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr ""
"No se puede conectar con Fcitx por DBus. Cerciórese de que se esté "
"ejecutando Fcitx."
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr "Configurar"
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr "Configurar Fcitx 5"
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr "Configurar método de entrada"
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr "Configurar complementos…"
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr "Configurar opciones globales…"
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr "Vacío"
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr "Fcitx 5"
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr ""
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr "Opciones globales"
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr "Grupo:"
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "Método de entrada"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr "Idioma:"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr "Disposición:"
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr "Nombre:"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr "No"
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr "Aceptar"
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr "Reactivar"
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr "Quitar"
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr "Reiniciar"
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr "Ejecutar Fcitx"
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr "Buscar…"
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr ""
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr ""
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr "Actualizar"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr "Variante:"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr "Sí"
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr "editar"
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr ""

View File

@ -0,0 +1,404 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# roxfr <roxfr@outlook.fr>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: roxfr <roxfr@outlook.fr>, 2022\n"
"Language-Team: French (https://www.transifex.com/fcitx/teams/12005/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % "
"1000000 == 0 ? 1 : 2;\n"
#: src/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr "%1 :"
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr "- Désactiver %1\n"
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- Désactiver certaines fonctionnalités dans %1\n"
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr "..."
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr "Ajouter"
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr "Ajouter un groupe"
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr "Ajouter une méthode de saisie"
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr "Ajouter une méthode de saisie..."
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr "Modules complémentaires"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr "Auteur"
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr ""
"Impossible de se connecter à Fcitx par DBus, Fcitx est-il en cours "
"d'exécution ?"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr "Effacer"
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr "Configurer"
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr "Configurer Fcitx 5"
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr "Configurer la méthode d'entrée"
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr "Configurer les modules complémentaires..."
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr "Configurer les options globales..."
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr "Copyright 2017 Xuetian Weng"
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr "Le groupe actuel a changé"
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr ""
"La page actuelle n'est pas encore enregistrée. Veuillez d'abord enregistrer "
"la configuration."
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
"La désactivation de %1 entraînera également :\n"
"%2\n"
"Êtes-vous sûr de vouloir le désactiver ?"
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
"Voulez-vous changer de groupe ? Les modifications apportées au groupe actuel "
"seront perdues !"
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr "Vide"
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr "Fcitx 5"
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr ""
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr "Corriger"
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"Mises à jour trouvées pour l'installation de fcitx. Voulez-vous vérifier les "
"nouvelles \" \"Méthodes d'entrée et addons installés ? Pour mettre à jour "
"les addons déjà chargés, fcitx \" \"devrait être redémarré."
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr "Options globales"
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr "Nom du groupe"
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr "Groupe :"
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "Méthode de saisie"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr "Méthode de saisie désactivée"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr "Méthode de saisie activée"
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr "Mode code clé"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr "Langue :"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr "disposition :"
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr "Nom :"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr "Non"
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr "Ok"
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr "&Afficher uniquement la langue actuelle"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr "Réactiver"
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr "Supprimer"
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr "Redémarrer"
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr "Exécuter Fcitx"
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr "Rechercher..."
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr "Sélectionner la couleur"
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr "Sélectionner la police"
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr "Sélectionner la disposition"
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr "Sélectionner la disposition pour %1"
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr "Sélectionner la disposition du clavier système..."
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr "Sélectionner la disposition du système pour le groupe %1"
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr "Sélectionner la disposition du système..."
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr "Certaines configurations ne sont pas enregistrées"
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr "Tester l'entrée"
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr "Mettre à jour"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr "Variante :"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr "Xuetian Weng"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr "Oui"
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"Votre méthode de saisie actuellement configurée ne correspond pas à votre "
"disposition, n'est-ce pas, vous voulez changer le paramètre de disposition ?"
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"Votre méthode de saisie actuellement configurée ne correspond pas à la "
"disposition sélectionnée, voulez-vous ajouter la méthode de saisie "
"correspondante pour la disposition ?"
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr "modifier"
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr ""

View File

@ -0,0 +1,387 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# Omer I.S. <omeritzicschwartz@gmail.com>, 2020
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: Omer I.S. <omeritzicschwartz@gmail.com>, 2020\n"
"Language-Team: Hebrew (https://www.transifex.com/fcitx/teams/12005/he/)\n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
"1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
#: src/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ","
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr "..."
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr "הוספה"
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr "הוספת קבוצה"
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr "הוספת שיטת קלט"
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr "הוספת שיטת קלט..."
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr "תוספים"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr "ניקוי"
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr "הגדרה"
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr "הגדרת Fcitx 5"
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr "הגדרת שיטת קלט"
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr ""
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr ""
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr "Fcitx 5"
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr ""
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr "קבוצה:"
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "שיטת קלט"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr "שפה:"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr "פריסה:"
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr "שם:"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr "לא"
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr "אישור"
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr "הסרה"
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr "חיפוש..."
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr "בחירת צבע"
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr "בחירת גופן"
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr "בחירת פריסה"
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr ""
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr ""
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr "כן"
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr ""
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr ""

View File

@ -0,0 +1,397 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2020
# UTUMI Hirosi <utuhiro78@yahoo.co.jp>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 20:25+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: UTUMI Hirosi <utuhiro78@yahoo.co.jp>, 2022\n"
"Language-Team: Japanese (https://www.transifex.com/fcitx/teams/12005/ja/)\n"
"Language: ja\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/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr "- %1 を無効にする\n"
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- %1 の一部の機能を無効にする\n"
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr "..."
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr "追加"
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr "グループを追加"
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr "入力メソッドを追加"
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr "入力メソッドを追加..."
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr "アドオン"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr "作者"
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "DBusがFcitxと接続できませんでした。Fcitxは動いていますか?"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr "クリア"
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr "設定"
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr "Fcitx 5 の設定"
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr "入力メソッドの設定"
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr "アドオンを設定..."
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr "グローバルオプションを設定..."
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr "Copyright 2017 Xuetian Weng"
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr "現在のグループが変更されました"
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr "現在のページはまだ保存されていません。最初に設定を保存してください。"
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
"%1 を無効にすると次のようにもなります:\n"
"%2\n"
"無効にしてもよろしいですか?"
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "グループを変更しますか?現在のグループへの変更は失われます!"
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr "空"
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr "Fcitx 5"
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr "ファイル記述子 <fd>"
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr "修正"
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"fcitx の更新が見つかりました。新しくインストールされる入力メソッドとアドオン"
"を確認しますかすでにロードされているアドオンを更新するには、fcitx を再起動"
"する必要があります。"
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr "Plasma テーマに基づいて Fcitx 5 クラシック UI テーマを生成する"
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr "グローバルオプション"
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr "グループ名"
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr "グループ:"
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "入力メソッド"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr "入力メソッドオフ"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr "入力メソッドオン"
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr "キーコードモード"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr "言語:"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr "レイアウト:"
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr "名前:"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr "いいえ"
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr "OK"
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr "現在の言語のみ表示 (&S)"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr "出力パス <output>"
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr "Plasma テーマ名 <name>"
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr "再度有効にする"
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr "削除"
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr "再起動"
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr "Fcitx を実行"
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr "検索"
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr "色を選択"
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr "フォントを選択"
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr "レイアウトを選択"
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr "%1 のレイアウトを選択"
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr "システムキーボードのレイアウトを選択..."
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr "グループ %1 のシステムレイアウトを選択"
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr "システムレイアウトを選択..."
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr "一部の設定が保存されません"
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr "テスト入力"
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr "Plasma テーマから生成されたテーマ %1"
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr "更新"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr "バリアント:"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr "Xuetian Weng"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr "はい"
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"現在設定されている入力メソッドがレイアウトと一致しません。レイアウト設定を変"
"更しますか?"
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"現在設定されている入力メソッドが選択したレイアウトと一致しません。対応する入"
"力メソッドをレイアウトに追加しますか?"
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr "編集"
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr "fd"
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr "名前"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr "出力"

View File

@ -0,0 +1,396 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2020
# Bon Keun Seo <scobyseo@gmail.com>, 2021
# Junghee Lee <daemul72@gmail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: Junghee Lee <daemul72@gmail.com>, 2022\n"
"Language-Team: Korean (https://www.transifex.com/fcitx/teams/12005/ko/)\n"
"Language: ko\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/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr "- %1 비활성화\n"
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- %1의 일부 기능 비활성화\n"
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr "..."
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr "추가"
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr "그룹 추가"
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr "입력기 추가"
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr "입력기 추가..."
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr "애드온"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr "작성자"
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "DBus로 Fcitx에 연결할 수 없습니다. Fcitx가 실행되고 있습니까?"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr "지우기"
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr "구성하기"
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr "Fcitx5 구성하기"
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr "입력기 구성하기"
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr "애드온 구성하기..."
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr "전역 옵션 구성하기..."
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr "저작권자 2017 Xuetian Weng"
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr "현재 그룹이 변경됨"
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr "현재 페이지가 아직 저장되지 않았습니다. 먼저 구성을 저장합니다."
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
"%1을 해제하면 %2%3도 함께 꺼집니다.\n"
"정말로 해제하실 건가요?"
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "그룹을 변경하시겠습니까? 현재 그룹에 대한 변경 사항은 손실됩니다!"
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr "비어있음"
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr "Fcitx5"
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr ""
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr "수정"
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"Fcitx 설치에 대한 업데이트를 찾았습니다. 새로 설치된 입력기 및 추가 기능을 확"
"인하시겠습니까? 이미 불러온 추가 기능을 업데이트하려면 Fcitx를 다시 시작해야 "
"합니다."
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr "전역 옵션"
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr "그룹 이름"
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr "그룹:"
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "입력기"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr "입력기 끔"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr "입력기 켬"
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr "키 코드 모드"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr "언어:"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr "자판:"
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr "이름:"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr "아니오"
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr "확인"
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr "현재 언어만 표시(&S)"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr "재 활성화"
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr "제거"
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr "재시작"
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr "Fcitx 실행"
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr "검색..."
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr "색상 선택"
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr "글꼴 선택"
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr "자판 선택"
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr "%1용 자판 선택"
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr "시스템 키보드 자판 선택..."
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr "%1 그룹용 시스템자판 선택"
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr "시스템 자판 선택..."
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr "일부 구성이 저장되지 않음"
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr "테스트 입력"
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr "업데이트"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr "변형:"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr "Xuetian Weng"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr "예"
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"현재 구성된 입력기가 자판과 맞지 않습니다. 자판 구성을 변경하시겠습니까?"
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"현재 구성된 입력기가 선택한 자판과 맞지 않습니다. 자판에 적합한 입력기를 추가"
"하시겠습니까?"
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr "편집"
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr ""

View File

@ -0,0 +1,382 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-08-16 20:24+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: LANG\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: src/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr ""
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr ""
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr ""
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr ""
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr ""
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr ""
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr ""
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr ""
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr ""
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr ""
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr ""
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr ""
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr ""
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr ""
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr ""
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr ""

View File

@ -0,0 +1,401 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2020
# Dmitry <dmitrydmitry761@gmail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-25 20:25+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: Dmitry <dmitrydmitry761@gmail.com>, 2022\n"
"Language-Team: Russian (https://www.transifex.com/fcitx/teams/12005/ru/)\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
"(n%100>=11 && n%100<=14)? 2 : 3);\n"
#: src/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr "%1:"
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ", "
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr "- Отключить %1\n"
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- Отключить некоторые функции в %1\n"
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr "..."
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr "Добавить"
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr "Добавить группу"
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr "Добавить метод ввода"
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr "Добавить метод ввода..."
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr "Дополнения"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr "Автор"
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "Не удалось соединиться с Fcitx через DBus, запущен ли Fcitx?"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr "Чисто"
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr "Настроить"
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr "Настроить Fcitx 5"
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr "Настроить метод ввода"
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr "Настроить дополнения..."
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr "Настроить глобальные параметры..."
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr "Copyright 2017 Xuetian Weng"
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr "Текущая группа изменена"
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr "Текущая страница еще не сохранена. Сначала сохраните конфигурацию."
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
"Отключение %1 также:\n"
"%2\n"
"Вы уверены, что хотите отключить его?"
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "Вы хотите сменить группу? Изменения в текущей группе будут потеряны!"
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr "Пусто"
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr "Fcitx 5"
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr "Файловый дескриптор <fd>"
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr "Исправить"
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"Найдены обновления для установки fcitx. Вы хотите проверить наличие недавно "
"установленных методов ввода и дополнений? Чтобы обновить уже загруженные "
"дополнения, необходимо перезапустить fcitx."
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
"Создать классическую тему пользовательского интерфейса Fcitx5 на основе "
"Plasma theme"
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr "Глобальные параметры"
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr "Наименование группы"
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr "Группа"
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "Метод ввода"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr "Метод ввода Выключен"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr "Метод ввода Включен"
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr "Режим кода ключа"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr "Язык:"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr "Раскладка:"
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr "Имя"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr "Нет"
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr "Хорошо"
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr "&Показывать только текущий язык"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr "Путь вывода <output>"
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr "Наименование Plasma theme <name>"
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr "Повторное включение"
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr "Удалить"
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr "Перезапуск"
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr "Запустить Fcitx"
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr "Поиск..."
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr "Выбрать цвет"
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr "Выбрать шрифт"
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr "Выберите макет"
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr "Выберите макет для %1"
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr "Выбор системной раскладки клавиатуры..."
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr "Выберите раскладку системы для группы %1"
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr "Выберите раскладку системы..."
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr "Некоторые конфиги не сохраняются"
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr "Тестовый ввод"
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr "Тема сгенерирована из Plasma Theme %1"
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr "Обновить"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr "Вариант:"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr "Xuetian Weng"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr "Да"
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
"Текущий настроенный метод ввода не соответствует раскладке. Хотите изменить "
"настройку раскладки?"
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"Ваш текущий метод ввода не соответствует выбранной раскладке. Вы хотите "
"добавить соответствующий метод ввода для раскладки?"
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr "редактировать"
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr "fd"
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr "имя"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr "выход"

View File

@ -0,0 +1,386 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2020
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: csslayer <wengxt@gmail.com>, 2020\n"
"Language-Team: Turkish (https://www.transifex.com/fcitx/teams/12005/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr ""
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr ""
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "DBus tarafından Fcitx'e bağlanılamıyor, Fcitx çalışıyor mu?"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr ""
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr ""
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr ""
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr ""
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr ""
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr ""
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr ""
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "Giriş Yöntemi"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr ""
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr "Göster :&Sadece Geçerli Dili"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr ""
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr ""
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr ""
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr ""
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr "Xuetian Weng"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr ""
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr ""

View File

@ -0,0 +1,386 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2020
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: csslayer <wengxt@gmail.com>, 2020\n"
"Language-Team: Vietnamese (https://www.transifex.com/fcitx/teams/12005/vi/)\n"
"Language: vi\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/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr ""
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr ""
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr ""
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr ""
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr ""
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr ""
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr ""
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr ""
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr ""
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "Kiểu gõ"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr ""
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr ""
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr ""
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr ""
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr ""
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr ""
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr ""
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr ""
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr "Xuetian Weng"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr ""
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr ""
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr ""

View File

@ -0,0 +1,394 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# rocka, 2022
# csslayer <wengxt@gmail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:16+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: csslayer <wengxt@gmail.com>, 2022\n"
"Language-Team: Chinese (China) (https://www.transifex.com/fcitx/teams/12005/"
"zh_CN/)\n"
"Language: zh_CN\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/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr "%1"
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr "- 禁用 %1\n"
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- 禁用 %1 中的某些功能\n"
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr "..."
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr "添加"
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr "添加分组"
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr "添加输入法"
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr "添加输入法..."
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr "附加组件"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr "作者"
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "无法通过 DBus 连接到 FcitxFcitx 是否正在运行?"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr "清空"
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr "配置"
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr "配置 Fcitx 5"
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr "配置输入法"
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr "配置附加组件..."
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr "配置全局选项..."
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr "Copyright 2017 Xuetian Weng"
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr "当前分组已修改"
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr "当前页未保存。请先保存配置。"
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
"禁用 %1 将同时:\n"
"%2\n"
"确认要禁用它吗?"
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "您想要更改分组吗?当前分组未保存的修改将会丢失!"
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr "空"
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr "Fcitx 5"
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr "文件描述符<fd>"
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr "修复"
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"发现了 Fcitx 安装的更新。是否想要检查新安装的输入法和附加组件?如果需要更新已"
"经加载的附加组件Fcitx 需要重新启动。"
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr "根据 Plasma 主题生成 Fcitx 5 经典用户界面主题"
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr "全局选项"
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr "分组名称"
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr "分组:"
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "输入法"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr "输入法关闭"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr "输入法开启"
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr "扫描码模式"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr "语言:"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr "布局:"
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr "名称:"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr "否"
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr "确定"
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr "仅显示当前语言(&S)"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr "输出路径"
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr "Plasma 主题名称"
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr "重新启用"
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr "移除"
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr "重启"
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr "运行 Fcitx"
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr "搜索..."
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr "选择颜色"
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr "选择字体"
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr "选择布局"
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr "选择 %1 的布局"
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr "选择系统键盘布局..."
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr "选择分组 %1 的系统布局"
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr "选择系统布局..."
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr "一些配置未保存"
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr "测试输入"
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr "从 Plasma 主题 %1 生成的主题"
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr "更新"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr "变体:"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr "翁学天"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr "是"
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr "您当前配置的输入方式与您的布局不匹配,是否要更改布局设置?"
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr ""
"您当前配置的输入方式与您所选的布局不匹配,是否要为布局添加相应的输入方式?"
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr "编辑"
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr "fd"
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr "名称"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr "输出"

View File

@ -0,0 +1,395 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the org.fcitx.fcitx5.kcm package.
#
# Translators:
# csslayer <wengxt@gmail.com>, 2020
# 黃柏諺 <s8321414@gmail.com>, 2020
# bruh, 2020
# 菘菘 <rrt467778@gmail.com>, 2022
#
msgid ""
msgstr ""
"Project-Id-Version: org.fcitx.fcitx5.kcm\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2022-07-24 15:09+0000\n"
"PO-Revision-Date: 2020-08-01 05:15+0000\n"
"Last-Translator: 菘菘 <rrt467778@gmail.com>, 2022\n"
"Language-Team: Chinese (Taiwan) (https://www.transifex.com/fcitx/teams/12005/"
"zh_TW/)\n"
"Language: zh_TW\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/kcm/package/contents/ui/ConfigGroup.qml:67
#, kde-format
msgid "%1:"
msgstr "%1"
#: src/kcm/package/contents/ui/AddonPage.qml:98
#, kde-format
msgctxt "Separator of a comma list"
msgid ", "
msgstr "、"
#: src/kcm/package/contents/ui/AddonPage.qml:108
#, kde-format
msgid "- Disable %1\n"
msgstr "- 停用 %1\n"
#: src/kcm/package/contents/ui/AddonPage.qml:118
#, kde-format
msgid "- Disable some features in %1\n"
msgstr "- 停用 %1 的部分功能\n"
#: src/kcm/package/contents/ui/KeyOption.qml:49
#, kde-format
msgid "..."
msgstr "……"
#: src/kcm/package/contents/ui/ListOption.qml:179
#: src/kcm/package/contents/ui/AddIMPage.qml:41
#, kde-format
msgid "Add"
msgstr "新增"
#: src/kcm/package/contents/ui/main.qml:112
#, kde-format
msgid "Add Group"
msgstr "新增群組"
#: src/kcm/package/contents/ui/AddIMPage.qml:14
#, kde-format
msgid "Add Input Method"
msgstr "新增輸入法"
#: src/kcm/package/contents/ui/main.qml:216
#, kde-format
msgid "Add Input Method..."
msgstr "新增輸入法……"
#: src/kcm/package/contents/ui/AddonPage.qml:18
#, kde-format
msgid "Addons"
msgstr "附加元件"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Author"
msgstr "作者"
#: src/kcm/package/contents/ui/main.qml:226
#, kde-format
msgid "Cannot connect to Fcitx by DBus, is Fcitx running?"
msgstr "無法透過 DBus 連線至 FcitxFcitx 有在執行嗎?"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:73
#, kde-format
msgid "Clear"
msgstr "清除"
#: src/kcm/package/contents/ui/main.qml:58
#, kde-format
msgid "Configure"
msgstr "設定"
#: src/kcm/main.cpp:47
#, kde-format
msgid "Configure Fcitx 5"
msgstr "設定 Fcitx 5"
#: src/kcm/kcm_fcitx5.desktop.in:13
msgid "Configure Input Method"
msgstr "設定輸入法"
#: src/kcm/package/contents/ui/main.qml:207
#, kde-format
msgid "Configure addons..."
msgstr "設定附加元件……"
#: src/kcm/package/contents/ui/main.qml:201
#, kde-format
msgid "Configure global options..."
msgstr "設定全域選項……"
#: src/kcm/main.cpp:48
#, kde-format
msgid "Copyright 2017 Xuetian Weng"
msgstr "Copyright 2017 Xuetian Weng"
#: src/kcm/package/contents/ui/main.qml:147
#, kde-format
msgid "Current group changed"
msgstr "目前的群組已變更"
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:21
#, kde-format
msgid "Current page is not yet saved. Please save the config first."
msgstr "目前的頁面尚未儲存。請先儲存設定。"
#: src/kcm/package/contents/ui/AddonPage.qml:120
#, kde-format
msgid ""
"Disabling %1 will also:\n"
"%2\n"
"Are you sure you want to disable it?"
msgstr ""
"停用 %1 將同時:\n"
"%2\n"
"確認要停用它嗎?"
#: src/kcm/package/contents/ui/main.qml:165
#, kde-format
msgid "Do you want to change group? Changes to current group will be lost!"
msgstr "您想要變更群組嗎?對目前群組的變更將會遺失!"
#: src/kcm/package/contents/ui/KeyOption.qml:51
#, kde-format
msgid "Empty"
msgstr "空"
#: src/kcm/main.cpp:46
#, kde-format
msgid "Fcitx 5"
msgstr "Fcitx 5"
#: src/plasmathemegenerator/main.cpp:79
#, kde-format
msgid "File descriptor <fd> "
msgstr ""
#: src/kcm/package/contents/ui/main.qml:281
#: src/kcm/package/contents/ui/main.qml:300
#, kde-format
msgid "Fix"
msgstr "修復"
#: src/kcm/package/contents/ui/main.qml:246
#, kde-format
msgid ""
"Found updates to fcitx installation. Do you want to check for newly "
"installed input methods and addons? To update already loaded addons, fcitx "
"would need to be restarted."
msgstr ""
"有新的 Fcitx 安裝套件。您想要檢查是否有新的輸入法以及附加組件嗎?如果要更新已"
"經安裝的附加組件,您需要重新啟動 Fcitx。"
#: src/plasmathemegenerator/main.cpp:74
#, kde-format
msgid "Generate Fcitx 5 Classic UI Theme based on Plasma theme"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:203
#, kde-format
msgid "Global Options"
msgstr "全域選項"
#: src/kcm/package/contents/ui/main.qml:92
#, kde-format
msgid "Group Name"
msgstr "群組名稱"
#: src/kcm/package/contents/ui/main.qml:312
#, kde-format
msgid "Group:"
msgstr "群組:"
#: src/kcm/kcm_fcitx5.desktop.in:12
msgid "Input Method"
msgstr "輸入法"
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method Off"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:355
#, kde-format
msgid "Input Method On"
msgstr ""
#: src/kcm/package/contents/ui/KeyOption.qml:141
#, kde-format
msgid "Key code mode"
msgstr "關鍵代碼模式"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:32
#, kde-format
msgid "Language:"
msgstr "語言:"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:46
#, kde-format
msgid "Layout:"
msgstr "佈局:"
#: src/kcm/package/contents/ui/main.qml:91
#, kde-format
msgid "Name:"
msgstr "名稱:"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "No"
msgstr "否"
#: src/kcm/package/contents/ui/main.qml:101
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:82
#, kde-format
msgid "Ok"
msgstr "是"
#: src/kcm/package/contents/ui/AddIMPage.qml:29
#, kde-format
msgid "Only &Show Current Language"
msgstr "只顯示目前語言(&S)"
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "Output path <output> "
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "Plasma theme name <name> "
msgstr ""
#: src/kcm/package/contents/ui/AddonPage.qml:54
#, kde-format
msgid "Re-Enable"
msgstr "重新啟用"
#: src/kcm/package/contents/ui/ListOption.qml:145
#: src/kcm/package/contents/ui/main.qml:72
#, kde-format
msgid "Remove"
msgstr "移除"
#: src/kcm/package/contents/ui/main.qml:263
#, kde-format
msgid "Restart"
msgstr "重啟"
#: src/kcm/package/contents/ui/main.qml:234
#, kde-format
msgid "Run Fcitx"
msgstr "執行 Fcitx"
#: src/kcm/package/contents/ui/AddonPage.qml:67
#: src/kcm/package/contents/ui/AddIMPage.qml:59
#, kde-format
msgid "Search..."
msgstr "搜尋……"
#: src/kcm/package/contents/ui/ColorOption.qml:41
#, kde-format
msgctxt "@title:window"
msgid "Select Color"
msgstr "選取顏色"
#: src/kcm/package/contents/ui/FontOption.qml:35
#, kde-format
msgctxt "@title:window"
msgid "Select Font"
msgstr "選取字型"
#: src/kcm/package/contents/ui/main.qml:65
#, kde-format
msgid "Select Layout"
msgstr "選取佈局"
#: src/kcm/package/contents/ui/main.qml:68
#, kde-format
msgid "Select layout for %1"
msgstr "選取 %1 的佈局"
#: src/kcm/package/contents/ui/main.qml:184
#, kde-format
msgid "Select system keyboard layout..."
msgstr "選取系統鍵盤佈局……"
#: src/kcm/package/contents/ui/main.qml:180
#, kde-format
msgid "Select system layout for group %1"
msgstr "選取群組 %1 的系統佈局"
#: src/kcm/package/contents/ui/main.qml:177
#, kde-format
msgid "Select system layout..."
msgstr "選取系統佈局……"
#: src/kcm/package/contents/ui/SaveWarningDialog.qml:16
#, kde-format
msgid "Some config is not saved"
msgstr "某些設定尚未儲存"
#: src/kcm/package/contents/ui/main.qml:193
#, kde-format
msgid "Test Input"
msgstr "測試輸入"
#: src/plasmathemegenerator/main.cpp:152
#, kde-format
msgid "Theme generated from Plasma Theme %1"
msgstr ""
#: src/kcm/package/contents/ui/main.qml:254
#, kde-format
msgid "Update"
msgstr "更新"
#: src/kcm/package/contents/ui/SelectLayoutSheet.qml:61
#, kde-format
msgid "Variant:"
msgstr "變體:"
#: src/kcm/main.cpp:51
#, kde-format
msgid "Xuetian Weng"
msgstr "Xuetian Weng"
#: src/kcm/package/contents/ui/ListOption.qml:53
#, kde-format
msgid "Yes"
msgstr "確定"
#: src/kcm/package/contents/ui/main.qml:275
#, kde-format
msgid ""
"Your currently configured input method does not match your layout, do you "
"want to change the layout setting?"
msgstr "您目前設定的輸入法與佈局不符,是否變更佈局設定?"
#: src/kcm/package/contents/ui/main.qml:294
#, kde-format
msgid ""
"Your currently configured input method does not match your selected layout, "
"do you want to add the corresponding input method for the layout?"
msgstr "您目前設定的輸入法與選取佈局不符,是否要對佈局新增對應輸入法?"
#: src/kcm/package/contents/ui/ListOption.qml:84
#, kde-format
msgid "[%1]"
msgstr "[%1]"
#: src/kcm/package/contents/ui/ListOption.qml:137
#, kde-format
msgid "edit"
msgstr "編輯"
#: src/plasmathemegenerator/main.cpp:80
#, kde-format
msgid "fd"
msgstr ""
#: src/plasmathemegenerator/main.cpp:77
#, kde-format
msgid "name"
msgstr ""
#: src/plasmathemegenerator/main.cpp:78
#, kde-format
msgid "output"
msgstr ""

14
src/CMakeLists.txt Normal file
View File

@ -0,0 +1,14 @@
if (ENABLE_KCM)
add_subdirectory(kcm)
endif()
add_subdirectory(lib)
if (ENABLE_CONFIG_QT)
add_subdirectory(configtool)
endif()
add_subdirectory(migrator)
if (ENABLE_KCM)
add_subdirectory(plasmathemegenerator)
endif()

View File

@ -0,0 +1,20 @@
set(configtool_SRCS
main.cpp
mainwindow.cpp
)
add_executable(fcitx5-config-qt ${configtool_SRCS})
set_target_properties(fcitx5-config-qt
PROPERTIES
AUTOMOC TRUE
AUTOUIC TRUE
AUTOUIC_OPTIONS "-tr=fcitx::tr2fcitx;--include=fcitxqti18nhelper.h")
target_link_libraries(fcitx5-config-qt
Qt5::Widgets configwidgetslib
)
install(TARGETS fcitx5-config-qt DESTINATION ${CMAKE_INSTALL_BINDIR})
fcitx5_translate_desktop_file(org.fcitx.fcitx5-config-qt.desktop.in
org.fcitx.fcitx5-config-qt.desktop PO_DIRECTORY ${PROJECT_SOURCE_DIR}/po/fcitx5-configtool)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.fcitx.fcitx5-config-qt.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)

23
src/configtool/main.cpp Normal file
View File

@ -0,0 +1,23 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#include "config.h"
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
app.setApplicationName("fcitx5-config-qt");
app.setApplicationVersion(PROJECT_VERSION);
app.setApplicationDisplayName(_("Fcitx Configuration"));
app.setOrganizationDomain("fcitx.org");
fcitx::registerFcitxQtDBusTypes();
fcitx::kcm::MainWindow mainWindow;
mainWindow.show();
return app.exec();
}

View File

@ -0,0 +1,138 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#include "mainwindow.h"
#include "logging.h"
#include "verticalscrollarea.h"
#include <QKeyEvent>
#include <QMessageBox>
#include <QPushButton>
#include <QSessionManager>
#include <fcitx-utils/i18n.h>
namespace fcitx {
namespace kcm {
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), dbus_(new DBusProvider(this)),
errorOverlay_(new ErrorOverlay(dbus_, this)),
impage_(new IMPage(dbus_, this)),
addonPage_(new AddonSelector(this, dbus_)),
configPage_(new ConfigWidget("fcitx://config/global", dbus_, this)) {
QGuiApplication::setFallbackSessionManagementEnabled(false);
connect(qApp, &QGuiApplication::commitDataRequest, this,
&MainWindow::commitData);
connect(qApp, &QGuiApplication::saveStateRequest, this,
[](QSessionManager &manager) {
manager.setRestartHint(QSessionManager::RestartNever);
});
setupUi(this);
connect(impage_, &IMPage::changed, this, [this]() {
qCDebug(KCM_FCITX5) << "IMPage changed";
Q_EMIT changed(true);
});
connect(addonPage_, &AddonSelector::changed, this, [this]() {
qCDebug(KCM_FCITX5) << "AddonSelector changed";
Q_EMIT changed(true);
});
auto configPageWrapper = new VerticalScrollArea;
configPageWrapper->setWidget(configPage_);
pageWidget->addTab(impage_, _("Input Method"));
pageWidget->addTab(configPageWrapper, _("Global Options"));
pageWidget->addTab(addonPage_, _("Addons"));
connect(configPage_, &ConfigWidget::changed, this,
[this]() { Q_EMIT changed(true); });
connect(this, &MainWindow::changed, this, &MainWindow::handleChanged);
connect(buttonBox, &QDialogButtonBox::clicked, this, &MainWindow::clicked);
load();
buttonBox->button(QDialogButtonBox::Apply)->setText(_("&Apply"));
buttonBox->button(QDialogButtonBox::Ok)->setText(_("&OK"));
buttonBox->button(QDialogButtonBox::Close)->setText(_("&Close"));
buttonBox->button(QDialogButtonBox::Reset)->setText(_("&Reset"));
buttonBox->button(QDialogButtonBox::RestoreDefaults)
->setText(_("Restore &Defaults"));
}
void MainWindow::handleChanged(bool changed) {
changed_ = changed;
buttonBox->button(QDialogButtonBox::Ok)->setEnabled(changed);
buttonBox->button(QDialogButtonBox::Apply)->setEnabled(changed);
buttonBox->button(QDialogButtonBox::Reset)->setEnabled(changed);
}
void MainWindow::load() {
impage_->load();
addonPage_->load();
configPage_->load();
Q_EMIT changed(false);
}
void MainWindow::save() {
impage_->save();
addonPage_->save();
configPage_->save();
Q_EMIT changed(false);
}
void MainWindow::defaults() {
configPage_->buttonClicked(QDialogButtonBox::RestoreDefaults);
Q_EMIT changed(true);
}
void MainWindow::keyPressEvent(QKeyEvent *event) {
QMainWindow::keyPressEvent(event);
if (!event->isAccepted() && event->matches(QKeySequence::Cancel)) {
qApp->quit();
}
}
void MainWindow::clicked(QAbstractButton *button) {
QDialogButtonBox::StandardButton standardButton =
buttonBox->standardButton(button);
if (standardButton == QDialogButtonBox::Apply) {
save();
} else if (standardButton == QDialogButtonBox::Ok) {
save();
qApp->quit();
} else if (standardButton == QDialogButtonBox::Close) {
qApp->quit();
} else if (standardButton == QDialogButtonBox::Reset) {
load();
} else if (standardButton == QDialogButtonBox::RestoreDefaults) {
defaults();
}
}
void MainWindow::commitData(QSessionManager &manager) {
manager.setRestartHint(QSessionManager::RestartNever);
if (!manager.allowsInteraction() || !changed_) {
return;
}
int ret = QMessageBox::warning(
this, _("Apply configuration changes"),
_("Do you want to save the changes or discard them?"),
QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
switch (ret) {
case QMessageBox::Save:
save();
manager.release();
break;
case QMessageBox::Discard:
break;
case QMessageBox::Cancel:
default:
manager.cancel();
}
}
} // namespace kcm
} // namespace fcitx

View File

@ -0,0 +1,52 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#ifndef _KCM_FCITX5_CONFIGTOOL_MAINWINDOW_H_
#define _KCM_FCITX5_CONFIGTOOL_MAINWINDOW_H_
#include "addonselector.h"
#include "configwidget.h"
#include "dbusprovider.h"
#include "erroroverlay.h"
#include "impage.h"
#include "ui_mainwindow.h"
#include <QAbstractButton>
#include <QMainWindow>
namespace fcitx {
namespace kcm {
class MainWindow : public QMainWindow, public Ui::MainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
void load();
void save();
void defaults();
Q_SIGNALS:
void changed(bool state);
protected:
void keyPressEvent(QKeyEvent *event) override;
private Q_SLOTS:
void clicked(QAbstractButton *button);
void commitData(QSessionManager &manager);
private:
void handleChanged(bool state);
bool changed_ = false;
DBusProvider *dbus_;
ErrorOverlay *errorOverlay_;
IMPage *impage_;
AddonSelector *addonPage_;
ConfigWidget *configPage_;
};
} // namespace kcm
} // namespace fcitx
#endif // _KCM_FCITX5_CONFIGTOOL_MAINWINDOW_H (2)_

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>Fcitx Configuration</string>
</property>
<property name="windowIcon">
<iconset theme="fcitx"/>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="pageWidget"/>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Apply|QDialogButtonBox::Close|QDialogButtonBox::Ok|QDialogButtonBox::Reset|QDialogButtonBox::RestoreDefaults</set>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Name=Fcitx 5 Configuration
GenericName=Input Method Configuration
Comment=Change Fcitx 5 Configuration
Icon=fcitx
Exec=fcitx5-config-qt
Type=Application
Categories=Settings;
NoDisplay=true

39
src/kcm/CMakeLists.txt Normal file
View File

@ -0,0 +1,39 @@
add_library(kcm_fcitx5 MODULE
main.cpp
qtkeytrans.cpp
)
target_link_libraries(kcm_fcitx5
KF5::CoreAddons
KF5::I18n
KF5::QuickAddons
XKBCommon::XKBCommon
configlib
)
file(GLOB_RECURSE inFiles RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/package/*")
foreach(infileName ${inFiles})
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/${infileName}"
"${CMAKE_CURRENT_BINARY_DIR}/${infileName}" @ONLY
)
endforeach()
fcitx5_translate_desktop_file(kcm_fcitx5.desktop.in
kcm_fcitx5.desktop PO_DIRECTORY ${PROJECT_SOURCE_DIR}/po/org.fcitx.fcitx5.kcm)
fcitx5_translate_desktop_file(package/metadata.desktop
${CMAKE_CURRENT_BINARY_DIR}/package/metadata.desktop PO_DIRECTORY ${PROJECT_SOURCE_DIR}/po/org.fcitx.fcitx5.kcm)
kcoreaddons_desktop_to_json(kcm_fcitx5 "${CMAKE_CURRENT_BINARY_DIR}/kcm_fcitx5.desktop" DEFAULT_SERVICE_TYPE)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/kcm_fcitx5.desktop"
DESTINATION ${KDE_INSTALL_KSERVICES5DIR})
install(TARGETS kcm_fcitx5 DESTINATION ${KDE_INSTALL_PLUGINDIR}/kcms)
# This is a hack against kpackage_install_package
# 1. kpackage_install_package only accept relative path to ${CMAKE_CURRENT_SOURCE_DIR}
# 2. It need metadata.desktop to run properly, but we only have untranslated file at that time.
# So we just delete the file during the cmake.
file(RELATIVE_PATH RELATIVE_BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
kpackage_install_package(${RELATIVE_BINARY_DIR}/package org.fcitx.fcitx5.kcm kcms)
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/package/metadata.desktop)

View File

@ -0,0 +1,16 @@
[Desktop Entry]
Icon=fcitx
Type=Service
X-KDE-ServiceTypes=KCModule
X-KDE-Library=kcm_fcitx5
X-KDE-ParentApp=kcontrol
X-KDE-System-Settings-Parent-Category=regionalsettings
Name=Input Method
Comment=Configure Input Method
X-KDE-Keywords=keyboard,input,im,fcitx
Categories=Qt;KDE;X-KDE-settings-fcitx;

473
src/kcm/main.cpp Normal file
View File

@ -0,0 +1,473 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#include "main.h"
#include "config.h"
#include "logging.h"
#include "qtkeytrans.h"
#include <KAboutData>
#include <KLocalizedString>
#include <KPluginFactory>
#include <QFileInfo>
#include <QGuiApplication>
#include <QQuickItem>
#include <QQuickRenderControl>
#include <QQuickWindow>
#include <QtGlobal>
#include <config.h>
#include <fcitx-utils/misc.h>
#include <fcitx-utils/standardpath.h>
#include <fcitx-utils/stringutils.h>
namespace fcitx {
namespace kcm {
FcitxModule::FcitxModule(QObject *parent, const QVariantList &args)
: KQuickAddons::ConfigModule(parent, args), dbus_(new DBusProvider(this)),
imConfig_(new IMConfig(dbus_, IMConfig::Flatten, this)),
layoutProvider_(new LayoutProvider(dbus_, this)),
addonModel_(new FlatAddonModel(this)),
addonProxyModel_(new AddonProxyModel(this)) {
#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0))
qmlRegisterType<FilteredIMModel>();
qmlRegisterType<IMProxyModel>();
qmlRegisterType<LanguageModel>();
#else
qmlRegisterAnonymousType<FilteredIMModel>("", 1);
qmlRegisterAnonymousType<IMProxyModel>("", 1);
qmlRegisterAnonymousType<LanguageModel>("", 1);
#endif
KAboutData *about =
new KAboutData("org.fcitx.fcitx5.kcm", i18n("Fcitx 5"), PROJECT_VERSION,
i18n("Configure Fcitx 5"), KAboutLicense::GPL_V2,
i18n("Copyright 2017 Xuetian Weng"), QString(),
QString(), "wengxt@gmail.com");
about->addAuthor(i18n("Xuetian Weng"), i18n("Author"), "wengxt@gmail.com");
setAboutData(about);
addonProxyModel_->setSourceModel(addonModel_);
addonProxyModel_->sort(0);
connect(dbus_, &DBusProvider::availabilityChanged, this,
&FcitxModule::handleAvailabilityChanged);
connect(imConfig_, &IMConfig::changed, this,
[this]() { setNeedsSave(true); });
connect(addonModel_, &FlatAddonModel::changed, this,
[this]() { setNeedsSave(true); });
handleAvailabilityChanged(dbus_->available());
xkbContext_.reset(xkb_context_new(XKB_CONTEXT_NO_FLAGS));
struct xkb_rule_names rule_names = {"evdev", "pc105", "us", "", ""};
xkbKeymap_.reset(xkb_keymap_new_from_names(xkbContext_.get(), &rule_names,
XKB_KEYMAP_COMPILE_NO_FLAGS));
xkbState_.reset(xkb_state_new(xkbKeymap_.get()));
connect(this, &ConfigModule::pagePushed, this, [this](QQuickItem *page) {
pages_[currentIndex() + 1] = page;
if (page->property("needsSave").isValid()) {
connect(page, SIGNAL(needsSaveChanged()), this,
SLOT(pageNeedsSaveChanged()));
}
});
}
FcitxModule::~FcitxModule() {}
void FcitxModule::pageNeedsSaveChanged() { setNeedsSave(true); }
void FcitxModule::load() {
imConfig_->load();
for (const auto &page : pages_) {
if (page && page->property("needsSave").isValid()) {
QMetaObject::invokeMethod(page, "load", Qt::DirectConnection);
}
}
setNeedsSave(false);
}
void FcitxModule::save() {
imConfig_->save();
for (const auto &page : pages_) {
if (page && page->property("needsSave").isValid()) {
QMetaObject::invokeMethod(page, "save", Qt::DirectConnection);
}
}
}
QVariant decomposeDBusVariant(const QVariant &v) {
QVariantMap map;
if (v.canConvert<QDBusArgument>()) {
auto argument = qvariant_cast<QDBusArgument>(v);
argument >> map;
} else {
return v;
}
for (auto &item : map) {
item = decomposeDBusVariant(item);
}
return map;
}
QVariantList configTypeToVariant(const FcitxQtConfigType &type,
QVariantMap &typeMap,
const QMap<QString, FcitxQtConfigType> &types);
void configOptionToVariant(QVariantList &options,
const FcitxQtConfigOption &option,
QVariantMap &typeMap,
const QMap<QString, FcitxQtConfigType> &types) {
if (types.contains(option.type())) {
if (typeMap[option.type()].isNull()) {
// Fill a dummy value first to avoid infinite recursion if bug
// happens.
typeMap[option.type()] = QVariantMap();
typeMap[option.type()] =
configTypeToVariant(types[option.type()], typeMap, types);
}
// Expand the nested type.
// Add a section title.
QVariantMap section;
section["isSection"] = true;
section["description"] = option.description();
options.append(section);
auto subOptions = typeMap[option.type()].value<QVariantList>();
for (const auto &subOption : subOptions) {
auto map = subOption.value<QVariantMap>();
if (map["isSection"].toBool()) {
map["description"] = QString("%1 > %2").arg(
option.description(), map["description"].toString());
options.append(map);
} else {
auto names = map["name"].toStringList();
names.prepend(option.name());
map["name"] = names;
options.append(map);
}
}
} else {
QVariantMap map;
map["name"] = QStringList() << option.name();
map["description"] = option.description();
map["type"] = option.type();
map["defaultValue"] =
decomposeDBusVariant(option.defaultValue().variant());
map["isSection"] = false;
QVariantMap propertiesMap;
for (auto p : fcitx::MakeIterRange(option.properties().keyValueBegin(),
option.properties().keyValueEnd())) {
propertiesMap[p.first] = decomposeDBusVariant(p.second);
}
map["properties"] = propertiesMap;
options.append(map);
}
}
QVariantList
configTypeToVariant(const FcitxQtConfigType &type, QVariantMap &typeMap,
const QMap<QString, FcitxQtConfigType> &types) {
QVariantList options;
for (const auto &option : type.options()) {
configOptionToVariant(options, option, typeMap, types);
}
return options;
}
void FcitxModule::pushConfigPage(const QString &title, const QString &uri) {
if (!dbus_->controller()) {
return;
}
auto call = dbus_->controller()->GetConfig(uri);
auto watcher = new QDBusPendingCallWatcher(call, this);
connect(watcher, &QDBusPendingCallWatcher::finished, this,
[this, uri, title](QDBusPendingCallWatcher *watcher) {
watcher->deleteLater();
QDBusPendingReply<QDBusVariant, FcitxQtConfigTypeList> reply =
*watcher;
if (!reply.isValid()) {
return;
}
auto configTypes = reply.argumentAt<1>();
if (configTypes.empty()) {
return;
}
QVariantMap map;
QVariantMap typeMap;
QMap<QString, FcitxQtConfigType> types;
map["uri"] = uri;
map["rawValue"] =
decomposeDBusVariant(reply.argumentAt<0>().variant());
map["typeName"] = configTypes[0].name();
// Reserve the place for types.
for (const auto &configType : configTypes) {
types[configType.name()] = configType;
}
for (const auto &configType : configTypes) {
if (typeMap[configType.name()].isNull()) {
typeMap[configType.name()] =
configTypeToVariant(configType, typeMap, types);
}
}
map["typeMap"] = typeMap;
map["title"] = title;
push("ConfigPage.qml", map);
});
}
void FcitxModule::handleAvailabilityChanged(bool avail) {
if (avail) {
loadAddon();
}
Q_EMIT availabilityChanged(avail);
}
void FcitxModule::loadAddon() {
if (!dbus_->controller()) {
return;
}
auto call = dbus_->controller()->GetAddonsV2();
auto callwatcher = new QDBusPendingCallWatcher(call, this);
connect(callwatcher, &QDBusPendingCallWatcher::finished, this,
[this](QDBusPendingCallWatcher *watcher) {
QDBusPendingReply<FcitxQtAddonInfoV2List> addons = *watcher;
watcher->deleteLater();
if (addons.isValid()) {
addonModel_->setAddons(addons.value());
addonProxyModel_->sort(0);
}
});
}
void FcitxModule::saveAddon() {
if (!dbus_->controller()) {
return;
}
FcitxQtAddonStateList list;
for (auto &enabled : addonModel_->enabledList()) {
FcitxQtAddonState state;
state.setUniqueName(enabled);
state.setEnabled(true);
list.append(state);
}
for (auto &disabled : addonModel_->disabledList()) {
FcitxQtAddonState state;
state.setUniqueName(disabled);
state.setEnabled(false);
list.append(state);
}
if (list.size()) {
dbus_->controller()->SetAddonsState(list);
loadAddon();
}
}
void FcitxModule::launchExternal(const QString &uri) {
if (uri.startsWith("fcitx://config/addon/")) {
QString wrapperPath = FCITX5_QT5_GUI_WRAPPER;
if (!QFileInfo(wrapperPath).isExecutable()) {
wrapperPath = QString::fromStdString(stringutils::joinPath(
StandardPath::global().fcitxPath("libexecdir"),
"fcitx5-qt5-gui-wrapper"));
}
QStringList args;
if (QGuiApplication::platformName() == "xcb") {
auto window = mainUi()->window();
QWindow *actualWindow = window;
if (window) {
auto renderWindow =
QQuickRenderControl::renderWindowFor(window);
if (renderWindow) {
actualWindow = renderWindow;
}
}
while (actualWindow && actualWindow->parent()) {
actualWindow = actualWindow->parent();
}
WId wid = actualWindow ? actualWindow->winId() : 0;
if (wid) {
args << "-w";
args << QString::number(wid);
}
}
args << uri;
qCDebug(KCM_FCITX5) << "Launch: " << wrapperPath << args;
QProcess::startDetached(wrapperPath, args);
} else {
// Assume this is a program path.
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
QStringList args = QProcess::splitCommand(uri);
QString program = args.takeFirst();
QProcess::startDetached(program, args);
#else
QProcess::startDetached(uri);
#endif
}
}
void FcitxModule::grabKeyboard(QQuickItem *item) {
item->window()->setKeyboardGrabEnabled(true);
item->installEventFilter(this);
}
void FcitxModule::ungrabKeyboard(QQuickItem *item) {
item->window()->setKeyboardGrabEnabled(false);
item->removeEventFilter(this);
}
bool FcitxModule::eventFilter(QObject *, QEvent *event) {
if (event->type() == QEvent::KeyPress ||
event->type() == QEvent::KeyRelease ||
event->type() == QEvent::ShortcutOverride) {
auto keyEvent = static_cast<QKeyEvent *>(event);
key_ = Key(static_cast<KeySym>(keyEvent->nativeVirtualKey()),
KeyStates(keyEvent->nativeModifiers()),
keyEvent->nativeScanCode());
}
return false;
}
QString FcitxModule::eventToString(int keyQt, int modifiers,
quint32 nativeScanCode, const QString &text,
bool keyCode) {
int sym;
unsigned int states;
modifiers = modifiers & (Qt::SHIFT | Qt::CTRL | Qt::ALT | Qt::META);
if (keyQt > 0) {
if ((keyQt == Qt::Key_Backtab) && (modifiers & Qt::SHIFT)) {
keyQt = Qt::Key_Tab;
}
} else {
return QString();
}
Key key;
if (QGuiApplication::platformName() == "xcb" ||
QGuiApplication::platformName().startsWith("wayland")) {
if (keyCode) {
key = Key::fromKeyCode(key_.code(), key_.states());
} else {
key = key_.normalize();
}
} else if (qEventToSym(keyQt, Qt::KeyboardModifiers(modifiers), text, sym,
states)) {
if (keyCode) {
key = Key::fromKeyCode(nativeScanCode, KeyStates(states));
} else {
if (keyQt == Qt::Key_Shift || keyQt == Qt::Key_Super_L ||
keyQt == Qt::Key_Alt || keyQt == Qt::Key_Control) {
auto xkbsym =
xkb_state_key_get_one_sym(xkbState_.get(), nativeScanCode);
if (keyQt == Qt::Key_Shift && xkbsym == XKB_KEY_Shift_R) {
sym = FcitxKey_Shift_R;
}
if (keyQt == Qt::Key_Super_L && xkbsym == XKB_KEY_Super_R) {
sym = FcitxKey_Super_R;
}
if (keyQt == Qt::Key_Alt && xkbsym == XKB_KEY_Alt_R) {
sym = FcitxKey_Alt_R;
}
if (keyQt == Qt::Key_Control && xkbsym == XKB_KEY_Control_R) {
sym = FcitxKey_Control_R;
}
}
key = Key(static_cast<KeySym>(sym),
KeyStates(states) |
Key::keySymToStates(static_cast<KeySym>(sym)),
nativeScanCode);
}
}
if (key.isValid()) {
return QString::fromStdString(key.toString());
}
return QString();
}
QString FcitxModule::localizedKeyString(const QString &str) {
Key key(str.toStdString());
return QString::fromStdString(key.toString(KeyStringFormat::Localized));
}
void FcitxModule::saveConfig(const QString &uri, const QVariant &value) {
if (!dbus_->controller()) {
return;
}
auto map = value.value<QVariantMap>();
QDBusVariant var(QVariant::fromValue(map));
dbus_->controller()->SetConfig(uri, var);
}
QQuickItem *FcitxModule::pageNeedsSave(int idx) {
if (auto page = pages_.value(idx)) {
auto value = page->property("needsSave");
if (value.isValid() && value.toBool()) {
return page;
}
}
return nullptr;
}
void FcitxModule::defaults() {
for (const auto &page : pages_) {
if (page) {
QMetaObject::invokeMethod(page, "defaults", Qt::DirectConnection);
}
}
}
void FcitxModule::runFcitx() {
QProcess::startDetached(
QString::fromStdString(StandardPath::fcitxPath("bindir", "fcitx5")),
QStringList());
}
void FcitxModule::fixLayout() {
const auto &imEntries = imConfig_->imEntries();
if (imEntries.size() > 0 &&
imEntries[0].key() !=
QString("keyboard-%0").arg(imConfig_->defaultLayout()) &&
imEntries[0].key().startsWith("keyboard-")) {
auto layoutString = imEntries[0].key().mid(9);
imConfig_->setDefaultLayout(layoutString);
}
}
void FcitxModule::fixInputMethod() {
auto imname = QString("keyboard-%0").arg(imConfig_->defaultLayout());
FcitxQtStringKeyValue imEntry;
int i = 0;
auto imEntries = imConfig_->imEntries();
for (; i < imEntries.size(); i++) {
if (imEntries[i].key() == imname) {
imEntry = imEntries[i];
imEntries.removeAt(i);
break;
}
}
if (i == imEntries.size()) {
imEntry.setKey(imname);
}
imEntries.push_front(imEntry);
imConfig_->setIMEntries(imEntries);
imConfig_->emitChanged();
}
} // namespace kcm
} // namespace fcitx
K_PLUGIN_FACTORY_WITH_JSON(KCMFcitxFactory, "kcm_fcitx5.json",
registerPlugin<fcitx::kcm::FcitxModule>();)
#include "main.moc"

141
src/kcm/main.h Normal file
View File

@ -0,0 +1,141 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#ifndef _KCM_FCITX5_KCM_NG_MAIN_H_
#define _KCM_FCITX5_KCM_NG_MAIN_H_
#include "addonmodel.h"
#include "dbusprovider.h"
#include "font.h"
#include "imconfig.h"
#include "model.h"
#include <KQuickAddons/ConfigModule>
#include <QFont>
#include <QMap>
#include <fcitx-utils/color.h>
#include <fcitx-utils/key.h>
#include <layoutprovider.h>
#include <xkbcommon/xkbcommon.h>
class BalooSettings;
namespace fcitx {
namespace kcm {
class FcitxModule : public KQuickAddons::ConfigModule {
Q_OBJECT
Q_PROPERTY(IMConfig *imConfig READ imConfig CONSTANT)
Q_PROPERTY(LayoutProvider *layoutProvider READ layoutProvider CONSTANT)
Q_PROPERTY(AddonProxyModel *addonModel READ addonModel CONSTANT)
Q_PROPERTY(bool availability READ availability NOTIFY availabilityChanged)
public:
FcitxModule(QObject *parent, const QVariantList &args);
virtual ~FcitxModule() override;
auto imConfig() const { return imConfig_; }
auto layoutProvider() const { return layoutProvider_; }
auto addonModel() const { return addonProxyModel_; }
bool availability() const { return dbus_->available(); }
public Q_SLOTS:
void load() override;
void save() override;
void defaults() override;
void loadAddon();
void saveAddon();
void pushConfigPage(const QString &title, const QString &uri);
void launchExternal(const QString &uri);
void saveConfig(const QString &uri, const QVariant &value);
QQuickItem *pageNeedsSave(int idx);
QFont parseFont(const QString &font) {
return ::fcitx::kcm::parseFont(font);
}
QString fontToString(const QFont &font) {
return ::fcitx::kcm::fontToString(font);
}
QColor parseColor(const QString &str) {
Color color;
try {
color.setFromString(str.toStdString());
} catch (...) {
}
QColor qcolor;
qcolor.setRedF(color.redF());
qcolor.setGreenF(color.greenF());
qcolor.setBlueF(color.blueF());
qcolor.setAlphaF(color.alphaF());
return qcolor;
}
QString colorToString(const QColor &color) {
Color fcitxColor;
fcitxColor.setRedF(color.redF());
fcitxColor.setGreenF(color.greenF());
fcitxColor.setBlueF(color.blueF());
fcitxColor.setAlphaF(color.alphaF());
return QString::fromStdString(fcitxColor.toString());
}
void grabKeyboard(QQuickItem *item);
void ungrabKeyboard(QQuickItem *item);
bool eventFilter(QObject *watched, QEvent *event) override;
QString eventToString(int key, int modifiers, quint32 nativeScanCode,
const QString &text, bool keyCode);
QString localizedKeyString(const QString &key);
void runFcitx();
void fixLayout();
void fixInputMethod();
Q_SIGNALS:
void availabilityChanged(bool avail);
private Q_SLOTS:
void handleAvailabilityChanged(bool avail);
void pageNeedsSaveChanged();
private:
DBusProvider *dbus_;
IMConfig *imConfig_;
LayoutProvider *layoutProvider_;
FlatAddonModel *addonModel_;
AddonProxyModel *addonProxyModel_;
QMap<int, QPointer<QQuickItem>> pages_;
struct XKBStateDeleter {
void operator()(struct xkb_state *state) const {
return xkb_state_unref(state);
}
};
struct XKBKeymapDeleter {
void operator()(struct xkb_keymap *keymap) const {
return xkb_keymap_unref(keymap);
}
};
struct XKBContextDeleter {
void operator()(struct xkb_context *context) const {
return xkb_context_unref(context);
}
};
using ScopedXKBState = std::unique_ptr<struct xkb_state, XKBStateDeleter>;
using ScopedXKBKeymap =
std::unique_ptr<struct xkb_keymap, XKBKeymapDeleter>;
using ScopedXKBContext =
std::unique_ptr<struct xkb_context, XKBContextDeleter>;
ScopedXKBState xkbState_;
ScopedXKBKeymap xkbKeymap_;
ScopedXKBContext xkbContext_;
Key key_;
};
} // namespace kcm
} // namespace fcitx
#endif // _KCM_FCITX5_KCM_NG_MAIN_H_

View File

@ -0,0 +1,82 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
import org.kde.kirigami 2.10 as Kirigami
import org.kde.kcm 1.2 as KCM
KCM.ScrollViewKCM {
title: i18n("Add Input Method")
Component.onCompleted: {
search.forceActiveFocus();
}
Binding {
property: "filterText"
target: kcm.imConfig.availIMModel
value: search.text
}
footer: RowLayout {
CheckBox {
checked: true
text: i18n("Only &Show Current Language")
visible: search.text.length === 0
onClicked: {
kcm.imConfig.availIMModel.showOnlyCurrentLanguage = checked;
}
}
Item {
Layout.fillWidth: true
}
Button {
icon.name: "list-add-symbolic"
text: i18n("Add")
onClicked: {
if (availIMView.currentIndex === -1) {
return;
}
kcm.imConfig.addIM(availIMView.currentIndex);
if (kcm.imConfig.currentIMModel.count === 1) {
kcm.mainUi.checkInputMethod();
}
kcm.pop();
}
}
}
header: RowLayout {
TextField {
id: search
Layout.fillWidth: true
placeholderText: i18n("Search...")
}
}
view: ListView {
id: availIMView
model: kcm.imConfig.availIMModel
section {
property: "language"
delegate: Kirigami.ListSectionHeader {
label: section
}
}
delegate: Kirigami.BasicListItem {
label: model.name
onClicked: {
availIMView.currentIndex = index;
}
}
}
}

View File

@ -0,0 +1,152 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
import org.kde.kirigami 2.10 as Kirigami
import org.kde.kcm 1.2 as KCM
KCM.ScrollViewKCM {
id: addonPage
property bool needsSave: false
property string reenableAddon
title: i18n("Addons")
function defaults() {
}
function load() {
kcm.loadAddon();
needsSave = false;
}
function save() {
kcm.saveAddon();
needsSave = false;
}
function showWarning() {
dialog.open();
}
Binding {
property: "filterText"
target: kcm.addonModel
value: search.text
}
SaveWarningDialog {
id: dialog
}
header: ColumnLayout {
Kirigami.InlineMessage {
id: disableAddonWarning
Layout.fillWidth: true
showCloseButton: true
type: Kirigami.MessageType.Warning
actions: [
Kirigami.Action {
displayHint: Kirigami.Action.DisplayHint.KeepVisible
iconName: "edit-undo"
text: i18n("Re-Enable")
onTriggered: {
kcm.addonModel.sourceModel.enable(reenableAddon);
disableAddonWarning.visible = false;
}
}
]
}
RowLayout {
TextField {
id: search
Layout.fillWidth: true
placeholderText: i18n("Search...")
}
}
}
view: ListView {
model: kcm.addonModel
section {
property: "categoryName"
delegate: Kirigami.ListSectionHeader {
label: section
}
}
delegate: Kirigami.SwipeListItem {
id: listItem
RowLayout {
CheckBox {
id: itemChecked
Layout.alignment: Qt.AlignVCenter
Layout.leftMargin: Kirigami.Units.gridUnit
checked: model.enabled
onClicked: {
model.enabled = !model.enabled;
if (!model.enabled) {
var dependencies = model.dependencies;
var optionalDependencies = model.optionalDependencies;
if (dependencies.length > 0 || optionalDependencies.length > 0) {
reenableAddon = model.uniqueName;
var sep = i18nc("Separator of a comma list", ", ");
var depWarning = "";
if (dependencies.length > 0) {
var addonNames = [];
for (var i = 0; i < dependencies.length; i++) {
var name = kcm.addonModel.sourceModel.addonName(dependencies[i]);
if (name) {
addonNames.push(name);
}
}
depWarning = depWarning.concat(i18n("- Disable %1\n", addonNames.join(sep)));
}
if (optionalDependencies.length > 0) {
var addonNames = [];
for (var i = 0; i < optionalDependencies.length; i++) {
var name = kcm.addonModel.sourceModel.addonName(optionalDependencies[i]);
if (name) {
addonNames.push(name);
}
}
depWarning = depWarning.concat(i18n("- Disable some features in %1\n", addonNames.join(sep)));
}
disableAddonWarning.text = i18n("Disabling %1 will also:\n%2\nAre you sure you want to disable it?", model.name, depWarning);
disableAddonWarning.visible = true;
}
}
needsSave = true;
}
}
ColumnLayout {
Kirigami.Heading {
Layout.fillWidth: true
elide: Text.ElideRight
level: 5
text: model.name
}
Label {
opacity: listItem.hovered ? 0.8 : 0.6
text: model.comment
visible: model.comment.length > 0
}
}
}
actions: [
Kirigami.Action {
icon.name: "configure"
visible: model.configurable
onTriggered: kcm.pushConfigPage(model.name, "fcitx://config/addon/" + model.uniqueName)
}
]
}
}
}

View File

@ -0,0 +1,26 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
CheckBox {
property bool needsSave: value !== checked
property variant rawValue
property bool value: rawValue === "True"
function load(rawValue) {
checked = rawValue === "True";
}
function save() {
rawValue = checked ? "True" : "False";
}
Component.onCompleted: {
load(rawValue);
save();
}
}

View File

@ -0,0 +1,49 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import QtQuick.Dialogs 1.1 as QtDialogs
import org.kde.kirigami 2.10 as Kirigami
Row {
property bool needsSave: button.text != rawValue
property variant rawValue
function load(rawValue) {
colorDialog.color = kcm.parseColor(rawValue);
}
function save() {
rawValue = button.text;
}
Component.onCompleted: {
load(rawValue);
save();
}
Button {
id: button
icon.name: "document-edit"
implicitWidth: Kirigami.Units.gridUnit * 10
text: kcm.colorToString(colorDialog.color)
onClicked: colorDialog.open()
QtDialogs.ColorDialog {
id: colorDialog
modality: Qt.ApplicationModal
showAlphaChannel: true
title: i18nc("@title:window", "Select Color")
}
}
Rectangle {
color: colorDialog.color
height: button.height
width: height
}
}

View File

@ -0,0 +1,84 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import org.kde.kirigami 2.10 as Kirigami
import "utils.js" as Utils
Kirigami.FormLayout {
id: configGroup
property bool needsSave
property variant rawValue
property variant typeMap
property string typeName
function defaults() {
for (var i = 0; i < repeater.count; i++) {
var loader = repeater.itemAt(i);
if (loader.status == Loader.Ready) {
loader.item.load(loader.option.defaultValue);
}
}
}
function load() {
for (var i = 0; i < repeater.count; i++) {
var loader = repeater.itemAt(i);
if (loader.status == Loader.Ready) {
loader.item.load(loader.item.rawValue);
}
}
needsSave = false;
}
function save() {
var rawValue = {};
for (var i = 0; i < repeater.count; i++) {
var loader = repeater.itemAt(i);
if (loader.status == Loader.Ready) {
loader.item.save();
if (loader.item.hasOwnProperty("rawValue")) {
Utils.setRawValue(rawValue, loader.option.name, loader.item.rawValue);
}
}
}
configGroup.rawValue = rawValue;
configGroup.needsSave = false;
}
function setRawValue(rawValue) {
for (var i = 0; i < repeater.count; i++) {
var loader = repeater.itemAt(i);
if (loader.status == Loader.Ready) {
loader.item.load(Utils.getRawValue(rawValue, loader.option.name));
}
}
}
Repeater {
id: repeater
model: typeMap[typeName]
OptionLoader {
id: loader
Kirigami.FormData.isSection: modelData.isSection
Kirigami.FormData.label: modelData.isSection ? modelData.description : i18n("%1:", modelData.description)
@DISABLE_UNDER_KIRIGAMI2_5_76@ Kirigami.FormData.labelAlignment: !modelData.isSection && modelData.type.startsWith("List|") ? (height > Kirigami.Units.gridUnit * 2 ? Qt.AlignTop : 0) : 0
option: modelData
rawValue: modelData.isSection ? null : Utils.getRawValue(configGroup.rawValue, modelData.name)
Connections {
enabled: loader.status == Loader.Ready
target: loader.status == Loader.Ready ? loader.item : null
function onNeedsSaveChanged() {
if (target.needsSave) {
configGroup.needsSave = true;
}
}
}
}
}
}

View File

@ -0,0 +1,55 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
import org.kde.kirigami 2.10 as Kirigami
import org.kde.kcm 1.1 as KCM
Kirigami.ScrollablePage {
id: configPage
property alias needsSave: configGroup.needsSave
property alias rawValue: configGroup.rawValue
property alias typeMap: configGroup.typeMap
property alias typeName: configGroup.typeName
property string uri
function defaults() {
configGroup.defaults();
}
function load() {
configGroup.load();
}
function save() {
configGroup.save();
kcm.saveConfig(uri, rawValue);
}
function showWarning() {
dialog.open();
}
Component.onCompleted: positionTimer.start()
ConfigGroup {
id: configGroup
visible: false
width: parent.width
SaveWarningDialog {
id: dialog
parent: configPage
}
// Hack for force relayout the scrollview
Timer {
id: positionTimer
interval: 0
repeat: false
onTriggered: configGroup.visible = true
}
}
}

View File

@ -0,0 +1,83 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
import org.kde.kirigami 2.10 as Kirigami
Row {
property bool needsSave: value != comboBox.currentIndex
property variant properties
property variant rawValue
property int value: computeValue(rawValue)
function computeValue(rawValue) {
for (var i = 0; i < listModel.count; i++) {
if (listModel.get(i).value == rawValue) {
return i;
}
}
return 0;
}
function load(rawValue) {
comboBox.currentIndex = computeValue(rawValue);
}
function save() {
rawValue = properties["Enum"][comboBox.currentIndex.toString()];
}
Component.onCompleted: {
var i = 0;
while (true) {
var value = properties["Enum"][i.toString()];
if (!value) {
break;
}
var text = "";
if (properties.hasOwnProperty("EnumI18n")) {
if (properties["EnumI18n"].hasOwnProperty(i.toString())) {
text = properties["EnumI18n"][i.toString()];
}
}
if (text == "") {
text = value;
}
var subconfigpath = "";
if (properties.hasOwnProperty("SubConfigPath")) {
if (properties["SubConfigPath"].hasOwnProperty(i.toString())) {
subconfigpath = properties["SubConfigPath"][i.toString()];
}
}
listModel.append({
"text": text,
"value": value,
"subconfigpath": subconfigpath
});
i++;
}
load(rawValue);
save();
}
ComboBox {
id: comboBox
implicitWidth: Kirigami.Units.gridUnit * 14
textRole: "text"
model: ListModel {
id: listModel
}
}
ToolButton {
id: configureButton
icon.name: "configure"
visible: listModel.get(comboBox.currentIndex).subconfigpath !== ""
onClicked: {
kcm.pushConfigPage(listModel.get(comboBox.currentIndex).text, listModel.get(comboBox.currentIndex).subconfigpath);
}
}
}

View File

@ -0,0 +1,37 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
Button {
property string description
readonly property bool needsSave: false
property variant properties
property bool subConfig: false
icon.name: "configure"
function defaults() {
}
function load(rawValue) {
}
function save() {
}
Component.onCompleted: {
if (properties.hasOwnProperty("LaunchSubConfig") && properties["LaunchSubConfig"] == "True") {
subConfig = true;
}
}
onClicked: {
if (subConfig) {
kcm.pushConfigPage(description, properties.External);
} else {
kcm.launchExternal(properties.External);
}
}
}

View File

@ -0,0 +1,37 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import QtQuick.Dialogs 1.1 as QtDialogs
import org.kde.kirigami 2.10 as Kirigami
Button {
property bool needsSave: text !== rawValue
property variant rawValue
icon.name: "document-edit"
text: kcm.fontToString(fontDialog.font)
function load(rawValue) {
fontDialog.font = kcm.parseFont(rawValue);
}
function save() {
rawValue = text;
}
Component.onCompleted: {
load(rawValue);
save();
}
onClicked: fontDialog.open()
QtDialogs.FontDialog {
id: fontDialog
title: i18nc("@title:window", "Select Font")
}
}

View File

@ -0,0 +1,40 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
SpinBox {
property bool needsSave: value !== oldValue
property int oldValue: parseInt(rawValue)
property variant properties
property variant rawValue
from: validator.bottom
to: validator.top
function load(rawValue) {
value = parseInt(rawValue);
}
function save() {
rawValue = value.toString();
}
Component.onCompleted: {
if (properties.hasOwnProperty("IntMin")) {
validator.bottom = parseInt(properties.IntMin);
}
if (properties.hasOwnProperty("IntMax")) {
validator.top = parseInt(properties.IntMax);
}
load(rawValue);
save();
}
validator: IntValidator {
id: validator
}
}

View File

@ -0,0 +1,104 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
import org.kde.kirigami 2.10 as Kirigami
RowLayout {
id: keyList
property alias hovered: addButton.hovered
property bool needsSave
property variant properties
property variant rawValue
function load(rawValue) {
var diff = false;
if (listModel.count !== 0) {
listModel.remove(0, listModel.count);
}
var i = 0;
while (true) {
if (!rawValue.hasOwnProperty(i.toString())) {
break;
}
var value = rawValue[i.toString()];
listModel.append({
"key": value
});
if (!keyList.rawValue.hasOwnProperty(i.toString()) || rawValue[i.toString()] !== keyList.rawValue[i.toString()]) {
diff = true;
}
i++;
}
if (keyList.rawValue.hasOwnProperty(i.toString())) {
diff = true;
}
needsSave = diff;
}
function save() {
var newRawValue = {};
var j = 0;
for (var i = 0; i < listModel.count; i++) {
if (listModel.get(i).key !== "") {
newRawValue[j.toString()] = listModel.get(i).key;
j++;
}
}
rawValue = newRawValue;
needsSave = false;
}
Component.onCompleted: {
load(rawValue);
save();
}
ColumnLayout {
Repeater {
model: listModel
delegate: RowLayout {
KeyOption {
Layout.fillWidth: true
Layout.minimumWidth: Kirigami.Units.gridUnit * 9
properties: keyList.properties.hasOwnProperty("ListConstrain") ? keyList.properties.ListConstrain : {}
rawValue: model.key
onKeyStringChanged: {
model.key = keyString;
keyList.needsSave = true;
}
}
ToolButton {
icon.name: "edit-delete-symbolic"
onClicked: {
// Need to happen before real remove.
keyList.needsSave = true;
listModel.remove(model.index);
}
}
}
}
}
ToolButton {
id: addButton
Layout.alignment: Qt.AlignTop
icon.name: "list-add-symbolic"
onClicked: {
keyList.needsSave = true;
listModel.append({
"key": ""
});
}
}
ListModel {
id: listModel
}
}

View File

@ -0,0 +1,144 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
import "utils.js" as Utils
Button {
id: root
property bool allowModifierLess: false
property bool allowModifierOnly: false
property string currentKeyString: ""
property bool grab: false
property string keyString: ""
property bool needsSave: keyString !== rawValue
property variant properties
property variant rawValue
down: grab
flat: false
focus: grab
text: prettyKeyString(grab ? currentKeyString : keyString)
function accept() {
kcm.ungrabKeyboard(root);
grab = false;
}
function isOkWhenModifierless(event) {
var isSpecialKey = event.key == Qt.Key_Return || event.key == Qt.Key_Space || event.key == Qt.Key_Tab || event.key == Qt.Key_Backtab || event.key == Qt.Key_Backspace || event.key == Qt.Key_Delete;
if (isSpecialKey) {
if ((event.modifiers & Qt.ShiftModifier) != 0) {
return true;
}
return false;
} else if (event.text.length === 1) {
return false;
}
return true;
}
function load(rawValue) {
keyString = rawValue;
}
function prettyKeyString(keyString) {
if (keyString === "") {
if (grab) {
return i18n("...");
} else {
return i18n("Empty");
}
}
return kcm.localizedKeyString(keyString);
}
function save() {
rawValue = keyString;
}
Component.onCompleted: {
if (properties.hasOwnProperty("AllowModifierLess")) {
allowModifierLess = properties.AllowModifierLess == "True";
}
if (properties.hasOwnProperty("AllowModifierOnly")) {
allowModifierOnly = properties.AllowModifierOnly == "True";
}
load(rawValue);
save();
}
Keys.onPressed: {
event.accepted = true;
if (!grab) {
return;
}
var done = true;
currentKeyString = kcm.eventToString(event.key, event.modifiers, event.nativeScanCode, event.text, keyCodeAction.checked);
if (text === "") {
done = false;
}
var modifiers = event.modifiers & (Qt.ShiftModifier | Qt.ControlModifier | Qt.AltModifier | Qt.MetaModifier);
if ((modifiers & ~Qt.ShiftModifier) == 0) {
if (!isOkWhenModifierless(event) && !allowModifierLess) {
done = false;
}
}
if ((event.key == Qt.Key_Shift || event.key == Qt.Key_Control || event.key == Qt.Key_Meta || event.key == Qt.Key_Super_L || event.key == Qt.Key_Super_R || event.key == Qt.Key_Hyper_L || event.key == Qt.Key_Hyper_R || event.key == Qt.Key_Alt)) {
done = false;
}
if (done) {
keyString = currentKeyString;
accept();
}
}
Keys.onReleased: {
event.accepted = true;
if (!grab) {
return;
}
var done = false;
if (allowModifierOnly && (event.key == Qt.Key_Shift || event.key == Qt.Key_Control || event.key == Qt.Key_Meta || event.key == Qt.Key_Super_L || event.key == Qt.Key_Super_R || event.key == Qt.Key_Hyper_L || event.key == Qt.Key_Hyper_R || event.key == Qt.Key_Alt)) {
done = true;
}
var keyStr = kcm.eventToString(event.key, event.modifiers, event.nativeScanCode, event.text, keyCodeAction.checked);
if (keyStr === "") {
done = false;
}
if (done) {
keyString = keyStr;
accept();
} else {
if (event.modifiers == 0) {
currentKeyString = "";
} else {
currentKeyString = keyStr;
}
}
}
Keys.onShortcutOverride: {
event.accepted = true;
Keys.onPressed(event);
}
onClicked: {
if (down) {
keyString = "";
accept();
} else {
grab = true;
currentKeyString = "";
kcm.grabKeyboard(root);
}
}
onPressAndHold: {
contextMenu.popup();
}
Menu {
id: contextMenu
Action {
id: keyCodeAction
checkable: true
text: i18n("Key code mode")
}
}
}

View File

@ -0,0 +1,253 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
import org.kde.kirigami 2.10 as Kirigami
ColumnLayout {
id: listOption
property alias hovered: addButton.hovered
property bool needsSave: false
property variant properties
property variant rawValue
readonly property string subTypeName: typeName.substr(5)
property string typeName
function getOption() {
var option = {};
option.isSection = false;
option.type = subTypeName;
option.properties = properties;
option.defaultValue = "";
option.name = [];
return option;
}
function load(rawValue) {
needsSave = (rawValue !== listOption.rawValue);
if (listModel.count !== 0) {
listModel.remove(0, listModel.count);
}
var i = 0;
while (true) {
if (!rawValue.hasOwnProperty(i.toString())) {
break;
}
var value = rawValue[i.toString()];
listModel.append({
"value": value
});
i++;
}
}
function prettify(value, subType) {
if (subType == "Integer") {
return value;
} else if (subType == "String") {
return value;
} else if (subType == "Boolean") {
return value == "True" ? i18n("Yes") : i18n("No");
} else if (subType == "Key") {
return kcm.localizedKeyString(value);
} else if (subType == "Enum") {
var i = 0;
var enumMap = {};
while (true) {
if (!properties.Enum.hasOwnProperty(i.toString())) {
break;
}
var enumString = properties.Enum[i.toString()];
var text = enumString;
if (properties.hasOwnProperty("EnumI18n") && properties.EnumI18n.hasOwnProperty(i.toString())) {
text = properties.EnumI18n[i.toString()];
}
enumMap[enumString] = text;
i++;
}
return enumMap[value];
} else if (subType.startsWith("List|")) {
var i = 0;
subSubType = subType.substr(5);
var strs = [];
while (true) {
if (!value.hasOwnProperty(i.toString())) {
break;
}
var subValue = prettify(value[i.toString()]);
strs.push(subValue);
i++;
}
return i18n("[%1]", strs.join(" "));
} else if (configPage.typeMap.hasOwnProperty(subType)) {
for (var i = 0; i < configPage.typeMap[subTypeName].length; ++i) {
var option = configPage.typeMap[subTypeName][i];
if (option.name.length === 1 && option.name[0] === properties.ListDisplayOption) {
return prettify(value[properties.ListDisplayOption], option.type);
}
}
}
return "";
}
function save() {
var newRawValue = {};
var j = 0;
for (var i = 0; i < listModel.count; i++) {
if (listModel.get(i).value !== "") {
newRawValue[j.toString()] = listModel.get(i).value;
j++;
}
}
rawValue = newRawValue;
}
Component.onCompleted: {
load(rawValue);
save();
}
Component {
id: delegateComponent
Kirigami.SwipeListItem {
id: listItem
RowLayout {
Kirigami.ListItemDragHandle {
listItem: listItem
listView: optionView
onMoveRequested: {
needsSave = true;
listModel.move(oldIndex, newIndex, 1);
}
}
Label {
Layout.fillWidth: true
color: listItem.checked || (listItem.pressed && !listItem.checked && !listItem.sectionDelegate) ? listItem.activeTextColor : listItem.textColor
height: Math.max(implicitHeight, Kirigami.Units.iconSizes.smallMedium)
text: model !== null ? prettify(model.value, subTypeName) : ""
}
}
actions: [
Kirigami.Action {
iconName: "document-edit"
text: i18n("edit")
onTriggered: {
sheet.edit(model.index);
}
},
Kirigami.Action {
iconName: "list-remove-symbolic"
text: i18n("Remove")
onTriggered: {
needsSave = true;
listModel.remove(model.index);
}
}
]
}
}
ListModel {
id: listModel
}
ScrollView {
Kirigami.Theme.colorSet: Kirigami.Theme.View
Kirigami.Theme.inherit: false
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
implicitHeight: optionView.contentHeight
implicitWidth: Kirigami.Units.gridUnit * 10
ListView {
id: optionView
model: listModel
delegate: Kirigami.DelegateRecycler {
sourceComponent: delegateComponent
width: optionView.width
}
}
}
RowLayout {
ToolButton {
id: addButton
icon.name: "list-add-symbolic"
text: i18n("Add")
onClicked: {
sheet.edit(listModel.count);
}
}
}
Kirigami.OverlaySheet {
id: sheet
property int editIndex: -1
readonly property bool isSubConfig: configPage.typeMap.hasOwnProperty(subTypeName)
parent: configPage
function edit(index) {
editIndex = index;
if (editIndex < listModel.count) {
if (isSubConfig) {
item().setRawValue(listModel.get(sheet.editIndex).value);
} else {
item().load(listModel.get(sheet.editIndex).value);
}
} else {
if (isSubConfig) {
item().defaults();
} else {
item().load("");
}
}
sheet.open();
}
function item() {
return isSubConfig ? optionEditor.item : optionEditor.item.item;
}
Loader {
id: optionEditor
sourceComponent: sheet.isSubConfig ? group : option
}
footer: DialogButtonBox {
standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel
onAccepted: {
sheet.item().save();
// Add a new one.
if (sheet.editIndex == listModel.count) {
listModel.append({
"value": sheet.item().rawValue
});
} else {
listModel.get(sheet.editIndex).value = sheet.item().rawValue;
}
sheet.close();
needsSave = true;
}
onRejected: sheet.close()
}
}
Component {
id: option
OptionLoader {
option: getOption()
rawValue: ""
}
}
Component {
id: group
ConfigGroup {
rawValue: null
typeMap: configPage.typeMap
typeName: subTypeName
}
}
}

View File

@ -0,0 +1,66 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import org.kde.kirigami 2.10 as Kirigami
import "utils.js" as Utils
Loader {
id: loader
property variant option
property variant rawValue
ToolTip.delay: Kirigami.Units.toolTipDelay
ToolTip.text: option.properties && option.properties.hasOwnProperty("Tooltip") ? option.properties["Tooltip"] : ""
ToolTip.visible: option.properties && option.properties.hasOwnProperty("Tooltip") && loader.item ? loader.item.hovered : false
function optionSource(data) {
if (data.type == "Boolean") {
return "BoolOption.qml";
} else if (data.type == "Integer") {
return "IntegerOption.qml";
} else if (data.type == "Enum") {
return "EnumOption.qml";
} else if (data.type == "String") {
if (data.properties.hasOwnProperty("Font") && data.properties.Font == "True") {
return "FontOption.qml";
} else if (data.properties.hasOwnProperty("IsEnum") && data.properties.IsEnum == "True") {
return "EnumOption.qml";
} else {
return "StringOption.qml";
}
} else if (data.type == "List|Key") {
return "KeyListOption.qml";
} else if (data.type == "Key") {
return "KeyOption.qml";
} else if (data.type == "Color") {
return "ColorOption.qml";
} else if (data.type.startsWith("List|")) {
return "ListOption.qml";
} else if (data.type == "External") {
return "ExternalOption.qml";
} else {
console.log(data.type + " Not supported");
return "";
}
}
Component.onCompleted: {
if (!option.isSection) {
var prop = {
"name": option.name,
"typeName": option.type,
"description": option.description,
"defaultValue": option.defaultValue,
"properties": option.properties,
"rawValue": rawValue
};
loader.setSource(optionSource(option), prop);
}
}
}

View File

@ -0,0 +1,27 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
Dialog {
id: notSavedDialog
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
focus: true
modal: true
standardButtons: Dialog.Ok
title: i18n("Some config is not saved")
x: (parent.width - width) / 2
y: parent.height / 2 - height
Label {
text: i18n("Current page is not yet saved. Please save the config first.")
}
Overlay.modal: Rectangle {
color: "#99000000"
}
}

View File

@ -0,0 +1,104 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
import org.kde.kirigami 2.10 as Kirigami
Kirigami.OverlaySheet {
id: selectLayoutSheet
property string im: ""
function selectLayout(title, im, layout) {
heading.text = title;
languageComboBox.currentIndex = 0;
selectLayoutSheet.im = im;
var layoutIndex = kcm.layoutProvider.layoutIndex(layout);
layoutComboBox.currentIndex = layoutIndex;
var variantIndex = kcm.layoutProvider.variantIndex(layout);
variantComboBox.currentIndex = variantIndex;
open();
}
Kirigami.FormLayout {
implicitWidth: Kirigami.Units.gridUnit * 45
ComboBox {
id: languageComboBox
Kirigami.FormData.label: i18n("Language:")
implicitWidth: Kirigami.Units.gridUnit * 15
model: kcm.layoutProvider.languageModel
textRole: "name"
onCurrentIndexChanged: {
kcm.layoutProvider.layoutModel.language = model.language(currentIndex);
layoutComboBox.currentIndex = 0;
kcm.layoutProvider.setVariantInfo(kcm.layoutProvider.layoutModel.layoutInfo(layoutComboBox.currentIndex));
variantComboBox.currentIndex = 0;
}
}
ComboBox {
id: layoutComboBox
Kirigami.FormData.label: i18n("Layout:")
implicitWidth: Kirigami.Units.gridUnit * 15
model: kcm.layoutProvider.layoutModel
textRole: "name"
onCurrentIndexChanged: {
if (currentIndex < 0) {
return;
}
kcm.layoutProvider.setVariantInfo(model.layoutInfo(currentIndex));
variantComboBox.currentIndex = 0;
}
}
ComboBox {
id: variantComboBox
Kirigami.FormData.label: i18n("Variant:")
implicitWidth: Kirigami.Units.gridUnit * 15
model: kcm.layoutProvider.variantModel
textRole: "name"
}
}
footer: RowLayout {
Item {
Layout.fillWidth: true
}
Button {
text: i18n("Clear")
visible: im !== ""
onClicked: {
kcm.imConfig.setLayout(im, "");
selectLayoutSheet.close();
}
}
Button {
text: i18n("Ok")
onClicked: {
if (layoutComboBox.currentIndex >= 0 && variantComboBox.currentIndex >= 0) {
var layout = kcm.layoutProvider.layout(layoutComboBox.currentIndex, variantComboBox.currentIndex);
if (im.length === 0) {
kcm.imConfig.defaultLayout = layout;
if (kcm.imConfig.currentIMModel.count > 0 && "keyboard-%0".arg(layout) != kcm.imConfig.currentIMModel.imAt(0)) {
layoutNotMatchWarning.visible = false;
inputMethodNotMatchWarning.visible = true;
}
} else {
kcm.imConfig.setLayout(im, layout);
}
selectLayoutSheet.close();
}
}
}
}
header: Kirigami.Heading {
id: heading
}
}

View File

@ -0,0 +1,25 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Controls 2.12
TextField {
property bool needsSave: text !== rawValue
property string rawValue
function load(rawValue) {
text = rawValue;
}
function save() {
rawValue = text;
}
Component.onCompleted: {
load(rawValue);
save();
}
}

View File

@ -0,0 +1,370 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
import QtQuick 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
import org.kde.kirigami 2.10 as Kirigami
import org.kde.kcm 1.2 as KCM
KCM.ScrollViewKCM {
id: root
Kirigami.ColumnView.fillWidth: true
implicitHeight: Kirigami.Units.gridUnit * 36
implicitWidth: Kirigami.Units.gridUnit * 50
function checkInputMethod() {
var firstIM = imList.model.imAt(0);
inputMethodNotMatchWarning.visible = false;
if (firstIM.startsWith("keyboard-")) {
layoutNotMatchWarning.visible = (firstIM.substr(9) != kcm.imConfig.defaultLayout);
} else {
layoutNotMatchWarning.visible = false;
}
}
SelectLayoutSheet {
id: selectLayoutSheet
parent: root
}
Component {
id: delegateComponent
Kirigami.SwipeListItem {
id: listItem
RowLayout {
Kirigami.ListItemDragHandle {
listItem: listItem
listView: imList
onMoveRequested: {
imList.model.move(oldIndex, newIndex, 1);
checkInputMethod();
}
}
Label {
Layout.fillWidth: true
color: listItem.checked || (listItem.pressed && !listItem.checked && !listItem.sectionDelegate) ? listItem.activeTextColor : listItem.textColor
height: Math.max(implicitHeight, Kirigami.Units.iconSizes.smallMedium)
text: model !== null ? model.name : ""
}
}
actions: [
Kirigami.Action {
iconName: "configure"
text: i18n("Configure")
visible: model !== null ? model.configurable : false
onTriggered: kcm.pushConfigPage(model.name, "fcitx://config/inputmethod/" + model.uniqueName)
},
Kirigami.Action {
iconName: "input-keyboard"
text: i18n("Select Layout")
visible: model !== null ? !model.uniqueName.startsWith("keyboard-") : false
onTriggered: selectLayoutSheet.selectLayout(i18n("Select layout for %1", model.name), model.uniqueName, (model.layout !== "" ? model.layout : kcm.imConfig.defaultLayout))
},
Kirigami.Action {
iconName: "list-remove-symbolic"
text: i18n("Remove")
onTriggered: {
imList.model.remove(model.index);
checkInputMethod();
}
}
]
}
}
Kirigami.OverlaySheet {
id: addGroupSheet
parent: root
Kirigami.FormLayout {
implicitWidth: Kirigami.Units.gridUnit * 15
TextField {
id: groupName
Kirigami.FormData.label: i18n("Name:")
placeholderText: i18n("Group Name")
}
}
footer: RowLayout {
Item {
Layout.fillWidth: true
}
Button {
text: i18n("Ok")
onClicked: {
if (groupName.text.length) {
kcm.imConfig.addGroup(groupName.text);
addGroupSheet.close();
}
}
}
}
header: Kirigami.Heading {
text: i18n("Add Group")
}
}
Connections {
property int oldIndex: 0
target: kcm
function onCurrentIndexChanged(idx) {
if (idx < oldIndex) {
while (kcm.depth > idx + 1) {
var page = kcm.pageNeedsSave(kcm.depth - 1);
if (page === null) {
kcm.pop();
} else {
kcm.currentIndex = kcm.depth - 1;
page.showWarning();
break;
}
}
}
}
function onPagePushed() {
oldIndex = kcm.depth;
}
}
Dialog {
id: confirmGroupChangeDialog
property string nextGroup
property string prevGroup
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
focus: true
modal: true
standardButtons: Dialog.Yes | Dialog.No
title: i18n("Current group changed")
x: (root.width - width) / 2
y: root.height / 2 - height
onAccepted: {
kcm.imConfig.currentGroup = nextGroup;
}
onRejected: {
var groups = kcm.imConfig.groups;
for (var i = 0; i < groups.length; i++) {
if (groups[i] == prevGroup) {
groupComboBox.currentIndex = i;
return;
}
}
}
Label {
text: i18n("Do you want to change group? Changes to current group will be lost!")
}
Overlay.modal: Rectangle {
color: "#99000000"
}
}
footer: ColumnLayout {
RowLayout {
Button {
icon.name: "input-keyboard"
text: i18n("Select system layout...")
onClicked: {
selectLayoutSheet.selectLayout(i18n("Select system layout for group %1", groupComboBox.currentText), "", kcm.imConfig.defaultLayout);
}
ToolTip {
text: i18n("Select system keyboard layout...")
visible: parent.hovered
}
}
Label {
text: kcm.layoutProvider.layoutDescription(kcm.imConfig.defaultLayout)
}
TextField {
Layout.fillWidth: true
placeholderText: i18n("Test Input")
}
}
RowLayout {
enabled: kcm.availability
Button {
icon.name: "configure"
text: i18n("Configure global options...")
onClicked: kcm.pushConfigPage(i18n("Global Options"), "fcitx://config/global")
}
Button {
icon.name: "configure"
text: i18n("Configure addons...")
onClicked: kcm.push("AddonPage.qml")
}
Item {
Layout.fillWidth: true
}
Button {
icon.name: "list-add-symbolic"
text: i18n("Add Input Method...")
onClicked: kcm.push("AddIMPage.qml")
}
}
}
header: ColumnLayout {
Kirigami.InlineMessage {
id: fcitxNotAvailableWarning
Layout.fillWidth: true
text: i18n("Cannot connect to Fcitx by DBus, is Fcitx running?")
type: Kirigami.MessageType.Warning
visible: !kcm.availability
actions: [
Kirigami.Action {
displayHint: Kirigami.Action.DisplayHint.KeepVisible
iconName: "system-run"
text: i18n("Run Fcitx")
onTriggered: {
kcm.runFcitx();
}
}
]
}
Kirigami.InlineMessage {
id: fcitxNeedUpdateMessage
Layout.fillWidth: true
showCloseButton: true
text: i18n("Found updates to fcitx installation. Do you want to check for newly installed input methods and addons? To update already loaded addons, fcitx would need to be restarted.")
type: Kirigami.MessageType.Information
visible: kcm.imConfig.needUpdate
actions: [
Kirigami.Action {
displayHint: Kirigami.Action.DisplayHint.KeepVisible
iconName: "update-none"
text: i18n("Update")
onTriggered: {
kcm.imConfig.refresh();
}
},
Kirigami.Action {
displayHint: Kirigami.Action.DisplayHint.KeepVisible
iconName: "system-run"
text: i18n("Restart")
onTriggered: {
kcm.imConfig.restart();
}
}
]
}
Kirigami.InlineMessage {
id: layoutNotMatchWarning
Layout.fillWidth: true
showCloseButton: true
text: i18n("Your currently configured input method does not match your layout, do you want to change the layout setting?")
type: Kirigami.MessageType.Warning
visible: false
actions: [
Kirigami.Action {
text: i18n("Fix")
onTriggered: {
kcm.fixLayout();
layoutNotMatchWarning.visible = false;
}
}
]
}
Kirigami.InlineMessage {
id: inputMethodNotMatchWarning
Layout.fillWidth: true
showCloseButton: true
text: i18n("Your currently configured input method does not match your selected layout, do you want to add the corresponding input method for the layout?")
type: Kirigami.MessageType.Warning
visible: false
actions: [
Kirigami.Action {
text: i18n("Fix")
onTriggered: {
kcm.fixInputMethod();
}
}
]
}
RowLayout {
enabled: kcm.availability
Label {
text: i18n("Group:")
}
ComboBox {
id: groupComboBox
Layout.fillWidth: true
model: kcm.imConfig.groups
onActivated: {
if (kcm.imConfig.needSave && kcm.imConfig.currentGroup !== currentText && kcm.imConfig.currentGroup !== "") {
confirmGroupChangeDialog.nextGroup = currentText;
confirmGroupChangeDialog.prevGroup = kcm.imConfig.currentGroup;
confirmGroupChangeDialog.open();
} else {
kcm.imConfig.currentGroup = currentText;
}
}
}
Button {
icon.name: "list-add-symbolic"
onClicked: {
groupName.text = "";
addGroupSheet.open();
}
}
Button {
icon.name: "list-remove-symbolic"
visible: kcm.imConfig.groups && kcm.imConfig.groups.length > 1
onClicked: {
kcm.imConfig.deleteGroup(groupComboBox.currentText);
}
}
}
}
view: ListView {
id: imList
enabled: kcm.availability
model: kcm.imConfig.currentIMModel
section {
property: "active"
delegate: Kirigami.ListSectionHeader {
text: section == "inactive" ? i18n("Input Method Off") : i18n("Input Method On")
}
}
delegate: Kirigami.DelegateRecycler {
sourceComponent: delegateComponent
width: imList.width
}
moveDisplaced: Transition {
YAnimator {
duration: Kirigami.Units.longDuration
easing.type: Easing.InOutQuad
}
}
}
}

View File

@ -0,0 +1,29 @@
function getRawValue(rawValue, name) {
if (name.length == 0) {
return "";
}
if (rawValue === null) {
return "";
}
for (var i = 0; i < name.length; i++) {
if (rawValue.hasOwnProperty(name[i])) {
rawValue = rawValue[name[i]];
} else {
return "";
}
}
return rawValue;
}
function setRawValue(rawValue, name, value) {
for (var i = 0; i < name.length; i++) {
if (i + 1 == name.length) {
rawValue[name[i]] = value;
} else {
if (!rawValue.hasOwnProperty(name[i])) {
rawValue[name[i]] = {};
}
rawValue = rawValue[name[i]];
}
}
}

View File

@ -0,0 +1,17 @@
[Desktop Entry]
Name=Input Method
Comment=Configure Input Method
Icon=fcitx
Type=Service
X-KDE-PluginInfo-Author=Weng Xuetian
X-KDE-PluginInfo-Email=fcitx-dev@googlegroups.com.
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-Name=kcm_fcitx5
X-KDE-PluginInfo-Version=
X-KDE-PluginInfo-Website=
X-KDE-ServiceTypes=Plasma/Generic
X-Plasma-API=declarativeappletscript
X-Plasma-MainScript=ui/main.qml

104
src/kcm/qtkeytrans.cpp Normal file
View File

@ -0,0 +1,104 @@
/*
* SPDX-FileCopyrightText: 2012~2017 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "qtkeytrans.h"
#include "qtkeytransdata.h"
#include <QTextCodec>
#include <ctype.h>
#include <fcitx-utils/key.h>
#define _ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
#define _ARRAY_END(a) (a + _ARRAY_SIZE(a))
namespace fcitx {
namespace kcm {
bool qEventToSym(int key, Qt::KeyboardModifiers mod, const QString &text,
int &outsym, unsigned int &outstate) {
int sym = 0;
fcitx::KeyStates state;
do {
if (text.length() <= 0)
break;
int uni = text[0].unicode();
int *result =
std::lower_bound(unicodeHasKey, _ARRAY_END(unicodeHasKey), uni);
if (result != _ARRAY_END(unicodeHasKey) && *result == uni) {
sym = *result + 0x1000000;
break;
}
Unicode2Key *keyMap =
std::lower_bound(unicodeKeyMap, _ARRAY_END(unicodeKeyMap), uni);
if (keyMap != _ARRAY_END(unicodeKeyMap) && keyMap->unicode == uni) {
sym = keyMap->key;
break;
}
} while (0);
do {
if (sym)
break;
QtCode2Key *result = nullptr;
if (mod & Qt::KeypadModifier) {
result = std::lower_bound(keyPadQtCodeToKey,
_ARRAY_END(keyPadQtCodeToKey), key);
if (result == _ARRAY_END(keyPadQtCodeToKey) ||
result->qtcode != key)
result = nullptr;
} else {
if (text.isEmpty() || !text[0].isPrint()) {
result = std::lower_bound(qtCodeToKeyBackup,
_ARRAY_END(qtCodeToKeyBackup), key);
if (result == _ARRAY_END(qtCodeToKeyBackup) ||
result->qtcode != key)
result = nullptr;
}
if (!result) {
result =
std::lower_bound(qtCodeToKey, _ARRAY_END(qtCodeToKey), key);
if (result == _ARRAY_END(qtCodeToKey) || result->qtcode != key)
result = nullptr;
}
if (!result) {
result = std::lower_bound(keyPadQtCodeToKey,
_ARRAY_END(keyPadQtCodeToKey), key);
if (result == _ARRAY_END(keyPadQtCodeToKey) ||
result->qtcode != key)
result = nullptr;
}
}
if (result)
sym = result->key;
} while (0);
state = fcitx::KeyState::NoState;
if (mod & Qt::CTRL)
state |= fcitx::KeyState::Ctrl;
if (mod & Qt::ALT)
state |= fcitx::KeyState::Alt;
if (mod & Qt::SHIFT)
state |= fcitx::KeyState::Shift;
if (mod & Qt::META)
state |= fcitx::KeyState::Super;
outsym = sym;
outstate = state;
return (outsym > 0);
}
} // namespace kcm
} // namespace fcitx

19
src/kcm/qtkeytrans.h Normal file
View File

@ -0,0 +1,19 @@
/*
* SPDX-FileCopyrightText: 2012~2017 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef _WIDGETSADDONS_QTKEYTRANS_H_
#define _WIDGETSADDONS_QTKEYTRANS_H_
#include <qnamespace.h>
namespace fcitx {
namespace kcm {
bool qEventToSym(int key, Qt::KeyboardModifiers mod, const QString &text,
int &outsym, unsigned int &outstate);
}
} // namespace fcitx
#endif // _WIDGETSADDONS_QTKEYTRANS_H_

1465
src/kcm/qtkeytransdata.h Normal file

File diff suppressed because it is too large Load Diff

5
src/lib/CMakeLists.txt Normal file
View File

@ -0,0 +1,5 @@
add_subdirectory(configlib)
if (ENABLE_CONFIG_QT)
add_subdirectory(configwidgetslib)
endif()

View File

@ -0,0 +1,20 @@
add_library(configlib STATIC
iso639.cpp
dbusprovider.cpp
model.cpp
addonmodel.cpp
imconfig.cpp
logging.cpp
font.cpp
layoutmodel.cpp
layoutprovider.cpp
)
set_target_properties(configlib PROPERTIES
POSITION_INDEPENDENT_CODE TRUE
AUTOMOC TRUE
AUTOUIC TRUE
AUTOUIC_OPTIONS "-tr=fcitx::tr2fcitx;--include=fcitxqti18nhelper.h"
)
target_include_directories(configlib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(configlib Qt5::Core Qt5::Gui Fcitx5Qt5::DBusAddons Fcitx5::Core Fcitx5::Utils)

View File

@ -0,0 +1,357 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#include "addonmodel.h"
#include <QCollator>
#include <QDebug>
#include <fcitx-utils/i18n.h>
#include <fcitx/addoninfo.h>
namespace fcitx {
namespace kcm {
namespace {
QString categoryName(int category) {
if (category >= 5 || category < 0) {
return QString();
}
const char *str[] = {N_("Input Method"), N_("Frontend"), N_("Loader"),
N_("Module"), N_("UI")};
return _(str[category]);
}
} // namespace
AddonModel::AddonModel(QObject *parent) : CategorizedItemModel(parent) {}
QVariant AddonModel::dataForCategory(const QModelIndex &index, int role) const {
switch (role) {
case Qt::DisplayRole:
return categoryName(addonEntryList_[index.row()].first);
case CategoryRole:
return addonEntryList_[index.row()].first;
case RowTypeRole:
return CategoryType;
default:
return QVariant();
}
}
QVariant AddonModel::dataForItem(const QModelIndex &index, int role) const {
const auto &addonList = addonEntryList_[index.parent().row()].second;
const auto &addon = addonList[index.row()];
switch (role) {
case Qt::DisplayRole:
return addon.name();
case CommentRole:
return addon.comment();
case ConfigurableRole:
return addon.configurable();
case AddonNameRole:
return addon.uniqueName();
case CategoryRole:
return addon.category();
case Qt::CheckStateRole:
if (disabledList_.contains(addon.uniqueName())) {
return false;
} else if (enabledList_.contains(addon.uniqueName())) {
return true;
}
return addon.enabled();
case RowTypeRole:
return AddonType;
}
return QVariant();
}
bool AddonModel::setData(const QModelIndex &index, const QVariant &value,
int role) {
if (!index.isValid() || !index.parent().isValid() ||
index.parent().row() >= addonEntryList_.size() ||
index.parent().column() > 0 || index.column() > 0) {
return false;
}
const auto &addonList = addonEntryList_[index.parent().row()].second;
if (index.row() >= addonList.size()) {
return false;
}
bool ret = false;
auto &item = addonList[index.row()];
if (role == Qt::CheckStateRole) {
auto oldData = data(index, role).toBool();
auto enabled = value.toBool();
if (item.enabled() == enabled) {
enabledList_.remove(item.uniqueName());
disabledList_.remove(item.uniqueName());
} else if (enabled) {
enabledList_.insert(item.uniqueName());
disabledList_.remove(item.uniqueName());
} else {
enabledList_.remove(item.uniqueName());
disabledList_.insert(item.uniqueName());
}
auto newData = data(index, role).toBool();
ret = oldData != newData;
if (ret) {
Q_EMIT dataChanged(index, index);
Q_EMIT changed(item.uniqueName(), newData);
}
}
return ret;
}
QModelIndex AddonModel::findAddon(const QString &addon) const {
for (int i = 0; i < addonEntryList_.size(); i++) {
for (int j = 0; j < addonEntryList_[i].second.size(); j++) {
const auto &addonList = addonEntryList_[i].second;
if (addonList[j].uniqueName() == addon) {
return index(j, 0, index(i, 0));
}
}
}
return QModelIndex();
}
FlatAddonModel::FlatAddonModel(QObject *parent) : QAbstractListModel(parent) {}
bool FlatAddonModel::setData(const QModelIndex &index, const QVariant &value,
int role) {
if (!index.isValid() || index.row() >= addonEntryList_.size() ||
index.column() > 0) {
return false;
}
bool ret = false;
if (role == Qt::CheckStateRole) {
auto oldData = data(index, role).toBool();
auto &item = addonEntryList_[index.row()];
auto enabled = value.toBool();
if (item.enabled() == enabled) {
enabledList_.remove(item.uniqueName());
disabledList_.remove(item.uniqueName());
} else if (enabled) {
enabledList_.insert(item.uniqueName());
disabledList_.remove(item.uniqueName());
} else {
enabledList_.remove(item.uniqueName());
disabledList_.insert(item.uniqueName());
}
auto newData = data(index, role).toBool();
ret = oldData != newData;
}
if (ret) {
Q_EMIT dataChanged(index, index);
Q_EMIT changed();
}
return ret;
}
QVariant FlatAddonModel::data(const QModelIndex &index, int role) const {
if (!index.isValid() || index.row() >= addonEntryList_.size()) {
return QVariant();
}
const auto &addon = addonEntryList_.at(index.row());
switch (role) {
case Qt::DisplayRole:
return addon.name();
case CommentRole:
return addon.comment();
case ConfigurableRole:
return addon.configurable();
case AddonNameRole:
return addon.uniqueName();
case CategoryRole:
return addon.category();
case CategoryNameRole:
return categoryName(addon.category());
case DependenciesRole:
return reverseDependencies_.value(addon.uniqueName());
;
case OptDependenciesRole:
return reverseOptionalDependencies_.value(addon.uniqueName());
case Qt::CheckStateRole:
if (disabledList_.contains(addon.uniqueName())) {
return false;
} else if (enabledList_.contains(addon.uniqueName())) {
return true;
}
return addon.enabled();
case RowTypeRole:
return AddonType;
}
return QVariant();
}
int FlatAddonModel::rowCount(const QModelIndex &parent) const {
if (parent.isValid()) {
return 0;
}
return addonEntryList_.count();
}
QHash<int, QByteArray> FlatAddonModel::roleNames() const {
return {{Qt::DisplayRole, "name"},
{CommentRole, "comment"},
{ConfigurableRole, "configurable"},
{AddonNameRole, "uniqueName"},
{CategoryRole, "category"},
{CategoryNameRole, "categoryName"},
{Qt::CheckStateRole, "enabled"},
{DependenciesRole, "dependencies"},
{OptDependenciesRole, "optionalDependencies"}};
}
void FlatAddonModel::setAddons(const fcitx::FcitxQtAddonInfoV2List &list) {
beginResetModel();
addonEntryList_ = list;
nameToAddonMap_.clear();
reverseDependencies_.clear();
reverseOptionalDependencies_.clear();
for (const auto &addon : list) {
nameToAddonMap_[addon.uniqueName()] = addon;
}
for (const auto &addon : list) {
for (const auto &dep : addon.dependencies()) {
if (!nameToAddonMap_.contains(dep)) {
continue;
}
reverseDependencies_[dep].append(addon.uniqueName());
}
for (const auto &dep : addon.optionalDependencies()) {
if (!nameToAddonMap_.contains(dep)) {
continue;
}
reverseOptionalDependencies_[dep].append(addon.uniqueName());
}
}
enabledList_.clear();
disabledList_.clear();
endResetModel();
}
void FlatAddonModel::enable(const QString &addon) {
for (int i = 0; i < addonEntryList_.size(); i++) {
if (addonEntryList_[i].uniqueName() == addon) {
setData(index(i, 0), true, Qt::CheckStateRole);
return;
}
}
}
bool AddonProxyModel::filterAcceptsRow(int sourceRow,
const QModelIndex &sourceParent) const {
Q_UNUSED(sourceParent)
const QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
if (index.data(RowTypeRole) == CategoryType) {
return filterCategory(index);
}
return filterAddon(index);
}
bool AddonProxyModel::filterCategory(const QModelIndex &index) const {
int childCount = index.model()->rowCount(index);
if (childCount == 0)
return false;
for (int i = 0; i < childCount; ++i) {
if (filterAddon(index.model()->index(i, 0, index))) {
return true;
}
}
return false;
}
bool AddonProxyModel::filterAddon(const QModelIndex &index) const {
auto name = index.data(Qt::DisplayRole).toString();
auto uniqueName = index.data(AddonNameRole).toString();
auto comment = index.data(CommentRole).toString();
if (!filterText_.isEmpty()) {
return name.contains(filterText_, Qt::CaseInsensitive) ||
uniqueName.contains(filterText_, Qt::CaseInsensitive) ||
comment.contains(filterText_, Qt::CaseInsensitive);
}
return true;
}
bool AddonProxyModel::lessThan(const QModelIndex &left,
const QModelIndex &right) const {
int lhs = left.data(CategoryRole).toInt();
int rhs = right.data(CategoryRole).toInt();
// Reorder the addon category.
// UI and module are more common, because input method config is accessible
// in the main page.
static const QMap<int, int> category = {
{static_cast<int>(AddonCategory::UI), 0},
{static_cast<int>(AddonCategory::Module), 1},
{static_cast<int>(AddonCategory::InputMethod), 2},
{static_cast<int>(AddonCategory::Frontend), 3},
{static_cast<int>(AddonCategory::Loader), 4},
};
int lvalue = category.value(lhs, category.size());
int rvalue = category.value(rhs, category.size());
int result = lvalue - rvalue;
if (result < 0) {
return true;
} else if (result > 0) {
return false;
}
QString l = left.data(Qt::DisplayRole).toString();
QString r = right.data(Qt::DisplayRole).toString();
return QCollator().compare(l, r) < 0;
}
void AddonProxyModel::setFilterText(const QString &text) {
if (filterText_ != text) {
filterText_ = text;
invalidate();
}
}
} // namespace kcm
} // namespace fcitx

View File

@ -0,0 +1,159 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#ifndef _CONFIGLIB_ADDONMODEL_H_
#define _CONFIGLIB_ADDONMODEL_H_
#include "model.h"
namespace fcitx {
namespace kcm {
enum ExtraRoles {
CommentRole = 0x19880209,
ConfigurableRole,
AddonNameRole,
RowTypeRole,
CategoryRole,
CategoryNameRole,
DependenciesRole,
OptDependenciesRole,
};
enum RowType {
CategoryType,
AddonType,
};
class AddonModel : public CategorizedItemModel {
Q_OBJECT
public:
explicit AddonModel(QObject *parent);
bool setData(const QModelIndex &index, const QVariant &value,
int role = Qt::EditRole) override;
QModelIndex findAddon(const QString &addon) const;
void setAddons(const FcitxQtAddonInfoV2List &list) {
beginResetModel();
addonEntryList_.clear();
QMap<int, int> addonCategoryMap;
for (const FcitxQtAddonInfoV2 &addon : list) {
int idx;
if (!addonCategoryMap.contains(addon.category())) {
idx = addonEntryList_.count();
addonCategoryMap[addon.category()] = idx;
addonEntryList_.append(QPair<int, FcitxQtAddonInfoV2List>(
addon.category(), FcitxQtAddonInfoV2List()));
} else {
idx = addonCategoryMap[addon.category()];
}
addonEntryList_[idx].second.append(addon);
}
enabledList_.clear();
disabledList_.clear();
endResetModel();
}
const auto &enabledList() const { return enabledList_; }
const auto &disabledList() const { return disabledList_; }
Q_SIGNALS:
void changed(const QString &addon, bool enabled);
protected:
int listSize() const override { return addonEntryList_.size(); }
int subListSize(int idx) const override {
return addonEntryList_[idx].second.size();
}
QVariant dataForItem(const QModelIndex &index, int role) const override;
QVariant dataForCategory(const QModelIndex &index, int role) const override;
private:
QSet<QString> enabledList_;
QSet<QString> disabledList_;
QList<QPair<int, FcitxQtAddonInfoV2List>> addonEntryList_;
};
class FlatAddonModel : public QAbstractListModel {
Q_OBJECT
public:
explicit FlatAddonModel(QObject *parent);
QVariant data(const QModelIndex &index,
int role = Qt::DisplayRole) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QHash<int, QByteArray> roleNames() const override;
bool setData(const QModelIndex &index, const QVariant &value,
int role = Qt::EditRole) override;
void setAddons(const FcitxQtAddonInfoV2List &list);
const auto &enabledList() const { return enabledList_; }
const auto &disabledList() const { return disabledList_; }
Q_INVOKABLE QString addonName(const QString &uniqueName) {
if (auto iter = nameToAddonMap_.find(uniqueName);
iter != nameToAddonMap_.end()) {
return iter->name();
}
return {};
}
Q_INVOKABLE void enable(const QString &addon);
Q_SIGNALS:
void changed();
private:
QSet<QString> enabledList_;
QSet<QString> disabledList_;
FcitxQtAddonInfoV2List addonEntryList_;
QMap<QString, FcitxQtAddonInfoV2> nameToAddonMap_;
QMap<QString, QStringList> reverseDependencies_;
QMap<QString, QStringList> reverseOptionalDependencies_;
};
class AddonProxyModel : public QSortFilterProxyModel {
Q_OBJECT
Q_PROPERTY(QString filterText READ filterText WRITE setFilterText);
public:
explicit AddonProxyModel(QObject *parent) : QSortFilterProxyModel(parent) {
setDynamicSortFilter(true);
setRecursiveFilteringEnabled(true);
sort(0);
}
// Forward role names.
QHash<int, QByteArray> roleNames() const override {
if (sourceModel()) {
return sourceModel()->roleNames();
}
return QSortFilterProxyModel::roleNames();
}
const QString &filterText() const { return filterText_; }
void setFilterText(const QString &text);
protected:
bool filterAcceptsRow(int source_row,
const QModelIndex &source_parent) const override;
bool lessThan(const QModelIndex &left,
const QModelIndex &right) const override;
private:
bool filterCategory(const QModelIndex &index) const;
bool filterAddon(const QModelIndex &index) const;
QString filterText_;
};
} // namespace kcm
} // namespace fcitx
#endif // _CONFIGLIB_ADDONMODEL_H_

View File

@ -0,0 +1,38 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#include "dbusprovider.h"
namespace fcitx {
namespace kcm {
DBusProvider::DBusProvider(QObject *parent)
: QObject(parent),
watcher_(new FcitxQtWatcher(QDBusConnection::sessionBus(), this)) {
registerFcitxQtDBusTypes();
connect(watcher_, &FcitxQtWatcher::availabilityChanged, this,
&DBusProvider::fcitxAvailabilityChanged);
watcher_->watch();
}
DBusProvider::~DBusProvider() { watcher_->unwatch(); }
void DBusProvider::fcitxAvailabilityChanged(bool avail) {
delete controller_;
controller_ = nullptr;
if (avail) {
controller_ =
new FcitxQtControllerProxy(watcher_->serviceName(), "/controller",
watcher_->connection(), this);
controller_->setTimeout(3000);
}
Q_EMIT availabilityChanged(controller_);
}
} // namespace kcm
} // namespace fcitx

View File

@ -0,0 +1,41 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#ifndef _DBUSPROVIDER_H_
#define _DBUSPROVIDER_H_
#include <QObject>
#include <fcitxqtcontrollerproxy.h>
#include <fcitxqtwatcher.h>
namespace fcitx {
namespace kcm {
class DBusProvider : public QObject {
Q_OBJECT
public:
DBusProvider(QObject *parent);
~DBusProvider();
bool available() const { return controller_; }
FcitxQtControllerProxy *controller() { return controller_; }
Q_SIGNALS:
void availabilityChanged(bool avail);
private Q_SLOTS:
void fcitxAvailabilityChanged(bool avail);
private:
FcitxQtWatcher *watcher_;
FcitxQtControllerProxy *controller_ = nullptr;
};
} // namespace kcm
} // namespace fcitx
#endif // _DBUSPROVIDER_H_

107
src/lib/configlib/font.cpp Normal file
View File

@ -0,0 +1,107 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#include "font.h"
#include <QMap>
#include <fcitx-utils/stringutils.h>
QFont fcitx::kcm::parseFont(const QString &string) {
auto result = stringutils::split(string.toStdString(), " ",
stringutils::SplitBehavior::SkipEmpty);
QStringList list;
for (const auto &token : result) {
list << QString::fromStdString(token);
}
int size = 9; // Default size.
if (!list.empty()) {
bool ok = false;
auto fontSize = list.back().toInt(&ok);
if (ok) {
if (fontSize > 0) {
size = fontSize;
}
list.pop_back();
}
}
QFont::Style style = QFont::StyleNormal;
int weight = QFont::Normal;
const QMap<QString, int> strToWeight = {
{"Thin", QFont::Thin},
{"Ultra-Light", QFont::Thin},
{"Extra-Light", QFont::ExtraLight},
{"Light", QFont::Light},
{"Semi-Light", QFont::Light},
{"Demi-Light", QFont::Light},
{"Book", QFont::Light},
{"Regular", QFont::Normal},
{"Medium", QFont::Medium},
{"Semi-Bold", QFont::Medium},
{"Demi-Bold", QFont::DemiBold},
{"Bold", QFont::Bold},
{"Ultra-Bold", QFont::Bold},
{"Extra-Bold", QFont::ExtraBold},
{"Black", QFont::Black},
{"Ultra-Black", QFont::Black},
{"Extra-Black", QFont::Black},
};
const QMap<QString, QFont::Style> strToStyle = {
{"Italic", QFont::StyleItalic}, {"Oblique", QFont::StyleOblique}};
while (!list.empty()) {
if (strToWeight.contains(list.back())) {
weight = strToWeight.value(list.back(), QFont::Normal);
list.pop_back();
} else if (strToStyle.contains(list.back())) {
style = strToStyle.value(list.back(), QFont::StyleNormal);
list.pop_back();
} else {
break;
}
}
QString family = list.join(" ");
QFont font;
font.setFamily(family);
font.setWeight(weight);
font.setStyle(style);
font.setPointSize(size);
return font;
}
QString fcitx::kcm::fontToString(const QFont &font) {
QString style;
QStringList styles;
switch (font.style()) {
case QFont::StyleItalic:
styles << "Italic";
break;
case QFont::StyleOblique:
styles << "Oblique";
break;
default:
break;
}
#define CASE_WEIGHT(WEIGHT, WEIGHT_STR) \
case QFont::WEIGHT: \
styles << WEIGHT_STR; \
break;
// Use the string accepted by pango.
switch (font.weight()) {
CASE_WEIGHT(Thin, "Thin")
CASE_WEIGHT(ExtraLight, "Extra-Light")
CASE_WEIGHT(Light, "Light")
CASE_WEIGHT(Medium, "Medium")
CASE_WEIGHT(DemiBold, "Demi-Bold")
CASE_WEIGHT(Bold, "Bold")
CASE_WEIGHT(ExtraBold, "Extra-Bold")
CASE_WEIGHT(Black, "Black")
default:
break;
}
style = styles.join(" ");
return QString("%1%2%3 %4")
.arg(font.family(), (!style.isEmpty() ? " " : ""), style,
QString::number(font.pointSize()));
}

22
src/lib/configlib/font.h Normal file
View File

@ -0,0 +1,22 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#ifndef _CONFIGLIB_FONT_H_
#define _CONFIGLIB_FONT_H_
#include <QFont>
#include <QString>
namespace fcitx {
namespace kcm {
QFont parseFont(const QString &str);
QString fontToString(const QFont &font);
} // namespace kcm
} // namespace fcitx
#endif // _CONFIGLIB_FONT_H_

View File

@ -0,0 +1,249 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#include "imconfig.h"
#include "dbusprovider.h"
#include "model.h"
namespace fcitx {
namespace kcm {
IMConfig::IMConfig(DBusProvider *dbus, ModelMode mode, QObject *parent)
: QObject(parent), dbus_(dbus), availIMModel_(new IMProxyModel(this)),
currentIMModel_(new FilteredIMModel(FilteredIMModel::CurrentIM, this)) {
connect(dbus, &DBusProvider::availabilityChanged, this,
&IMConfig::availabilityChanged);
availabilityChanged();
if (mode == Flatten) {
auto flattenAvailIMModel =
new FilteredIMModel(FilteredIMModel::AvailIM, this);
availIMModel_->setSourceModel(flattenAvailIMModel);
internalAvailIMModel_ = flattenAvailIMModel;
} else {
auto availIMModel = new AvailIMModel(this);
availIMModel_->setSourceModel(availIMModel);
internalAvailIMModel_ = availIMModel;
}
connect(currentIMModel_, &FilteredIMModel::imListChanged, this,
[this](const FcitxQtInputMethodEntryList &list) {
auto old = imEntries_;
FcitxQtStringKeyValueList newEntries;
for (const auto &item : list) {
auto iter = std::find_if(
old.begin(), old.end(),
[&item](const FcitxQtStringKeyValue &entry) {
return entry.key() == item.uniqueName();
});
if (iter != old.end()) {
newEntries.push_back(*iter);
}
}
imEntries_ = newEntries;
updateIMList(true);
emitChanged();
});
}
IMConfig::~IMConfig() {}
void IMConfig::save() {
if (!dbus_->controller()) {
return;
}
if (needSave_) {
dbus_->controller()->SetInputMethodGroupInfo(lastGroup_, defaultLayout_,
imEntries_);
needSave_ = false;
}
}
void IMConfig::load() { availabilityChanged(); }
void IMConfig::defaults() {}
void IMConfig::addIM(int idx) {
auto index = availIMModel_->index(idx, 0);
addIM(index);
}
void IMConfig::addIM(const QModelIndex &index) {
if (!index.isValid()) {
return;
}
auto uniqueName = index.data(FcitxIMUniqueNameRole).toString();
FcitxQtStringKeyValue imEntry;
imEntry.setKey(uniqueName);
imEntries_.push_back(imEntry);
updateIMList();
emitChanged();
}
void IMConfig::removeIM(int idx) { currentIMModel_->remove(idx); }
void IMConfig::removeIM(const QModelIndex &index) {
currentIMModel_->remove(index.row());
}
void IMConfig::move(int from, int to) { currentIMModel_->move(from, to); }
void IMConfig::reloadGroup() {
if (!dbus_->controller()) {
return;
}
auto call = dbus_->controller()->InputMethodGroups();
auto watcher = new QDBusPendingCallWatcher(call, this);
connect(watcher, &QDBusPendingCallWatcher::finished, this,
[this](QDBusPendingCallWatcher *watcher) {
fetchGroupsFinished(watcher);
});
}
void IMConfig::fetchGroupsFinished(QDBusPendingCallWatcher *watcher) {
QDBusPendingReply<QStringList> groups = *watcher;
watcher->deleteLater();
if (groups.isValid()) {
groups_ = groups.value();
Q_EMIT groupsChanged(groups_);
}
if (!groups_.empty()) {
setCurrentGroup(groups_.front());
}
}
void IMConfig::availabilityChanged() {
lastGroup_.clear();
if (!dbus_->controller()) {
return;
}
reloadGroup();
auto imcall = dbus_->controller()->AvailableInputMethods();
auto imcallwatcher = new QDBusPendingCallWatcher(imcall, this);
connect(imcallwatcher, &QDBusPendingCallWatcher::finished, this,
&IMConfig::fetchInputMethodsFinished);
auto checkUpdate = dbus_->controller()->CheckUpdate();
auto checkUpdateWatcher = new QDBusPendingCallWatcher(checkUpdate, this);
connect(checkUpdateWatcher, &QDBusPendingCallWatcher::finished, this,
&IMConfig::checkUpdateFinished);
}
void IMConfig::fetchInputMethodsFinished(QDBusPendingCallWatcher *watcher) {
QDBusPendingReply<FcitxQtInputMethodEntryList> ims = *watcher;
watcher->deleteLater();
if (!ims.isError()) {
allIMs_ = ims.value();
updateIMList();
}
}
void IMConfig::checkUpdateFinished(QDBusPendingCallWatcher *watcher) {
QDBusPendingReply<bool> reply = *watcher;
watcher->deleteLater();
const bool needUpdate = !reply.isError() && reply.value();
if (needUpdate_ != needUpdate) {
needUpdate_ = needUpdate;
Q_EMIT needUpdateChanged(needUpdate_);
}
}
void IMConfig::setCurrentGroup(const QString &name) {
if (dbus_->available() && !name.isEmpty()) {
auto call = dbus_->controller()->InputMethodGroupInfo(name);
lastGroup_ = name;
Q_EMIT currentGroupChanged(lastGroup_);
auto watcher = new QDBusPendingCallWatcher(call, this);
connect(watcher, &QDBusPendingCallWatcher::finished, this,
&IMConfig::fetchGroupInfoFinished);
}
}
void IMConfig::fetchGroupInfoFinished(QDBusPendingCallWatcher *watcher) {
watcher->deleteLater();
needSave_ = false;
QDBusPendingReply<QString, FcitxQtStringKeyValueList> reply = *watcher;
if (!reply.isError()) {
defaultLayout_ = reply.argumentAt<0>();
imEntries_ = reply.argumentAt<1>();
} else {
defaultLayout_.clear();
imEntries_.clear();
}
Q_EMIT defaultLayoutChanged();
updateIMList();
}
void IMConfig::emitChanged() {
needSave_ = true;
Q_EMIT changed();
}
void IMConfig::updateIMList(bool excludeCurrent) {
if (!excludeCurrent) {
currentIMModel_->filterIMEntryList(allIMs_, imEntries_);
}
internalAvailIMModel_->filterIMEntryList(allIMs_, imEntries_);
availIMModel_->filterIMEntryList(allIMs_, imEntries_);
Q_EMIT imListChanged();
}
void IMConfig::addGroup(const QString &name) {
if (!name.isEmpty() && dbus_->controller()) {
auto call = dbus_->controller()->AddInputMethodGroup(name);
auto watcher = new QDBusPendingCallWatcher(call, this);
connect(watcher, &QDBusPendingCallWatcher::finished, this,
[this](QDBusPendingCallWatcher *watcher) {
watcher->deleteLater();
if (!watcher->isError()) {
reloadGroup();
}
});
}
}
void IMConfig::deleteGroup(const QString &name) {
if (!dbus_->controller()) {
return;
}
auto call = dbus_->controller()->RemoveInputMethodGroup(name);
auto watcher = new QDBusPendingCallWatcher(call, this);
connect(watcher, &QDBusPendingCallWatcher::finished, this,
[this](QDBusPendingCallWatcher *watcher) {
watcher->deleteLater();
if (!watcher->isError()) {
reloadGroup();
}
});
}
void IMConfig::refresh() {
if (!dbus_->controller()) {
return;
}
auto call = dbus_->controller()->Refresh();
auto watcher = new QDBusPendingCallWatcher(call, this);
connect(watcher, &QDBusPendingCallWatcher::finished, this,
[this](QDBusPendingCallWatcher *watcher) {
watcher->deleteLater();
if (!watcher->isError()) {
load();
}
});
}
void IMConfig::restart() {
if (!dbus_->controller()) {
return;
}
dbus_->controller()->Restart();
}
} // namespace kcm
} // namespace fcitx

View File

@ -0,0 +1,125 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#ifndef _CONFIGLIB_ABSTRACTIMPAGE_H_
#define _CONFIGLIB_ABSTRACTIMPAGE_H_
#include <QDBusPendingCallWatcher>
#include <QObject>
#include <fcitxqtdbustypes.h>
namespace fcitx {
namespace kcm {
class IMConfigModelInterface;
class IMProxyModel;
class FilteredIMModel;
class DBusProvider;
class IMConfig : public QObject {
Q_OBJECT
Q_PROPERTY(fcitx::kcm::FilteredIMModel *currentIMModel READ currentIMModel
CONSTANT)
Q_PROPERTY(
fcitx::kcm::IMProxyModel *availIMModel READ availIMModel CONSTANT)
Q_PROPERTY(QString defaultLayout READ defaultLayout WRITE setDefaultLayout
NOTIFY defaultLayoutChanged)
Q_PROPERTY(QStringList groups READ groups NOTIFY groupsChanged)
Q_PROPERTY(QString currentGroup READ currentGroup WRITE setCurrentGroup)
Q_PROPERTY(bool needSave READ needSave)
Q_PROPERTY(bool needUpdate READ needUpdate NOTIFY needUpdateChanged)
public:
enum ModelMode { Tree, Flatten };
IMConfig(DBusProvider *dbus, ModelMode mode, QObject *parent);
~IMConfig();
FilteredIMModel *currentIMModel() const { return currentIMModel_; }
IMProxyModel *availIMModel() const { return availIMModel_; }
const QStringList &groups() const { return groups_; }
const QString &currentGroup() const { return lastGroup_; }
void setCurrentGroup(const QString &name);
bool needSave() const { return needSave_; }
bool needUpdate() const { return needUpdate_; }
void addIM(const QModelIndex &index);
void removeIM(const QModelIndex &index);
const auto &imEntries() const { return imEntries_; }
void setIMEntries(const FcitxQtStringKeyValueList &imEntires) {
imEntries_ = imEntires;
updateIMList();
}
const QString &defaultLayout() const { return defaultLayout_; }
void setDefaultLayout(const QString &l) {
if (defaultLayout_ != l) {
defaultLayout_ = l;
emitChanged();
Q_EMIT defaultLayoutChanged();
}
}
Q_INVOKABLE void setLayout(const QString &im, const QString &layout) {
for (auto &imEntry : imEntries_) {
if (imEntry.key() == im) {
imEntry.setValue(layout);
emitChanged();
updateIMList();
return;
}
}
}
void emitChanged();
public Q_SLOTS:
void addGroup(const QString &name);
void deleteGroup(const QString &name);
void save();
void load();
void defaults();
void addIM(int index);
void removeIM(int index);
void move(int from, int to);
void refresh();
void restart();
Q_SIGNALS:
void changed();
void currentGroupChanged(const QString &group);
void groupsChanged(const QStringList &groups);
void imListChanged();
void defaultLayoutChanged();
void needUpdateChanged(bool);
private Q_SLOTS:
void availabilityChanged();
void fetchGroupInfoFinished(QDBusPendingCallWatcher *watcher);
void fetchInputMethodsFinished(QDBusPendingCallWatcher *watcher);
void fetchGroupsFinished(QDBusPendingCallWatcher *watcher);
void checkUpdateFinished(QDBusPendingCallWatcher *watcher);
private:
void reloadGroup();
void updateIMList(bool excludeCurrent = false);
DBusProvider *dbus_;
IMProxyModel *availIMModel_;
IMConfigModelInterface *internalAvailIMModel_ = nullptr;
FilteredIMModel *currentIMModel_;
QString defaultLayout_;
FcitxQtStringKeyValueList imEntries_;
FcitxQtInputMethodEntryList allIMs_;
QStringList groups_;
QString lastGroup_;
bool needSave_ = false;
bool needUpdate_ = false;
};
} // namespace kcm
} // namespace fcitx
#endif // _CONFIGLIB_ABSTRACTIMPAGE_H_

View File

@ -0,0 +1,61 @@
/*
* SPDX-FileCopyrightText: 2017~2017 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "iso639.h"
#include "config.h"
#include <QFile>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
namespace fcitx {
namespace kcm {
namespace {
QMap<QString, QString> readAlpha3ToNameMap(const char *name, const char *base) {
QMap<QString, QString> map;
QFile file(name);
file.open(QIODevice::ReadOnly);
auto data = file.readAll();
QJsonParseError error;
auto document = QJsonDocument::fromJson(data, &error);
if (error.error != QJsonParseError::NoError || !document.isObject()) {
return {};
}
auto object = document.object();
auto iso = object.value(base);
if (!iso.isArray()) {
return {};
}
const auto array = iso.toArray();
for (const auto &item : array) {
if (!item.isObject()) {
continue;
}
auto alpha3 = item.toObject().value("alpha_3").toString();
auto bibliographic = item.toObject().value("bibliographic").toString();
auto name = item.toObject().value("name").toString();
if (alpha3.isEmpty() || name.isEmpty()) {
continue;
}
map.insert(alpha3, name);
if (!bibliographic.isEmpty()) {
map.insert(bibliographic, name);
}
}
return map;
}
} // namespace
Iso639::Iso639() {
iso639_2data_ = readAlpha3ToNameMap(ISOCODES_ISO639_2_JSON, "639-2");
iso639_3data_ = readAlpha3ToNameMap(ISOCODES_ISO639_3_JSON, "639-3");
iso639_5data_ = readAlpha3ToNameMap(ISOCODES_ISO639_5_JSON, "639-5");
}
} // namespace kcm
} // namespace fcitx

View File

@ -0,0 +1,45 @@
/*
* SPDX-FileCopyrightText: 2017~2017 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef _KCM_FCITX_ISO639_H_
#define _KCM_FCITX_ISO639_H_
#include <QMap>
#include <QString>
#include <fcitx-utils/i18n.h>
namespace fcitx {
namespace kcm {
class Iso639 {
public:
Iso639();
QString query(const QString &code) const {
auto value = iso639_2data_.value(code);
if (!value.isEmpty()) {
return translateDomain("iso_639-2", value.toUtf8().constData());
}
value = iso639_3data_.value(code);
if (!value.isEmpty()) {
return translateDomain("iso_639-3", value.toUtf8().constData());
}
value = iso639_5data_.value(code);
if (!value.isEmpty()) {
return translateDomain("iso_639-5", value.toUtf8().constData());
}
return value;
}
private:
QMap<QString, QString> iso639_2data_;
QMap<QString, QString> iso639_3data_;
QMap<QString, QString> iso639_5data_;
};
} // namespace kcm
} // namespace fcitx
#endif // _KCM_FCITX_ISO639_H_

View File

@ -0,0 +1,161 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#include "layoutmodel.h"
namespace fcitx {
namespace kcm {
LanguageModel::LanguageModel(QObject *parent) : QStandardItemModel(parent) {
setItemRoleNames({{Qt::DisplayRole, "name"}, {Qt::UserRole, "language"}});
}
QString LanguageModel::language(int row) const {
auto idx = index(row, 0);
if (idx.isValid()) {
return idx.data(Qt::UserRole).toString();
}
return QString();
}
void LanguageModel::append(const QString &name, const QString &language) {
QStandardItem *item = new QStandardItem(name);
item->setData(language, Qt::UserRole);
appendRow(item);
}
void LanguageFilterModel::setLanguage(const QString &language) {
if (language_ != language) {
language_ = language;
invalidateFilter();
}
}
QVariant LanguageFilterModel::layoutInfo(int row) const {
auto idx = index(row, 0);
if (idx.isValid()) {
return idx.data(LayoutInfoRole);
}
return QVariant();
}
bool LanguageFilterModel::filterAcceptsRow(int source_row,
const QModelIndex &) const {
if (language_.isEmpty()) {
return true;
}
auto index = sourceModel()->index(source_row, 0);
return sourceModel()
->data(index, LayoutLanguageRole)
.toStringList()
.contains(language_);
}
bool LanguageFilterModel::lessThan(const QModelIndex &left,
const QModelIndex &right) const {
return data(left, Qt::DisplayRole).toString() <
data(right, Qt::DisplayRole).toString();
}
QHash<int, QByteArray> LayoutInfoModel::roleNames() const {
return {
{Qt::DisplayRole, "name"},
{Qt::UserRole, "layout"},
{LayoutLanguageRole, "language"},
};
}
void LayoutInfoModel::setLayoutInfo(FcitxQtLayoutInfoList info) {
beginResetModel();
layoutInfo_ = std::move(info);
endResetModel();
}
QVariant LayoutInfoModel::data(const QModelIndex &index, int role) const {
if (!index.isValid() || index.row() >= layoutInfo_.size()) {
return QVariant();
}
const auto &layout = layoutInfo_.at(index.row());
switch (role) {
case Qt::DisplayRole:
return layout.description();
case Qt::UserRole:
return layout.layout();
case LayoutLanguageRole: {
QStringList languages;
languages = layout.languages();
for (const auto &variants : layout.variants()) {
languages << variants.languages();
}
return languages;
}
case LayoutInfoRole:
return QVariant::fromValue(layout);
}
return QVariant();
}
int LayoutInfoModel::rowCount(const QModelIndex &parent) const {
if (parent.isValid()) {
return 0;
}
return layoutInfo_.size();
}
QHash<int, QByteArray> VariantInfoModel::roleNames() const {
return {
{Qt::DisplayRole, "name"},
{Qt::UserRole, "variant"},
{LayoutLanguageRole, "language"},
};
}
void VariantInfoModel::setVariantInfo(const FcitxQtLayoutInfo &info) {
beginResetModel();
variantInfo_.clear();
FcitxQtVariantInfo defaultVariant;
defaultVariant.setVariant("");
defaultVariant.setDescription(_("Default"));
defaultVariant.setLanguages(info.languages());
variantInfo_ << defaultVariant;
variantInfo_ << info.variants();
endResetModel();
}
QVariant VariantInfoModel::data(const QModelIndex &index, int role) const {
if (!index.isValid() || index.row() >= variantInfo_.size()) {
return QVariant();
}
const auto &layout = variantInfo_.at(index.row());
switch (role) {
case Qt::DisplayRole:
return layout.description();
case Qt::UserRole:
return layout.variant();
case LayoutLanguageRole:
return layout.languages();
default:
return QVariant();
}
}
int VariantInfoModel::rowCount(const QModelIndex &parent) const {
if (parent.isValid()) {
return 0;
}
return variantInfo_.size();
}
} // namespace kcm
} // namespace fcitx

View File

@ -0,0 +1,95 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#ifndef _CONFIGLIB_LAYOUTMODEL_H_
#define _CONFIGLIB_LAYOUTMODEL_H_
#include <QSortFilterProxyModel>
#include <QStandardItemModel>
#include <fcitx-utils/i18n.h>
#include <fcitxqtdbustypes.h>
namespace fcitx {
namespace kcm {
enum { LayoutLanguageRole = 0x3423545, LayoutInfoRole };
class LanguageModel : public QStandardItemModel {
Q_OBJECT
public:
LanguageModel(QObject *parent = nullptr);
Q_INVOKABLE QString language(int row) const;
void append(const QString &name, const QString &language);
};
class LanguageFilterModel : public QSortFilterProxyModel {
Q_OBJECT
Q_PROPERTY(QString language READ language WRITE setLanguage);
public:
using QSortFilterProxyModel::QSortFilterProxyModel;
// Forward role names.
QHash<int, QByteArray> roleNames() const override {
if (sourceModel()) {
return sourceModel()->roleNames();
}
return QSortFilterProxyModel::roleNames();
}
const QString &language() const { return language_; }
void setLanguage(const QString &language);
Q_INVOKABLE QVariant layoutInfo(int row) const;
protected:
bool filterAcceptsRow(int source_row, const QModelIndex &) const override;
bool lessThan(const QModelIndex &left,
const QModelIndex &right) const override;
private:
QString language_;
};
class LayoutInfoModel : public QAbstractListModel {
Q_OBJECT
public:
using QAbstractListModel::QAbstractListModel;
QHash<int, QByteArray> roleNames() const override;
auto &layoutInfo() const { return layoutInfo_; }
void setLayoutInfo(FcitxQtLayoutInfoList info);
QVariant data(const QModelIndex &index,
int role = Qt::DisplayRole) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
private:
FcitxQtLayoutInfoList layoutInfo_;
};
class VariantInfoModel : public QAbstractListModel {
Q_OBJECT
public:
using QAbstractListModel::QAbstractListModel;
QHash<int, QByteArray> roleNames() const override;
auto &variantInfo() const { return variantInfo_; }
void setVariantInfo(const FcitxQtLayoutInfo &info);
QVariant data(const QModelIndex &index,
int role = Qt::DisplayRole) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
private:
FcitxQtVariantInfoList variantInfo_;
};
} // namespace kcm
} // namespace fcitx
#endif // _CONFIGLIB_LAYOUTMODEL_H_

View File

@ -0,0 +1,158 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#include "layoutprovider.h"
#include "dbusprovider.h"
namespace fcitx {
namespace kcm {
LayoutProvider::LayoutProvider(DBusProvider *dbus, QObject *parent)
: QObject(parent), dbus_(dbus), languageModel_(new LanguageModel(this)),
layoutModel_(new LayoutInfoModel(this)),
variantModel_(new VariantInfoModel(this)),
layoutFilterModel_(new LanguageFilterModel(this)),
variantFilterModel_(new LanguageFilterModel(this)) {
layoutFilterModel_->setSourceModel(layoutModel_);
variantFilterModel_->setSourceModel(variantModel_);
connect(dbus, &DBusProvider::availabilityChanged, this,
&LayoutProvider::availabilityChanged);
availabilityChanged();
}
LayoutProvider::~LayoutProvider() {}
void LayoutProvider::availabilityChanged() {
setLoaded(false);
if (!dbus_->controller()) {
return;
}
auto call = dbus_->controller()->AvailableKeyboardLayouts();
auto watcher = new QDBusPendingCallWatcher(call, this);
connect(watcher, &QDBusPendingCallWatcher::finished, this,
&LayoutProvider::fetchLayoutFinished);
}
void LayoutProvider::fetchLayoutFinished(QDBusPendingCallWatcher *watcher) {
watcher->deleteLater();
QDBusPendingReply<FcitxQtLayoutInfoList> reply = *watcher;
if (reply.isError()) {
return;
}
QSet<QString> languages;
auto layoutInfo = reply.value();
for (const auto &layout : layoutInfo) {
for (const auto &language : layout.languages()) {
languages << language;
}
for (const auto &variant : layout.variants()) {
for (const auto &language : variant.languages()) {
languages << language;
}
}
}
QStringList languageList;
for (const auto &language : languages) {
languageList << language;
}
languageList.sort();
languageModel_->clear();
QStandardItem *item = new QStandardItem(_("Any language"));
item->setData("", Qt::UserRole);
languageModel_->append(_("Any language"), "");
for (const auto &language : languageList) {
QString languageName = iso639_.query(language);
if (languageName.isEmpty()) {
languageName = language;
} else {
languageName = QString(_("%1 (%2)")).arg(languageName, language);
}
languageModel_->append(languageName, language);
}
layoutModel_->setLayoutInfo(std::move(layoutInfo));
setLoaded(true);
}
int LayoutProvider::layoutIndex(const QString &layoutString) {
auto dashPos = layoutString.indexOf("-");
QString layout;
if (dashPos >= 0) {
layout = layoutString.left(dashPos);
} else {
layout = layoutString;
}
auto &info = layoutModel_->layoutInfo();
auto iter = std::find_if(info.begin(), info.end(),
[&layout](const FcitxQtLayoutInfo &info) {
return info.layout() == layout;
});
if (iter != info.end()) {
auto row = std::distance(info.begin(), iter);
return layoutFilterModel_->mapFromSource(layoutModel_->index(row))
.row();
}
return 0;
}
int LayoutProvider::variantIndex(const QString &layoutString) {
auto dashPos = layoutString.indexOf("-");
QString variant;
if (dashPos >= 0) {
variant = layoutString.mid(dashPos + 1);
}
auto &vinfo = variantModel_->variantInfo();
auto iter = std::find_if(vinfo.begin(), vinfo.end(),
[&variant](const FcitxQtVariantInfo &info) {
return info.variant() == variant;
});
if (iter != vinfo.end()) {
auto row = std::distance(vinfo.begin(), iter);
return variantFilterModel_->mapFromSource(variantModel_->index(row))
.row();
}
return 0;
}
QString LayoutProvider::layoutDescription(const QString &layoutString) {
auto dashPos = layoutString.indexOf("-");
QString layout;
QString variant;
if (dashPos >= 0) {
layout = layoutString.left(dashPos);
variant = layoutString.mid(dashPos + 1);
} else {
layout = layoutString;
}
auto &info = layoutModel_->layoutInfo();
auto iter = std::find_if(info.begin(), info.end(),
[&layout](const FcitxQtLayoutInfo &info) {
return info.layout() == layout;
});
if (iter == info.end()) {
return QString();
}
if (variant.isEmpty()) {
return iter->description();
}
auto variantIter =
std::find_if(iter->variants().begin(), iter->variants().end(),
[&variant](const FcitxQtVariantInfo &info) {
return info.variant() == variant;
});
if (variantIter == iter->variants().end()) {
return iter->description();
}
return QString(_("%1 - %2"))
.arg(iter->description(), variantIter->description());
}
} // namespace kcm
} // namespace fcitx

View File

@ -0,0 +1,96 @@
/*
* SPDX-FileCopyrightText: 2020~2020 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
*/
#ifndef _CONFIGLIB_LAYOUTPROVIDER_H_
#define _CONFIGLIB_LAYOUTPROVIDER_H_
#include "iso639.h"
#include "layoutmodel.h"
#include <QSortFilterProxyModel>
#include <QStandardItemModel>
#include <QStringListModel>
#include <fcitxqtdbustypes.h>
class QDBusPendingCallWatcher;
namespace fcitx {
namespace kcm {
class DBusProvider;
class LanguageFilterModel;
class LayoutInfoModel;
class VariantInfoModel;
class LayoutProvider : public QObject {
Q_OBJECT
Q_PROPERTY(
fcitx::kcm::LanguageModel *languageModel READ languageModel CONSTANT)
Q_PROPERTY(LanguageFilterModel *layoutModel READ layoutModel CONSTANT)
Q_PROPERTY(LanguageFilterModel *variantModel READ variantModel CONSTANT)
public:
LayoutProvider(DBusProvider *dbus, QObject *parent = nullptr);
~LayoutProvider();
auto languageModel() const { return languageModel_; }
auto layoutModel() const { return layoutFilterModel_; }
auto variantModel() const { return variantFilterModel_; }
Q_INVOKABLE int layoutIndex(const QString &layoutString);
Q_INVOKABLE int variantIndex(const QString &layoutString);
Q_INVOKABLE QString layoutDescription(const QString &layoutString);
Q_INVOKABLE void setVariantInfo(const FcitxQtLayoutInfo &info) const {
variantModel_->setVariantInfo(info);
}
Q_INVOKABLE QString layout(int layoutIdx, int variantIdx) const {
auto layoutModelIndex = layoutFilterModel_->index(layoutIdx, 0);
auto variantModelIndex = variantFilterModel_->index(variantIdx, 0);
if (layoutModelIndex.isValid() && variantModelIndex.isValid()) {
auto layout = layoutModelIndex.data(Qt::UserRole).toString();
auto variant = variantModelIndex.data(Qt::UserRole).toString();
if (layout.isEmpty()) {
return QString();
}
if (variant.isEmpty()) {
return layout;
}
return QString("%1-%2").arg(layout, variant);
}
return QString();
}
bool loaded() const { return loaded_; }
Q_SIGNALS:
void loadedChanged();
private Q_SLOTS:
void availabilityChanged();
void fetchLayoutFinished(QDBusPendingCallWatcher *watcher);
private:
void setLoaded(bool loaded) {
if (loaded != loaded_) {
loaded_ = loaded;
Q_EMIT loadedChanged();
}
}
DBusProvider *dbus_;
bool loaded_ = false;
LanguageModel *languageModel_;
LayoutInfoModel *layoutModel_;
VariantInfoModel *variantModel_;
LanguageFilterModel *layoutFilterModel_;
LanguageFilterModel *variantFilterModel_;
Iso639 iso639_;
};
} // namespace kcm
} // namespace fcitx
#endif // _CONFIGLIB_LAYOUTPROVIDER_H_

View File

@ -0,0 +1,9 @@
/*
* SPDX-FileCopyrightText: 2017~2017 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "logging.h"
Q_LOGGING_CATEGORY(KCM_FCITX5, "fcitx5-config")

View File

@ -0,0 +1,13 @@
/*
* SPDX-FileCopyrightText: 2017~2017 CSSlayer <wengxt@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef _KCM_FCITX_LOGGING_H_
#define _KCM_FCITX_LOGGING_H_
#include <QLoggingCategory>
Q_DECLARE_LOGGING_CATEGORY(KCM_FCITX5)
#endif // _KCM_FCITX_LOGGING_H_

Some files were not shown because too many files have changed in this diff Show More