Commit 81ace58e authored by Aron Xu's avatar Aron Xu

Imported Upstream version 0.1.3

parent 089b44f9
......@@ -6,7 +6,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
FIND_PACKAGE(M17N REQUIRED)
FIND_PACKAGE(Gettext REQUIRED)
FIND_PACKAGE(Fcitx 4.2.1 REQUIRED)
FIND_PACKAGE(Fcitx 4.2.6 REQUIRED)
option(ENABLE_TEST "standalone test program" Off)
......
......@@ -8,6 +8,7 @@ set( fcitx_m17n_sources
fcitx-m17n.c
keysymname.c
config.c
overrideparser.c
)
if (NEED_MINPUT_LIST)
......@@ -20,3 +21,5 @@ fcitx_add_addon(fcitx-m17n ${fcitx_m17n_sources} )
fcitx_add_addon_conf_file(fcitx-m17n.conf)
fcitx_add_configdesc_file(fcitx-m17n.desc)
target_link_libraries (fcitx-m17n ${M17N_LIBRARIES})
install(FILES default DESTINATION ${FCITX4_PREFIX}/share/fcitx/m17n)
\ No newline at end of file
/*
/*
* Copyright (C) 2012-2012 Cheer Xiao
* Copyright (C) 2012-2012 CSSlayer
*
......@@ -23,4 +23,5 @@
CONFIG_BINDING_BEGIN(FcitxM17NConfig)
CONFIG_BINDING_REGISTER("M17N", "PrevPage", hkPrevPage)
CONFIG_BINDING_REGISTER("M17N", "NextPage", hkNextPage)
CONFIG_BINDING_REGISTER("M17N", "EnableDeprecated", enableDeprecated)
CONFIG_BINDING_END()
# Default
as:*:2
bn:*:2
gu:*:2
hi:*:2
kn:*:2
ks:*:2
mai:*2
ml:*:2
mr:*:2
ne:*:2
or:*:2
pa:*:2
sa:*:2
sd:*:2
si:*:2
ta:*:2
te:*:2
# Default with higher level
as:phonetic:1
bn:inscript:1
gu:inscript:1
hi:inscript:1
kn:kgp:1
ks:kbd:1
mai:inscript:1
ml:inscript:1
mr:inscript:1
ne:rom:1
or:inscript:1
pa:inscript:1
sa:harvard-kyoto:1
sd:inscript:1
si:wijesekera:1
ta:tamil99:1
te:inscript:1
zh:bopomofo:100:Chewing Symbol
zh:py:100:Pinyin Symbol
# Disabled with -1
zh:cangjie:-1:Cangjie
zh:pinyin:-1:Pinyin
zh:tonepy:-1:Tone Pinyin
*:kbd:-1:Keyboard
ja:anthy:-1:Anthy
ko:han2:-1:Hanja
ko:romaja:-1:Romaja
zh:quick:-1:Quick
\ No newline at end of file
......@@ -41,6 +41,7 @@
#include "fcitx-m17n.h"
#include "keysymname.h"
#include "overrideparser.h"
#define CONF_FNAME "fcitx-m17n.config"
#define TEXTDOMAIN "fcitx-m17n"
......@@ -49,7 +50,6 @@
static const FcitxHotkey FCITX_M17N_UP[2] = {{NULL, FcitxKey_Up, 0}, {NULL, FcitxKey_P, FcitxKeyState_Ctrl}};
static const FcitxHotkey FCITX_M17N_DOWN[2] = {{NULL, FcitxKey_Down, 0}, {NULL, FcitxKey_N, FcitxKeyState_Ctrl}};
extern const char* KeySymName (FcitxKeySym keyval);
static MSymbol KeySymToSymbol (FcitxKeySym sym, unsigned int state);
static void* FcitxM17NCreate(FcitxInstance *instance);
......@@ -76,16 +76,11 @@ static void* MPListIndex(MPlist *head, size_t idx);
inline static void SetPreedit(FcitxInstance* inst, FcitxInputState* is, const char* s, int cursor_pos);
static int GetPageSize(MSymbol mlang, MSymbol mname);
FCITX_EXPORT_API
FcitxIMClass ime = {
FCITX_DEFINE_PLUGIN(fcitx_m17n, ime, FcitxIMClass) = {
FcitxM17NCreate,
FcitxM17NDestroy
};
FCITX_EXPORT_API
int ABI_VERSION = FCITX_ABI_VERSION;
char* MTextToUTF8(MText* mt)
{
// TODO Verify that bufsize is "just enough" in worst scenerio.
......@@ -224,7 +219,7 @@ FcitxIRV FcitxM17NGetCandWords(void *arg)
if (im->owner->mic->status) {
char* mstatus = MTextToUTF8(im->owner->mic->status);
toShow = toShow || (strlen(mstatus) != 0);
// toShow = toShow || (strlen(mstatus) != 0);
if (strlen(mstatus) != 0) {
FcitxLog(DEBUG, "IM status changed to %s", mstatus);
// FcitxMessages* auxDown = FcitxInputStateGetAuxUpDown(is);
......@@ -267,7 +262,7 @@ FcitxIRV FcitxM17NGetCandWords(void *arg)
char *words = MTextToUTF8((MText*) mplist_value(head));
char *p, *q;
for (p = words; *p; p = q) {
int unused;
uint32_t unused;
q = fcitx_utf8_get_char(p, &unused);
cand.strWord = strndup(p, q-p);
cand.priv = fcitx_utils_malloc0(sizeof(int));
......@@ -284,14 +279,10 @@ FcitxIRV FcitxM17NGetCandWords(void *arg)
}
toShow = toShow || hasCand;
}
if (toShow) {
ret |= IRV_DISPLAY_CANDWORDS;
}
FcitxUIUpdateInputWindow(inst);
if (im->forward) {
ret |= IRV_FLAG_FORWARD_KEY;
ret = IRV_TO_PROCESS;
}
return ret;
}
......@@ -324,6 +315,7 @@ MSymbol KeySymToSymbol (FcitxKeySym sym, unsigned int state)
}
const char* base = "";
char temp[2] = " ";
if (sym >= FcitxKey_space && sym <= FcitxKey_asciitilde) {
FcitxKeySym c = sym;
......@@ -337,7 +329,6 @@ MSymbol KeySymToSymbol (FcitxKeySym sym, unsigned int state)
mask |= FcitxKeyState_Ctrl;
}
char temp[2] = " ";
temp[0] = c & 0xff;
base = temp;
}
......@@ -356,7 +347,7 @@ MSymbol KeySymToSymbol (FcitxKeySym sym, unsigned int state)
if (mask & FcitxKeyState_Hyper) {
prefix = "H-";
}
if (mask & FcitxKeyState_Super2) {
if (mask & FcitxKeyState_Super) {
prefix = "s-";
}
// This is mysterious. - xiaq
......@@ -418,10 +409,12 @@ FcitxIRV FcitxM17NDoInput(void* arg, FcitxKeySym sym, unsigned state)
FcitxIRV FcitxM17NDoInputInternal(IM* im, FcitxKeySym sym, unsigned state)
{
MSymbol msym = KeySymToSymbol(sym, state);
FcitxInstance* inst = im->owner->owner;
FcitxInputState* is = FcitxInstanceGetInputState(inst);
FcitxInputContext* ic = FcitxInstanceGetCurrentIC(inst);
MSymbol msym = KeySymToSymbol(FcitxInputStateGetKeySym(is), FcitxInputStateGetKeyState(is));
if (msym == Mnil) {
FcitxLog(DEBUG, "sym=%x, state=%x, not my dish", sym, state);
return IRV_TO_PROCESS;
......@@ -530,6 +523,14 @@ void *FcitxM17NCreate(FcitxInstance* inst)
// but it also makes the the code a little simpler.
addon->ims = (IM**) fcitx_utils_malloc0(sizeof(IM*) * addon->nim);
OverrideItemList* list = NULL;
FILE* fp = FcitxXDGGetFileWithPrefix("m17n", "default", "r", NULL);
if (fp) {
list = ParseDefaultSettings(fp);
fclose(fp);
}
char* curlang = fcitx_utils_get_current_langcode();
int i;
for (i = 0; i < addon->nim; i++, mimlist = mplist_next(mimlist)) {
// See m17n documentation of minput_list() in input.c.
......@@ -542,9 +543,16 @@ void *FcitxM17NCreate(FcitxInstance* inst)
char *lang = msymbol_name(mlang);
char *name = msymbol_name(mname);
OverrideItem* item = NULL;
if (list)
item = MatchDefaultSettings(list, lang, name);
if (item && item->priority < 0 && !addon->config.enableDeprecated)
continue;
if (msane != Mt) {
// Not "sane"
FcitxLog(WARNING, "Insane IM [%s: %s]", lang, name);
// FcitxLog(WARNING, "Insane IM [%s: %s]", lang, name);
continue;
}
......@@ -557,14 +565,13 @@ void *FcitxM17NCreate(FcitxInstance* inst)
}
if (!(addon->ims[i] = FcitxM17NMakeIM(addon, mlang, mname))) {
FcitxLog(ERROR, "Failed to create IM [%s: %s]", lang, name);
continue;
}
FcitxLog(INFO, "Created IM [%s: %s]", lang, name);
FcitxLog(DEBUG, "Created IM [%s: %s]", lang, name);
char *uniqueName, *fxName, *iconName;
asprintf(&uniqueName, "m17n_%s_%s", lang, name);
asprintf(&fxName, _("%s - %s (M17N)"), lang, name);
asprintf(&fxName, _("%s (M17N)"), (item && item->i18nName) ? _(item->i18nName) : name);
info = minput_get_title_icon(mlang, mname);
// head of info is a MText
......@@ -577,18 +584,29 @@ void *FcitxM17NCreate(FcitxInstance* inst)
// /usr/share/m17n/icons/... on Linux systems, this is a
// reasonable assumption.
iconName = MTextToUTF8(iconPath);
FcitxLog(INFO, "Mim icon is %s", iconName);
FcitxLog(DEBUG, "Mim icon is %s", iconName);
} else {
iconName = uniqueName;
}
FcitxInstanceRegisterIM(
FcitxIMIFace iface;
memset(&iface, 0, sizeof(FcitxIMIFace));
iface.Init = FcitxM17NInit;
iface.DoInput = FcitxM17NDoInput;
iface.ResetIM = FcitxM17NReset;
iface.Save = FcitxM17NSave;
iface.ReloadConfig = FcitxM17NReload;
iface.GetCandWords = FcitxM17NGetCandWords;
int priority = 100;
if (item && strncmp(curlang, lang, 2) == 0 && item->priority > 0)
priority = item->priority;
FcitxInstanceRegisterIMv2(
inst, addon->ims[i],
uniqueName, fxName, iconName,
FcitxM17NInit, FcitxM17NReset, FcitxM17NDoInput,
FcitxM17NGetCandWords, NULL, FcitxM17NSave,
FcitxM17NReload, NULL,
100, strcmp(lang, "t") == 0 ? "*" : lang
iface,
priority, strcmp(lang, "t") == 0 ? "*" : lang
);
if (iconName != uniqueName) {
free(iconName);
......@@ -597,6 +615,11 @@ void *FcitxM17NCreate(FcitxInstance* inst)
free(fxName);
}
fcitx_utils_free(curlang);
if (list)
utarray_free(list);
return addon;
}
......@@ -714,4 +737,4 @@ FcitxM17NCallback (MInputContext *context,
else if (len > 0)
FcitxInstanceDeleteSurroundingText (im->owner->owner, ic, 0, -len);
}
}
\ No newline at end of file
}
......@@ -8,5 +8,11 @@ Description=Next Page
Type=Hotkey
DefaultValue=DOWN CTRL_N
[M17N/EnableDeprecated]
Description=Enable deprecated Input method
Type=Boolean
DefaultValue=False
LongDescription=Enable deprecated input method provided M17N, usually this means something better is already out (Need restart)
[DescriptionFile]
LocaleDomain=fcitx-m17n
\ No newline at end of file
/*
/*
* Copyright (C) 2012-2012 Cheer Xiao
* Copyright (C) 2012-2012 CSSlayer
*
......@@ -34,6 +34,7 @@ typedef struct _FcitxM17NConfig
FcitxGenericConfig gconfig;
FcitxHotkey hkPrevPage[2];
FcitxHotkey hkNextPage[2];
boolean enableDeprecated;
} FcitxM17NConfig;
struct _Addon;
......
/* dump entry for extract */
#define N_(x) x
/* remember to update "default" in the same directory. */
const char* dump = {
N_("Chewing Symbol"),
N_("Cangjie"),
N_("Pinyin"),
N_("Tone Pinyin"),
N_("Keyboard"),
N_("Anthy"),
N_("Hanja"),
N_("Romaja"),
N_("Quick")
};
\ No newline at end of file
#ifndef KEYSYMNAME_H
#define KEYSYMNAME_H
#include <fcitx-config/hotkey.h>
const char* KeySymName (FcitxKeySym keyval);
#endif // KEYSYMNAME_H
#include <fcitx-utils/uthash.h>
#include <fcitx-config/xdg.h>
#include <fcitx/ime.h>
#include "overrideparser.h"
static void OverrideItemFree(void* a);
static const UT_icd oil_icd = {sizeof(OverrideItem), 0, 0, OverrideItemFree};
void OverrideItemFree(void* a)
{
OverrideItem* i = (OverrideItem*) a;
free(i->name);
fcitx_utils_free(i->i18nName);
}
int OverrideItemCmp(const void* a, const void* b)
{
OverrideItem* ia = (OverrideItem*) a;
OverrideItem* ib = (OverrideItem*) b;
return ia->wildcardCount - ib->wildcardCount;
}
OverrideItemList* ParseDefaultSettings(FILE* fp)
{
char* buf = NULL;
size_t bufsize = 0;
OverrideItemList* list = NULL;
utarray_new(list, &oil_icd);
while(getline(&buf, &bufsize, fp) != -1) {
/* ignore comments */
if (!buf || buf[0] == '#')
continue;
char* trimmed = fcitx_utils_trim(buf);
UT_array* strList = fcitx_utils_split_string(trimmed, ':');
free(trimmed);
do {
if (utarray_len(strList) < 3)
break;
char* lang = *(char**) utarray_eltptr(strList, 0);
char* name = *(char**) utarray_eltptr(strList, 1);
char* sPriority = *(char**) utarray_eltptr(strList, 2);
char* i18nname = NULL;
if (utarray_len(strList) == 4) {
i18nname = *(char**) utarray_eltptr(strList, 3);
}
if (strlen(lang) > LANGCODE_LENGTH)
break;
int priority = atoi(sPriority);
utarray_extend_back(list);
OverrideItem* item = (OverrideItem*) utarray_back(list);
strncpy(item->lang, lang, LANGCODE_LENGTH);
item->name = strdup(name);
item->priority = priority;
item->i18nName = i18nname? strdup(i18nname) : 0;
item->wildcardCount = 0;
if (item->name[0] == '*')
item->wildcardCount |= 1;
if (item->lang[0] == '*')
item->wildcardCount |= 2;
} while (0);
fcitx_utils_free_string_list(strList);
}
fcitx_utils_free(buf);
utarray_sort(list, OverrideItemCmp);
return list;
}
OverrideItem* MatchDefaultSettings(OverrideItemList* list, const char* lang, const char* name)
{
OverrideItem* item;
for (item = (OverrideItem*) utarray_front(list);
item != NULL;
item = (OverrideItem*) utarray_next(list, item))
{
if (!((item->wildcardCount & 2) || strcmp(lang, item->lang) == 0))
continue;
if (!((item->wildcardCount & 1) || strcmp(name, item->name) == 0))
continue;
break;
}
return item;
}
#ifndef OVERRIDEPARSER_H
#define OVERRIDEPARSER_H
#include <fcitx/ime.h>
typedef struct _OverrideList {
char lang[LANGCODE_LENGTH + 1];
char* name;
int priority;
char* i18nName;
int wildcardCount;
} OverrideItem;
typedef UT_array OverrideItemList;
OverrideItemList* ParseDefaultSettings(FILE* fp);
OverrideItem* MatchDefaultSettings(OverrideItemList* list, const char* lang, const char* name);
#endif // OVERRIDEPARSER_H
\ No newline at end of file
......@@ -9,10 +9,7 @@ set(POT_FILE fcitx-m17n.pot)
configure_file(POTFILES.in.in ${CMAKE_CURRENT_BINARY_DIR}/POTFILES.in)
extract_fcitx_addon_conf_postring()
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/desc.po
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/getdescpo ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS getdescpo)
extract_fcitx_desc_file_postring()
add_custom_target(
pot
......
......@@ -2,4 +2,5 @@
./po/conf.po
./po/desc.po
@REL_SOURCE_ROOT@/im/fcitx-m17n.c
@REL_SOURCE_ROOT@/im/i18nname.c
@REL_SOURCE_ROOT@/im/fcitx-m17n.conf.in
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-03-11 20:38+0800\n"
"POT-Creation-Date: 2012-09-27 12:48-0400\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"
......@@ -34,7 +34,53 @@ msgstr ""
msgid "Next Page"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/fcitx-m17n.c:562
#: /home/saber/Develop/fcitx-m17n/im/fcitx-m17n.desc:12
msgid "Enable deprecated Input method"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/im/fcitx-m17n.desc:15
msgid ""
"Enable deprecated input method provided M17N, usually this means something "
"better is already out (Need restart)"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/fcitx-m17n.c:576
#, c-format
msgid "%s - %s (M17N)"
msgid "%s (M17N)"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:7
msgid "Chewing Symbol"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:8
msgid "Cangjie"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:9
msgid "Pinyin"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:10
msgid "Tone Pinyin"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:11
msgid "Keyboard"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:12
msgid "Anthy"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:13
msgid "Hanja"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:14
msgid "Romaja"
msgstr ""
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:15
msgid "Quick"
msgstr ""
#!/bin/sh
filename=desc.po
indir=$1
outdir=$2
cd "$outdir"
rm -f "$outdir/$filename"; touch "$outdir/$filename"
cat > "$outdir/$filename" <<EOF
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: fcitx-dev@googlegroups.com\n"
"POT-Creation-Date: 2010-11-17 11:48+0800\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: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
EOF
cd $indir
descfiles=`find "$indir" -name ".hg" -prune -or -name "test" -prune -or -iname "*.desc" | grep desc`
# Extract Description
for f in $descfiles
do
awk '/^[\t ]*Description=/ { print "\n#: '$f':" NR"\n" "msgid \"" substr($0, 13)"\"\n" "msgstr \"\""}' "$f" >> "$outdir/$filename"
done
# Extract Group Name
grep -nH '^\[' $descfiles | grep -v 'DescriptionFile' | awk ' "^[" { split($0, a, ":"); split(a[3], b, "/"); print substr(b[1], 2); }' | sort | uniq | awk '{ print "# unknown\nmsgid \""$0"\"\nmsgstr \"\"\n"; }' >> "$outdir/$filename"
# Extract Enum Name
grep -h 'Enum[0-9]' $descfiles | sed -e 's/Enum[0-9]=//g' | sort | uniq | awk '{ print "#: unknown\nmsgid \""$0"\"\nmsgstr \"\"\n"; }' >> "$outdir/$filename"
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: fcitx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-03-11 20:38+0800\n"
"PO-Revision-Date: 2012-03-11 20:38+0800\n"
"POT-Creation-Date: 2012-09-27 12:48-0400\n"
"PO-Revision-Date: 2012-09-27 12:49-0400\n"
"Last-Translator: Weng Xuetian <wengxt@gmail.com>\n"
"Language-Team: Chinese Simplified <fcitx-dev@googlegroups.com>\n"
"Language: zh_CN\n"
......@@ -16,12 +16,42 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0\n"
"X-Generator: Lokalize 1.4\n"
"X-Generator: Lokalize 1.5\n"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/fcitx-m17n.c:562
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/fcitx-m17n.c:576
#, c-format
msgid "%s - %s (M17N)"
msgstr "%s - %s (M17N)"
msgid "%s (M17N)"
msgstr "%s (M17N)"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:12
msgid "Anthy"
msgstr "Anthy"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:8
msgid "Cangjie"
msgstr "仓颉"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:7
msgid "Chewing Symbol"
msgstr "注音符号"
#: /home/saber/Develop/fcitx-m17n/im/fcitx-m17n.desc:12
msgid "Enable deprecated Input method"
msgstr "启用已废弃的输入法"
#: /home/saber/Develop/fcitx-m17n/im/fcitx-m17n.desc:15
msgid ""
"Enable deprecated input method provided M17N, usually this means something "
"better is already out (Need restart)"
msgstr "启用 M17N 提供的已废弃的输入法,通常这意味着更好的输入法已经被支持 (需要重启)"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:13
msgid "Hanja"
msgstr "汉字"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:11
msgid "Keyboard"
msgstr "键盘"
#: /home/saber/Develop/fcitx-m17n/build/po/tmp/fcitx-m17n.conf.in.h:1
msgid "M17N"
......@@ -35,7 +65,23 @@ msgstr "Fcitx 的 M17N 输入法支持"
msgid "Next Page"
msgstr "下一页"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:9
msgid "Pinyin"
msgstr "拼音"
#: /home/saber/Develop/fcitx-m17n/im/fcitx-m17n.desc:2
msgid "Prev Page"
msgstr "上一页"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:15
msgid "Quick"
msgstr "速成"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:14
msgid "Romaja"
msgstr "罗马字"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:10
msgid "Tone Pinyin"
msgstr "音调拼音"
......@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: fcitx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-03-11 20:38+0800\n"
"PO-Revision-Date: 2012-03-11 20:39+0800\n"
"POT-Creation-Date: 2012-09-27 12:48-0400\n"
"PO-Revision-Date: 2012-09-27 12:51-0400\n"
"Last-Translator: Weng Xuetian <wengxt@gmail.com>\n"
"Language-Team: Chinese Simplified <fcitx-dev@googlegroups.com>\n"
"Language: zh_TW\n"
......@@ -18,13 +18,43 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"language/zh_TW/)\n"
"Plural-Forms: nplurals=1; plural=0\n"
"X-Generator: Lokalize 1.4\n"
"X-Generator: Lokalize 1.5\n"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/fcitx-m17n.c:562
#, c-format
msgid "%s - %s (M17N)"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/fcitx-m17n.c:576
#, fuzzy, c-format
msgid "%s (M17N)"
msgstr "%s - %s (M17N)"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:12
msgid "Anthy"
msgstr "Anthy"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:8
msgid "Cangjie"
msgstr "倉頡"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:7
msgid "Chewing Symbol"
msgstr "注音符號"
#: /home/saber/Develop/fcitx-m17n/im/fcitx-m17n.desc:12
msgid "Enable deprecated Input method"
msgstr "啓用已廢棄的輸入法"
#: /home/saber/Develop/fcitx-m17n/im/fcitx-m17n.desc:15
msgid ""
"Enable deprecated input method provided M17N, usually this means something "
"better is already out (Need restart)"
msgstr "啓用由 M17N 提供的已廢棄的輸入法,通常這意味着更好的輸入法已經被支持 (需要重啓)"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:13
msgid "Hanja"
msgstr "漢字"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:11
msgid "Keyboard"
msgstr "鍵盤"
#: /home/saber/Develop/fcitx-m17n/build/po/tmp/fcitx-m17n.conf.in.h:1
msgid "M17N"
msgstr "M17N"
......@@ -37,6 +67,23 @@ msgstr "Fcitx 的 M17N 輸入法支援"
msgid "Next Page"
msgstr "下一頁"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:9
msgid "Pinyin"
msgstr "拼音"
#: /home/saber/Develop/fcitx-m17n/im/fcitx-m17n.desc:2
msgid "Prev Page"
msgstr "上一頁"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:15
msgid "Quick"
msgstr "速成"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:14
msgid "Romaja"
msgstr "羅馬字"
#: /home/saber/Develop/fcitx-m17n/build/po/../..//im/i18nname.c:10
msgid "Tone Pinyin"
msgstr "音調拼音"
......@@ -3,13 +3,18 @@ include_directories (${M17N_INCLUDE_DIR}
../im
)
link_directories(${FCITX4_FCITX_UTILS_LIBRARY_DIRS})
set(testmim_SOURCES
testmim.cc
)
if (NEED_MINPUT_LIST)
set(testmim_SOURCES ${testmim_SOURCES} ../im/minput_list.c)
endif (NEED_MINPUT_LIST)
add_executable(testmim ${testmim_SOURCES})
target_link_libraries (testmim ${M17N_LIBRARIES})
\ No newline at end of file
target_link_libraries (testmim ${M17N_LIBRARIES})
add_executable(testoverride testoverride.c ../im/overrideparser.c)
target_link_libraries (testoverride ${FCITX4_FCITX_UTILS_LIBRARIES})