diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index 8f833c00..67b2234b 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -634,128 +634,126 @@
MainWindow
-
-
-
-
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -1380,48 +1378,33 @@ Updated content:
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
-
-
+
+
@@ -1644,14 +1627,8 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
-
-
-
-
-
-
-
-
+
+
@@ -1706,12 +1683,6 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
-
-
-
-
-
-
T_LineChart
@@ -1945,26 +1916,6 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
T_PieChart
@@ -2267,36 +2218,6 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
T_Slider
@@ -2766,80 +2687,62 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
T_Tour
-
-
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index 4c020eb9..f8574826 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -634,128 +634,126 @@
MainWindow
-
-
-
-
+
+
夜间模式
-
-
-
-
+
+
+
+
退出
-
-
+
+
您确定要退出程序吗
-
-
+
+
最小化
-
-
+
+
友情提示
-
-
+
+
FluentUI 在托盘中处于隐藏状态,单击托盘以再次激活窗口
-
-
-
-
+
+
+
+
取消
-
-
+
+
在独立窗口中打开
-
-
+
+
点击次数
-
-
+
+
搜索
-
-
+
+
完成
-
-
+
+
下一步
-
-
+
+
上一步
-
-
+
+
在这里,您可以切换到夜间模式。
-
-
+
+
隐藏彩蛋
-
-
+
+
再试几下!!
-
-
+
+
升级提示
-
-
+
+
FluentUI 目前最新版本
-
-
+
+
-- 当前应用版本
-
-
+
+
-
-
+
+
确定
-
-
+
+
当前版本已经是最新版本
-
-
+
+
网络异常
@@ -1384,48 +1382,33 @@ Updated content:
-
-
-
-
+
年
-
-
-
-
+
月
-
-
-
-
+
日
-
-
-
-
+
取消
-
-
-
-
+
确定
-
-
+
+
@@ -1656,14 +1639,12 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
图像
-
-
- 重新加载
+ 重新加载
-
-
+
+
图片加载失败,请重新加载
@@ -1719,10 +1700,8 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
需要手动关闭的信息栏
-
-
- 加载中...
+ 加载中...
@@ -1958,24 +1937,12 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
分页
-
-
-
-
-
-
- <上一页
+ <上一页
-
-
-
-
-
-
- 下一页>
+ 下一页>
@@ -2282,34 +2249,24 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
快捷键选择器
-
-
- 激活快捷键
+ 激活快捷键
-
-
- 按下组合键以更改此快捷键
+ 按下组合键以更改此快捷键
-
-
- 保存
+ 保存
-
-
- 取消
+ 取消
-
-
- 重置
+ 重置
@@ -2780,80 +2737,74 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
T_Tour
-
-
- 完成
+ 完成
+
+
+
+ 下一步
+
+
+
+ 上一步
-
- 下一步
-
-
-
-
-
- 上一步
-
-
-
-
上传文件
-
-
+
+
把你的文件放在这里
-
-
-
-
-
-
+
+
+
+
+
+
保存
-
-
+
+
保存更改
-
-
+
+
其他操作
-
-
+
+
点击查看其他操作
-
-
+
+
开始游览
-
-
-
-
+
+
+
+
上传
-
-
+
+
更多
diff --git a/example/qml-Qt6/App.qml b/example/qml-Qt6/App.qml
index 9dfd9891..a36f4961 100644
--- a/example/qml-Qt6/App.qml
+++ b/example/qml-Qt6/App.qml
@@ -33,7 +33,7 @@ Item {
FluNetwork.setInterceptor(function(param){
param.addHeader("Token","000000000000000000000")
})
- FluApp.init(app)
+ FluApp.init(app,Qt.locale(TranslateHelper.current))
FluApp.windowIcon = "qrc:/example/res/image/favicon.ico"
FluApp.useSystemAppBar = SettingsHelper.getUseSystemAppBar()
FluTheme.darkMode = SettingsHelper.getDarkMode()
diff --git a/example/qml-Qt6/page/T_DatePicker.qml b/example/qml-Qt6/page/T_DatePicker.qml
index 8d5c4827..fa4e342f 100644
--- a/example/qml-Qt6/page/T_DatePicker.qml
+++ b/example/qml-Qt6/page/T_DatePicker.qml
@@ -24,11 +24,6 @@ FluScrollablePage{
}
FluDatePicker{
current: new Date()
- yearText: qsTr("Year")
- monthText: qsTr("Month")
- dayText: qsTr("Day")
- cancelText: qsTr("Cancel")
- okText: qsTr("OK")
onAccepted: {
showSuccess(current.toLocaleDateString())
}
diff --git a/example/qml-Qt6/page/T_Image.qml b/example/qml-Qt6/page/T_Image.qml
index df412204..be2745ea 100644
--- a/example/qml-Qt6/page/T_Image.qml
+++ b/example/qml-Qt6/page/T_Image.qml
@@ -24,7 +24,6 @@ FluScrollablePage{
width: 384
height: 240
source: "https://gitee.com/zhu-zichu/zhu-zichu/raw/74f075efe2f8d3c3bb7ba3c2259e403450e4050b/image/banner_4.jpg"
- errorButtonText: qsTr("Reload")
onStatusChanged:{
if(status === Image.Error){
showError(qsTr("The image failed to load, please reload"))
diff --git a/example/qml-Qt6/page/T_InfoBar.qml b/example/qml-Qt6/page/T_InfoBar.qml
index c5ad2991..b237cdb7 100644
--- a/example/qml-Qt6/page/T_InfoBar.qml
+++ b/example/qml-Qt6/page/T_InfoBar.qml
@@ -53,7 +53,7 @@ FluScrollablePage{
FluButton{
text:"Loading"
onClicked: {
- showLoading(qsTr("Loading..."))
+ showLoading()
}
}
}
diff --git a/example/qml-Qt6/page/T_Pagination.qml b/example/qml-Qt6/page/T_Pagination.qml
index d0bd3fe7..f2e85c11 100644
--- a/example/qml-Qt6/page/T_Pagination.qml
+++ b/example/qml-Qt6/page/T_Pagination.qml
@@ -21,22 +21,16 @@ FluScrollablePage{
pageCurrent: 1
pageButtonCount: 5
itemCount: 5000
- previousText: qsTr("")
}
FluPagination{
pageCurrent: 2
itemCount: 5000
pageButtonCount: 7
- previousText: qsTr("")
}
FluPagination{
pageCurrent: 3
itemCount: 5000
pageButtonCount: 9
- previousText: qsTr("")
}
}
diff --git a/example/qml-Qt6/page/T_ShortcutPicker.qml b/example/qml-Qt6/page/T_ShortcutPicker.qml
index bb3fee2e..b2f51448 100644
--- a/example/qml-Qt6/page/T_ShortcutPicker.qml
+++ b/example/qml-Qt6/page/T_ShortcutPicker.qml
@@ -16,11 +16,6 @@ FluScrollablePage{
paddings: 10
FluShortcutPicker{
anchors.verticalCenter: parent.verticalCenter
- title: qsTr("Activate the Shortcut")
- message: qsTr("Press the key combination to change the shortcut")
- positiveText: qsTr("Save")
- neutralText: qsTr("Cancel")
- negativeText: qsTr("Reset")
}
}
CodeExpander{
diff --git a/example/qml-Qt6/page/T_Tour.qml b/example/qml-Qt6/page/T_Tour.qml
index e4c0e202..830f58c5 100644
--- a/example/qml-Qt6/page/T_Tour.qml
+++ b/example/qml-Qt6/page/T_Tour.qml
@@ -11,9 +11,6 @@ FluScrollablePage{
FluTour{
id:tour
- finishText: qsTr("Finish")
- nextText: qsTr("Next")
- previousText: qsTr("Previous")
steps:[
{title:qsTr("Upload File"),description: qsTr("Put your files here."),target:()=>btn_upload},
{title:qsTr("Save"),description: qsTr("Save your changes."),target:()=>btn_save},
diff --git a/example/qml/App.qml b/example/qml/App.qml
index 8b282184..3f8be19d 100644
--- a/example/qml/App.qml
+++ b/example/qml/App.qml
@@ -33,7 +33,7 @@ Item {
FluNetwork.setInterceptor(function(param){
param.addHeader("Token","000000000000000000000")
})
- FluApp.init(app)
+ FluApp.init(app,Qt.locale(TranslateHelper.current))
FluApp.windowIcon = "qrc:/example/res/image/favicon.ico"
FluApp.useSystemAppBar = SettingsHelper.getUseSystemAppBar()
FluTheme.darkMode = SettingsHelper.getDarkMode()
diff --git a/example/qml/page/T_DatePicker.qml b/example/qml/page/T_DatePicker.qml
index b193c9ca..e65752aa 100644
--- a/example/qml/page/T_DatePicker.qml
+++ b/example/qml/page/T_DatePicker.qml
@@ -24,11 +24,6 @@ FluScrollablePage{
}
FluDatePicker{
current: new Date()
- yearText: qsTr("Year")
- monthText: qsTr("Month")
- dayText: qsTr("Day")
- cancelText: qsTr("Cancel")
- okText: qsTr("OK")
onAccepted: {
showSuccess(current.toLocaleDateString())
}
@@ -58,11 +53,6 @@ FluScrollablePage{
}
FluDatePicker{
showYear: false
- yearText: qsTr("Year")
- monthText: qsTr("Month")
- dayText: qsTr("Day")
- cancelText: qsTr("Cancel")
- okText: qsTr("OK")
onAccepted: {
showSuccess(current.toLocaleDateString())
}
diff --git a/example/qml/page/T_Image.qml b/example/qml/page/T_Image.qml
index e66f77f8..b5662367 100644
--- a/example/qml/page/T_Image.qml
+++ b/example/qml/page/T_Image.qml
@@ -24,7 +24,6 @@ FluScrollablePage{
width: 384
height: 240
source: "https://gitee.com/zhu-zichu/zhu-zichu/raw/74f075efe2f8d3c3bb7ba3c2259e403450e4050b/image/banner_4.jpg"
- errorButtonText: qsTr("Reload")
onStatusChanged:{
if(status === Image.Error){
showError(qsTr("The image failed to load, please reload"))
diff --git a/example/qml/page/T_InfoBar.qml b/example/qml/page/T_InfoBar.qml
index f91c1bd1..19c4c90a 100644
--- a/example/qml/page/T_InfoBar.qml
+++ b/example/qml/page/T_InfoBar.qml
@@ -53,7 +53,7 @@ FluScrollablePage{
FluButton{
text:"Loading"
onClicked: {
- showLoading(qsTr("Loading..."))
+ showLoading()
}
}
}
diff --git a/example/qml/page/T_Pagination.qml b/example/qml/page/T_Pagination.qml
index 52e2d9f2..717c3dc1 100644
--- a/example/qml/page/T_Pagination.qml
+++ b/example/qml/page/T_Pagination.qml
@@ -21,22 +21,16 @@ FluScrollablePage{
pageCurrent: 1
pageButtonCount: 5
itemCount: 5000
- previousText: qsTr("")
}
FluPagination{
pageCurrent: 2
itemCount: 5000
pageButtonCount: 7
- previousText: qsTr("")
}
FluPagination{
pageCurrent: 3
itemCount: 5000
pageButtonCount: 9
- previousText: qsTr("")
}
}
diff --git a/example/qml/page/T_ShortcutPicker.qml b/example/qml/page/T_ShortcutPicker.qml
index c202ba82..9d594562 100644
--- a/example/qml/page/T_ShortcutPicker.qml
+++ b/example/qml/page/T_ShortcutPicker.qml
@@ -16,11 +16,6 @@ FluScrollablePage{
paddings: 10
FluShortcutPicker{
anchors.verticalCenter: parent.verticalCenter
- title: qsTr("Activate the Shortcut")
- message: qsTr("Press the key combination to change the shortcut")
- positiveText: qsTr("Save")
- neutralText: qsTr("Cancel")
- negativeText: qsTr("Reset")
}
}
CodeExpander{
diff --git a/example/qml/page/T_Tour.qml b/example/qml/page/T_Tour.qml
index 1e3fa0db..4a38050a 100644
--- a/example/qml/page/T_Tour.qml
+++ b/example/qml/page/T_Tour.qml
@@ -11,9 +11,6 @@ FluScrollablePage{
FluTour{
id:tour
- finishText: qsTr("Finish")
- nextText: qsTr("Next")
- previousText: qsTr("Previous")
steps:[
{title:qsTr("Upload File"),description: qsTr("Put your files here."),target:()=>btn_upload},
{title:qsTr("Save"),description: qsTr("Save your changes."),target:()=>btn_save},
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 3d35c542..abd61f52 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -43,6 +43,21 @@ else()
set(CMAKE_AUTOUIC ON)
endif()
+#国际化
+find_program(QT_LUPDATE NAMES lupdate)
+find_program(QT_LRELEASE NAMES lrelease)
+if (NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/${PROJECT_NAME}_en_US.qm)
+ execute_process(COMMAND ${QT_LUPDATE} ${CMAKE_CURRENT_LIST_DIR} -ts ${PROJECT_NAME}_en_US.ts WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
+ execute_process(COMMAND ${QT_LRELEASE} ${PROJECT_NAME}_en_US.ts WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
+endif ()
+if (NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/${PROJECT_NAME}_zh_CN.qm)
+ execute_process(COMMAND ${QT_LUPDATE} ${CMAKE_CURRENT_LIST_DIR} -ts ${PROJECT_NAME}_zh_CN.ts WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
+ execute_process(COMMAND ${QT_LRELEASE} ${PROJECT_NAME}_zh_CN.ts WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
+endif ()
+
+file(GLOB QM_FILE_PATHS ${CMAKE_CURRENT_LIST_DIR}/ *.qm)
+file(COPY ${QM_FILE_PATHS} DESTINATION "${CMAKE_CURRENT_SOURCE_DIR}/Qt${QT_VERSION_MAJOR}/imports/FluentUI/i18n")
+
#遍历所有Cpp文件
file(GLOB_RECURSE CPP_FILES *.cpp *.h)
foreach(filepath ${CPP_FILES})
@@ -67,7 +82,7 @@ if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
endforeach(filepath)
#遍历所有资源文件
- file(GLOB_RECURSE RES_PATHS *.png *.jpg *.svg *.ico *.ttf *.webp *.js)
+ file(GLOB_RECURSE RES_PATHS *.png *.jpg *.svg *.ico *.ttf *.webp *.js *.qm)
foreach(filepath ${RES_PATHS})
if(${filepath} MATCHES "Qt${QT_VERSION_MAJOR}/")
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
diff --git a/src/FluApp.cpp b/src/FluApp.cpp
index 377b38f0..9edbae3d 100644
--- a/src/FluApp.cpp
+++ b/src/FluApp.cpp
@@ -8,6 +8,7 @@
#include
#include
#include
+#include
FluApp::FluApp(QObject *parent):QObject{parent}{
useSystemAppBar(false);
@@ -16,8 +17,18 @@ FluApp::FluApp(QObject *parent):QObject{parent}{
FluApp::~FluApp(){
}
-void FluApp::init(QObject *target){
+void FluApp::init(QObject *target,QLocale locale){
_engine = qmlEngine(target);
+ _translator = new QTranslator(this);
+ qApp->installTranslator(_translator);
+ const QStringList uiLanguages = locale.uiLanguages();
+ for (const QString &name : uiLanguages) {
+ const QString baseName = "fluentuiplugin_" + QLocale(name).name();
+ if (_translator->load(":/qt/qml/FluentUI/i18n/"+ baseName)) {
+ _engine->retranslate();
+ break;
+ }
+ }
}
void FluApp::run(){
diff --git a/src/FluApp.h b/src/FluApp.h
index cb454fd7..fffc5495 100644
--- a/src/FluApp.h
+++ b/src/FluApp.h
@@ -8,6 +8,7 @@
#include
#include
#include
+#include
#include "FluWindowRegister.h"
#include "stdafx.h"
#include "singleton.h"
@@ -32,7 +33,7 @@ public:
static FluApp *create(QQmlEngine *qmlEngine, QJSEngine *jsEngine){return getInstance();}
Q_INVOKABLE void run();
Q_INVOKABLE void navigate(const QString& route,const QJsonObject& argument = {},FluWindowRegister* windowRegister = nullptr);
- Q_INVOKABLE void init(QObject *target);
+ Q_INVOKABLE void init(QObject *target,QLocale locale = QLocale::system());
Q_INVOKABLE void exit(int retCode = 0);
Q_INVOKABLE QVariant createWindowRegister(QQuickWindow* window,const QString& path);
void addWindow(QQuickWindow* window);
@@ -40,6 +41,7 @@ public:
private:
QMap _windows;
QQmlEngine *_engine;
+ QTranslator* _translator = nullptr;
};
#endif // FLUAPP_H
diff --git a/src/FluTheme.cpp b/src/FluTheme.cpp
index 6283d5c3..065c43c1 100644
--- a/src/FluTheme.cpp
+++ b/src/FluTheme.cpp
@@ -37,9 +37,9 @@ void FluTheme::refreshColors(){
fontSecondaryColor(isDark ? QColor(222,222,222,255) : QColor(102,102,102,255));
fontTertiaryColor(isDark ? QColor(200,200,200,255) : QColor(153,153,153,255));
itemNormalColor(isDark ? QColor(255,255,255,0) : QColor(0,0,0,0));
- itemHoverColor(isDark ? QColor(255,255,255,255*0.03) : QColor(0,0,0,255*0.03));
- itemPressColor(isDark ? QColor(255,255,255,255*0.06) : QColor(0,0,0,255*0.06));
- itemCheckColor(isDark ? QColor(255,255,255,255*0.09) : QColor(0,0,0,255*0.09));
+ itemHoverColor(isDark ? QColor(255,255,255,255*0.06) : QColor(0,0,0,255*0.03));
+ itemPressColor(isDark ? QColor(255,255,255,255*0.09) : QColor(0,0,0,255*0.06));
+ itemCheckColor(isDark ? QColor(255,255,255,255*0.12) : QColor(0,0,0,255*0.09));
}
bool FluTheme::eventFilter(QObject *obj, QEvent *event){
diff --git a/src/Qt5/imports/FluentUI/Controls/FluAppBar.qml b/src/Qt5/imports/FluentUI/Controls/FluAppBar.qml
index 7bcf8e99..f3831a41 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluAppBar.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluAppBar.qml
@@ -6,14 +6,14 @@ import FluentUI 1.0
Rectangle{
property string title: ""
- property string darkText : "深色"
- property string lightText : "浅色"
- property string minimizeText : "最小化"
- property string restoreText : "向下还原"
- property string maximizeText : "最大化"
- property string closeText : "关闭"
- property string stayTopText : "置顶"
- property string stayTopCancelText : "取消置顶"
+ property string darkText : qsTr("Dark")
+ property string lightText : qsTr("Light")
+ property string minimizeText : qsTr("Minimize")
+ property string restoreText : qsTr("Restore")
+ property string maximizeText : qsTr("Maximize")
+ property string closeText : qsTr("Close")
+ property string stayTopText : qsTr("Sticky on Top")
+ property string stayTopCancelText : qsTr("Sticky on Top cancelled")
property color textColor: FluTheme.dark ? "#FFFFFF" : "#000000"
property color minimizeNormalColor: FluTheme.itemNormalColor
property color minimizeHoverColor: FluTheme.itemHoverColor
diff --git a/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml b/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml
index 5dd805d9..54ab28f5 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluAutoSuggestBox.qml
@@ -5,7 +5,7 @@ import FluentUI 1.0
FluTextBox{
property var items:[]
- property string emptyText: "没有找到结果"
+ property string emptyText: qsTr("No results found")
property int autoSuggestBoxReplacement: FluentIcons.Search
signal itemClicked(var data)
signal handleClicked
@@ -99,12 +99,12 @@ FluTextBox{
loadData()
if(d.flagVisible){
var pos = control.mapToItem(null, 0, 0)
- if(window.height>pos.y+control.height+container.implicitHeight){
+ if(d.window.height>pos.y+control.height+container.implicitHeight){
control_popup.y = control.height
} else if(pos.y>container.implicitHeight){
control_popup.y = -container.implicitHeight
} else {
- control_popup.y = window.height-(pos.y+container.implicitHeight)
+ control_popup.y = d.window.height-(pos.y+container.implicitHeight)
}
control_popup.visible = true
}
diff --git a/src/Qt5/imports/FluentUI/Controls/FluCalendarPicker.qml b/src/Qt5/imports/FluentUI/Controls/FluCalendarPicker.qml
index 69286a7c..20b30e02 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluCalendarPicker.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluCalendarPicker.qml
@@ -8,7 +8,7 @@ Rectangle {
property color dividerColor: FluTheme.dark ? Qt.rgba(77/255,77/255,77/255,1) : Qt.rgba(239/255,239/255,239/255,1)
property color hoverColor: FluTheme.dark ? Qt.rgba(68/255,68/255,68/255,1) : Qt.rgba(251/255,251/255,251/255,1)
property color normalColor: FluTheme.dark ? Qt.rgba(61/255,61/255,61/255,1) : Qt.rgba(254/255,254/255,254/255,1)
- property string text: "请选择日期"
+ property string text: qsTr("Please select a date")
property var current
signal accepted()
id:control
diff --git a/src/Qt5/imports/FluentUI/Controls/FluContentDialog.qml b/src/Qt5/imports/FluentUI/Controls/FluContentDialog.qml
index 1a49ddad..b02592f7 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluContentDialog.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluContentDialog.qml
@@ -8,9 +8,9 @@ FluPopup {
id: control
property string title: ""
property string message: ""
- property string neutralText: "Close"
- property string negativeText: "Cancel"
- property string positiveText: "OK"
+ property string neutralText: qsTr("Close")
+ property string negativeText: qsTr("Cancel")
+ property string positiveText: qsTr("OK")
property int messageTextFormart: Text.AutoText
property int delayTime: 100
property int buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
diff --git a/src/Qt5/imports/FluentUI/Controls/FluDatePicker.qml b/src/Qt5/imports/FluentUI/Controls/FluDatePicker.qml
index ecf94810..8522baf5 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluDatePicker.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluDatePicker.qml
@@ -10,11 +10,11 @@ Rectangle {
property color normalColor: FluTheme.dark ? Qt.rgba(61/255,61/255,61/255,1) : Qt.rgba(254/255,254/255,254/255,1)
property bool showYear: true
property var current
- property string yearText: "年"
- property string monthText: "月"
- property string dayText: "日"
- property string cancelText: "取消"
- property string okText: "确定"
+ property string yearText: qsTr("Year")
+ property string monthText: qsTr("Month")
+ property string dayText: qsTr("Day")
+ property string cancelText: qsTr("Cancel")
+ property string okText: qsTr("OK")
signal accepted()
id:control
color: {
diff --git a/src/Qt5/imports/FluentUI/Controls/FluImage.qml b/src/Qt5/imports/FluentUI/Controls/FluImage.qml
index 964cd102..ca9ad8be 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluImage.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluImage.qml
@@ -3,7 +3,7 @@ import QtQuick.Controls 2.15
import FluentUI 1.0
Image {
- property string errorButtonText: "重新加载"
+ property string errorButtonText: qsTr("Reload")
property var clickErrorListener : function(){
image.source = ""
image.source = control.source
diff --git a/src/Qt5/imports/FluentUI/Controls/FluPagination.qml b/src/Qt5/imports/FluentUI/Controls/FluPagination.qml
index b7391ee6..a5a155a8 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluPagination.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluPagination.qml
@@ -5,8 +5,8 @@ import FluentUI 1.0
Item {
signal requestPage(int page,int count)
- property string previousText: "<上一页"
- property string nextText: "下一页>"
+ property string previousText: qsTr("")
property int pageCurrent: 0
property int itemCount: 0
property int pageButtonCount: 5
diff --git a/src/Qt5/imports/FluentUI/Controls/FluShortcutPicker.qml b/src/Qt5/imports/FluentUI/Controls/FluShortcutPicker.qml
index 9aad3a2b..98272d75 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluShortcutPicker.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluShortcutPicker.qml
@@ -5,11 +5,11 @@ import FluentUI 1.0
FluIconButton {
id:control
property var current : ["Ctrl","Shift","A"]
- property string title: "激活快捷键"
- property string message: "按下组合键以更改此快捷键"
- property string positiveText: "保存"
- property string neutralText: "取消"
- property string negativeText: "重置"
+ property string title: qsTr("Activate the Shortcut")
+ property string message: qsTr("Press the key combination to change the shortcut")
+ property string positiveText: qsTr("Save")
+ property string neutralText: qsTr("Cancel")
+ property string negativeText: qsTr("Reset")
signal accepted()
QtObject{
id: d
diff --git a/src/Qt5/imports/FluentUI/Controls/FluTextBoxMenu.qml b/src/Qt5/imports/FluentUI/Controls/FluTextBoxMenu.qml
index 9a6d1f8e..7921222e 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluTextBoxMenu.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluTextBoxMenu.qml
@@ -3,10 +3,10 @@ import QtQuick.Controls 2.15
import FluentUI 1.0
FluMenu{
- property string cutText : "剪切"
- property string copyText : "复制"
- property string pasteText : "粘贴"
- property string selectAllText : "全选"
+ property string cutText : qsTr("Cut")
+ property string copyText : qsTr("Copy")
+ property string pasteText : qsTr("Paste")
+ property string selectAllText : qsTr("Select All")
property var inputItem
id:menu
enableAnimation: false
diff --git a/src/Qt5/imports/FluentUI/Controls/FluTour.qml b/src/Qt5/imports/FluentUI/Controls/FluTour.qml
index f0197ac0..1eeef797 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluTour.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluTour.qml
@@ -10,9 +10,9 @@ Popup{
property Component nextButton: com_next_button
property Component prevButton: com_prev_button
property int index : 0
- property string finishText: "结束导览"
- property string nextText: "下一步"
- property string previousText: "上一步"
+ property string finishText: qsTr("Finish")
+ property string nextText: qsTr("Next")
+ property string previousText: qsTr("Previous")
id:control
padding: 0
parent: Overlay.overlay
diff --git a/src/Qt5/imports/FluentUI/Controls/FluWindow.qml b/src/Qt5/imports/FluentUI/Controls/FluWindow.qml
index 45ace81d..bf8b26dc 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluWindow.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluWindow.qml
@@ -243,7 +243,7 @@ Window {
anchors.fill: parent
}
FluInfoBar{
- id:infoBar
+ id:info_bar
root: window
}
FluWindowLifecycle{
@@ -268,7 +268,7 @@ Window {
function destoryOnClose(){
lifecycle.onDestoryOnClose()
}
- function showLoading(text = "加载中...",cancel = true){
+ function showLoading(text = qsTr("Loading..."),cancel = true){
loader_loading.loadingText = text
loader_loading.cancel = cancel
loader_loading.sourceComponent = com_loading
@@ -277,16 +277,16 @@ Window {
loader_loading.sourceComponent = undefined
}
function showSuccess(text,duration,moremsg){
- infoBar.showSuccess(text,duration,moremsg)
+ info_bar.showSuccess(text,duration,moremsg)
}
function showInfo(text,duration,moremsg){
- infoBar.showInfo(text,duration,moremsg)
+ info_bar.showInfo(text,duration,moremsg)
}
function showWarning(text,duration,moremsg){
- infoBar.showWarning(text,duration,moremsg)
+ info_bar.showWarning(text,duration,moremsg)
}
function showError(text,duration,moremsg){
- infoBar.showError(text,duration,moremsg)
+ info_bar.showError(text,duration,moremsg)
}
function moveWindowToDesktopCenter(){
screen = Qt.application.screens[FluTools.cursorScreenIndex()]
diff --git a/src/Qt5/imports/FluentUI/qmldir b/src/Qt5/imports/FluentUI/qmldir
index f57747a6..0c9327da 100644
--- a/src/Qt5/imports/FluentUI/qmldir
+++ b/src/Qt5/imports/FluentUI/qmldir
@@ -3,12 +3,6 @@ classname FluentUIPlugin
designersupported
typeinfo plugins.qmltypes
-ColorPicker 1.0 Controls/ColorPicker/ColorPicker.qml
-Checkerboard 1.0 Controls/ColorPicker/Content/Checkerboard.qml
-ColorSlider 1.0 Controls/ColorPicker/Content/ColorSlider.qml
-NumberBox 1.0 Controls/ColorPicker/Content/NumberBox.qml
-PanelBorder 1.0 Controls/ColorPicker/Content/PanelBorder.qml
-SBPicker 1.0 Controls/ColorPicker/Content/SBPicker.qml
FluAcrylic 1.0 Controls/FluAcrylic.qml
FluAppBar 1.0 Controls/FluAppBar.qml
FluArea 1.0 Controls/FluArea.qml
@@ -21,8 +15,8 @@ FluCalendarView 1.0 Controls/FluCalendarView.qml
FluCarousel 1.0 Controls/FluCarousel.qml
FluChart 1.0 Controls/FluChart.qml
FluCheckBox 1.0 Controls/FluCheckBox.qml
+FluClip 1.0 Controls/FluClip.qml
FluColorPicker 1.0 Controls/FluColorPicker.qml
-FluColorView 1.0 Controls/FluColorView.qml
FluComboBox 1.0 Controls/FluComboBox.qml
FluContentDialog 1.0 Controls/FluContentDialog.qml
FluContentPage 1.0 Controls/FluContentPage.qml
@@ -38,8 +32,11 @@ FluFocusRectangle 1.0 Controls/FluFocusRectangle.qml
FluIcon 1.0 Controls/FluIcon.qml
FluIconButton 1.0 Controls/FluIconButton.qml
FluImage 1.0 Controls/FluImage.qml
+FluImageButton 1.0 Controls/FluImageButton.qml
FluInfoBar 1.0 Controls/FluInfoBar.qml
FluItemDelegate 1.0 Controls/FluItemDelegate.qml
+FluLoader 1.0 Controls/FluLoader.qml
+FluLoadingButton 1.0 Controls/FluLoadingButton.qml
FluMenu 1.0 Controls/FluMenu.qml
FluMenuBar 1.0 Controls/FluMenuBar.qml
FluMenuBarItem 1.0 Controls/FluMenuBarItem.qml
@@ -60,20 +57,24 @@ FluPivot 1.0 Controls/FluPivot.qml
FluPivotItem 1.0 Controls/FluPivotItem.qml
FluPopup 1.0 Controls/FluPopup.qml
FluProgressBar 1.0 Controls/FluProgressBar.qml
+FluProgressButton 1.0 Controls/FluProgressButton.qml
FluProgressRing 1.0 Controls/FluProgressRing.qml
FluQRCode 1.0 Controls/FluQRCode.qml
FluRadioButton 1.0 Controls/FluRadioButton.qml
FluRadioButtons 1.0 Controls/FluRadioButtons.qml
+FluRangeSlider 1.0 Controls/FluRangeSlider.qml
FluRatingControl 1.0 Controls/FluRatingControl.qml
FluRemoteLoader 1.0 Controls/FluRemoteLoader.qml
-FluScreenshot 1.0 Controls/FluScreenshot.qml
FluScrollBar 1.0 Controls/FluScrollBar.qml
FluScrollIndicator 1.0 Controls/FluScrollIndicator.qml
FluScrollablePage 1.0 Controls/FluScrollablePage.qml
FluShadow 1.0 Controls/FluShadow.qml
+FluShortcutPicker 1.0 Controls/FluShortcutPicker.qml
FluSlider 1.0 Controls/FluSlider.qml
FluSpinBox 1.0 Controls/FluSpinBox.qml
-FluStatusView 1.0 Controls/FluStatusView.qml
+FluSplitLayout 1.0 Controls/FluSplitLayout.qml
+FluStaggeredLayout 1.0 Controls/FluStaggeredLayout.qml
+FluStatusLayout 1.0 Controls/FluStatusLayout.qml
FluTabView 1.0 Controls/FluTabView.qml
FluTableView 1.0 Controls/FluTableView.qml
FluText 1.0 Controls/FluText.qml
@@ -89,13 +90,5 @@ FluTooltip 1.0 Controls/FluTooltip.qml
FluTour 1.0 Controls/FluTour.qml
FluTreeView 1.0 Controls/FluTreeView.qml
FluWindow 1.0 Controls/FluWindow.qml
-FluRangeSlider 1.0 Controls/FluRangeSlider.qml
-FluStaggeredView 1.0 Controls/FluStaggeredView.qml
-FluProgressButton 1.0 Controls/FluProgressButton.qml
-FluLoadingButton 1.0 Controls/FluLoadingButton.qml
-FluClip 1.0 Controls/FluClip.qml
-FluLoader 1.0 Controls/FluLoader.qml
-FluShortcutPicker 1.0 Controls/FluShortcutPicker.qml
-FluSplitLayout 1.0 Controls/FluSplitLayout.qml
-FluStaggeredLayout 1.0 Controls/FluStaggeredLayout.qml
+
plugin fluentuiplugin
diff --git a/src/Qt5/imports/fluentui.qrc b/src/Qt5/imports/fluentui.qrc
index 0b3d66e4..356791ef 100644
--- a/src/Qt5/imports/fluentui.qrc
+++ b/src/Qt5/imports/fluentui.qrc
@@ -99,5 +99,7 @@
FluentUI/Image/btn_min_pushed.png
FluentUI/Controls/FluImageButton.qml
FluentUI/Controls/FluSplitLayout.qml
+ FluentUI/i18n/fluentuiplugin_en_US.qm
+ FluentUI/i18n/fluentuiplugin_zh_CN.qm
diff --git a/src/Qt6/imports/FluentUI/Controls/FluAppBar.qml b/src/Qt6/imports/FluentUI/Controls/FluAppBar.qml
index 818af87f..c181af20 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluAppBar.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluAppBar.qml
@@ -6,14 +6,14 @@ import FluentUI
Rectangle{
property string title: ""
- property string darkText : "深色"
- property string lightText : "浅色"
- property string minimizeText : "最小化"
- property string restoreText : "向下还原"
- property string maximizeText : "最大化"
- property string closeText : "关闭"
- property string stayTopText : "置顶"
- property string stayTopCancelText : "取消置顶"
+ property string darkText : qsTr("Dark")
+ property string lightText : qsTr("Light")
+ property string minimizeText : qsTr("Minimize")
+ property string restoreText : qsTr("Restore")
+ property string maximizeText : qsTr("Maximize")
+ property string closeText : qsTr("Close")
+ property string stayTopText : qsTr("Sticky on Top")
+ property string stayTopCancelText : qsTr("Sticky on Top cancelled")
property color textColor: FluTheme.dark ? "#FFFFFF" : "#000000"
property color minimizeNormalColor: FluTheme.itemNormalColor
property color minimizeHoverColor: FluTheme.itemHoverColor
diff --git a/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml b/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml
index fa1195ec..6d089c69 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluAutoSuggestBox.qml
@@ -4,18 +4,18 @@ import FluentUI
FluTextBox{
property var items:[]
- property string emptyText: "没有找到结果"
+ property string emptyText: qsTr("No results found")
property int autoSuggestBoxReplacement: FluentIcons.Search
- property var window : Window.window
signal itemClicked(var data)
signal handleClicked
id:control
Component.onCompleted: {
loadData()
}
- QtObject{
+ Item{
id:d
property bool flagVisible: true
+ property var window : Window.window
}
onActiveFocusChanged: {
if(!activeFocus){
@@ -98,12 +98,12 @@ FluTextBox{
loadData()
if(d.flagVisible){
var pos = control.mapToItem(null, 0, 0)
- if(window.height>pos.y+control.height+container.implicitHeight){
+ if(d.window.height>pos.y+control.height+container.implicitHeight){
control_popup.y = control.height
} else if(pos.y>container.implicitHeight){
control_popup.y = -container.implicitHeight
} else {
- control_popup.y = window.height-(pos.y+container.implicitHeight)
+ control_popup.y = d.window.height-(pos.y+container.implicitHeight)
}
control_popup.visible = true
}
diff --git a/src/Qt6/imports/FluentUI/Controls/FluCalendarPicker.qml b/src/Qt6/imports/FluentUI/Controls/FluCalendarPicker.qml
index c8ad5e24..0a57c66b 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluCalendarPicker.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluCalendarPicker.qml
@@ -8,7 +8,7 @@ Rectangle {
property color dividerColor: FluTheme.dark ? Qt.rgba(77/255,77/255,77/255,1) : Qt.rgba(239/255,239/255,239/255,1)
property color hoverColor: FluTheme.dark ? Qt.rgba(68/255,68/255,68/255,1) : Qt.rgba(251/255,251/255,251/255,1)
property color normalColor: FluTheme.dark ? Qt.rgba(61/255,61/255,61/255,1) : Qt.rgba(254/255,254/255,254/255,1)
- property string text: "请选择日期"
+ property string text: qsTr("Please select a date")
property var current
signal accepted()
id:control
diff --git a/src/Qt6/imports/FluentUI/Controls/FluContentDialog.qml b/src/Qt6/imports/FluentUI/Controls/FluContentDialog.qml
index 0ca3b277..6c4ae127 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluContentDialog.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluContentDialog.qml
@@ -8,9 +8,9 @@ FluPopup {
id: control
property string title: ""
property string message: ""
- property string neutralText: "Close"
- property string negativeText: "Cancel"
- property string positiveText: "OK"
+ property string neutralText: qsTr("Close")
+ property string negativeText: qsTr("Cancel")
+ property string positiveText: qsTr("OK")
property int messageTextFormart: Text.AutoText
property int delayTime: 100
property int buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
diff --git a/src/Qt6/imports/FluentUI/Controls/FluDatePicker.qml b/src/Qt6/imports/FluentUI/Controls/FluDatePicker.qml
index 3271dddf..abfcf47d 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluDatePicker.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluDatePicker.qml
@@ -10,11 +10,11 @@ Rectangle {
property color normalColor: FluTheme.dark ? Qt.rgba(61/255,61/255,61/255,1) : Qt.rgba(254/255,254/255,254/255,1)
property bool showYear: true
property var current
- property string yearText: "年"
- property string monthText: "月"
- property string dayText: "日"
- property string cancelText: "取消"
- property string okText: "确定"
+ property string yearText: qsTr("Year")
+ property string monthText: qsTr("Month")
+ property string dayText: qsTr("Day")
+ property string cancelText: qsTr("Cancel")
+ property string okText: qsTr("OK")
signal accepted()
id:control
color: {
diff --git a/src/Qt6/imports/FluentUI/Controls/FluImage.qml b/src/Qt6/imports/FluentUI/Controls/FluImage.qml
index 09ecdf95..dcdc3fc1 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluImage.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluImage.qml
@@ -3,7 +3,7 @@ import QtQuick.Controls
import FluentUI
Image {
- property string errorButtonText: "重新加载"
+ property string errorButtonText: qsTr("Reload")
property var clickErrorListener : function(){
image.source = ""
image.source = control.source
diff --git a/src/Qt6/imports/FluentUI/Controls/FluPagination.qml b/src/Qt6/imports/FluentUI/Controls/FluPagination.qml
index 188b0932..37f6807d 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluPagination.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluPagination.qml
@@ -5,8 +5,8 @@ import FluentUI
Item {
signal requestPage(int page,int count)
- property string previousText: "<上一页"
- property string nextText: "下一页>"
+ property string previousText: qsTr("")
property int pageCurrent: 0
property int itemCount: 0
property int pageButtonCount: 5
diff --git a/src/Qt6/imports/FluentUI/Controls/FluShortcutPicker.qml b/src/Qt6/imports/FluentUI/Controls/FluShortcutPicker.qml
index 51b17b6c..f3a592b8 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluShortcutPicker.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluShortcutPicker.qml
@@ -5,11 +5,11 @@ import FluentUI
FluIconButton {
id:control
property var current : ["Ctrl","Shift","A"]
- property string title: "激活快捷键"
- property string message: "按下组合键以更改此快捷键"
- property string positiveText: "保存"
- property string neutralText: "取消"
- property string negativeText: "重置"
+ property string title: qsTr("Activate the Shortcut")
+ property string message: qsTr("Press the key combination to change the shortcut")
+ property string positiveText: qsTr("Save")
+ property string neutralText: qsTr("Cancel")
+ property string negativeText: qsTr("Reset")
signal accepted()
QtObject{
id: d
diff --git a/src/Qt6/imports/FluentUI/Controls/FluTextBoxMenu.qml b/src/Qt6/imports/FluentUI/Controls/FluTextBoxMenu.qml
index 084bc3cc..3be0c1b2 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluTextBoxMenu.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluTextBoxMenu.qml
@@ -3,10 +3,10 @@ import QtQuick.Controls
import FluentUI
FluMenu{
- property string cutText : "剪切"
- property string copyText : "复制"
- property string pasteText : "粘贴"
- property string selectAllText : "全选"
+ property string cutText : qsTr("Cut")
+ property string copyText : qsTr("Copy")
+ property string pasteText : qsTr("Paste")
+ property string selectAllText : qsTr("Select All")
property var inputItem
id:menu
enableAnimation: false
diff --git a/src/Qt6/imports/FluentUI/Controls/FluTour.qml b/src/Qt6/imports/FluentUI/Controls/FluTour.qml
index b50b7348..6de19876 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluTour.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluTour.qml
@@ -10,9 +10,9 @@ Popup{
property Component nextButton: com_next_button
property Component prevButton: com_prev_button
property int index : 0
- property string finishText: "结束导览"
- property string nextText: "下一步"
- property string previousText: "上一步"
+ property string finishText: qsTr("Finish")
+ property string nextText: qsTr("Next")
+ property string previousText: qsTr("Previous")
id:control
padding: 0
parent: Overlay.overlay
diff --git a/src/Qt6/imports/FluentUI/Controls/FluWindow.qml b/src/Qt6/imports/FluentUI/Controls/FluWindow.qml
index c18aea6b..3e0bfd08 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluWindow.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluWindow.qml
@@ -242,7 +242,7 @@ Window {
anchors.fill: parent
}
FluInfoBar{
- id:infoBar
+ id:info_bar
root: window
}
FluWindowLifecycle{
@@ -267,7 +267,7 @@ Window {
function destoryOnClose(){
lifecycle.onDestoryOnClose()
}
- function showLoading(text = "加载中...",cancel = true){
+ function showLoading(text = qsTr("Loading..."),cancel = true){
loader_loading.loadingText = text
loader_loading.cancel = cancel
loader_loading.sourceComponent = com_loading
@@ -276,16 +276,16 @@ Window {
loader_loading.sourceComponent = undefined
}
function showSuccess(text,duration,moremsg){
- infoBar.showSuccess(text,duration,moremsg)
+ info_bar.showSuccess(text,duration,moremsg)
}
function showInfo(text,duration,moremsg){
- infoBar.showInfo(text,duration,moremsg)
+ info_bar.showInfo(text,duration,moremsg)
}
function showWarning(text,duration,moremsg){
- infoBar.showWarning(text,duration,moremsg)
+ info_bar.showWarning(text,duration,moremsg)
}
function showError(text,duration,moremsg){
- infoBar.showError(text,duration,moremsg)
+ info_bar.showError(text,duration,moremsg)
}
function moveWindowToDesktopCenter(){
screen = Qt.application.screens[FluTools.cursorScreenIndex()]
diff --git a/src/fluentuiplugin_en_US.ts b/src/fluentuiplugin_en_US.ts
new file mode 100644
index 00000000..3452860e
--- /dev/null
+++ b/src/fluentuiplugin_en_US.ts
@@ -0,0 +1,241 @@
+
+
+
+
+ FluAppBar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FluAutoSuggestBox
+
+
+
+
+
+
+
+
+ FluCalendarPicker
+
+
+
+
+
+
+
+
+ FluContentDialog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FluDatePicker
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FluImage
+
+
+
+
+
+
+
+
+ FluPagination
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FluShortcutPicker
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FluTextBoxMenu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FluTour
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FluWindow
+
+
+
+
+
+
+
+
diff --git a/src/fluentuiplugin_zh_CN.ts b/src/fluentuiplugin_zh_CN.ts
new file mode 100644
index 00000000..de8599be
--- /dev/null
+++ b/src/fluentuiplugin_zh_CN.ts
@@ -0,0 +1,241 @@
+
+
+
+
+ FluAppBar
+
+
+
+
+ 深色
+
+
+
+
+
+ 浅色
+
+
+
+
+
+ 最小化
+
+
+
+
+
+ 还原
+
+
+
+
+
+ 最大化
+
+
+
+
+
+ 关闭
+
+
+
+
+
+ 置顶
+
+
+
+
+
+ 取消置顶
+
+
+
+ FluAutoSuggestBox
+
+
+
+
+ 未找到结果
+
+
+
+ FluCalendarPicker
+
+
+
+
+ 请选择日期
+
+
+
+ FluContentDialog
+
+
+
+
+ 关闭
+
+
+
+
+
+ 取消
+
+
+
+
+
+ 确定
+
+
+
+ FluDatePicker
+
+
+
+
+ 年
+
+
+
+
+
+ 月
+
+
+
+
+
+ 日
+
+
+
+
+
+ 取消
+
+
+
+
+
+ 确定
+
+
+
+ FluImage
+
+
+
+
+ 重新加载
+
+
+
+ FluPagination
+
+
+
+
+ <上一页
+
+
+
+
+
+ 下一页>
+
+
+
+ FluShortcutPicker
+
+
+
+
+ 激活快捷键
+
+
+
+
+
+ 按下组合键以更改此快捷键
+
+
+
+
+
+ 保存
+
+
+
+
+
+ 取消
+
+
+
+
+
+ 重置
+
+
+
+ FluTextBoxMenu
+
+
+
+
+ 剪切
+
+
+
+
+
+ 复制
+
+
+
+
+
+ 粘贴
+
+
+
+
+
+ 全选
+
+
+
+ FluTour
+
+
+
+
+ 结束导览
+
+
+
+
+
+ 下一步
+
+
+
+
+
+ 上一步
+
+
+
+ FluWindow
+
+
+
+
+ 加载中...
+
+
+