This commit is contained in:
13038267101 2023-01-18 18:04:22 +08:00
commit 507d7538bd
2 changed files with 1 additions and 78 deletions

View File

@ -1,6 +1,6 @@
#pragma once
#include "app_language.h"
#include "lang/app_language.h"
#if defined(_WIN32) || defined(_WIN64)
#define PATH_SEPERATOR "\\"

View File

@ -1,77 +0,0 @@
#pragma once
#if defined(_WIN32) || defined(_WIN64)
#include <Windows.h>
#ifndef uint32_t
typedef unsigned int uint32_t;
#endif
#ifndef LANG_EXPORT
#ifdef _DEBUG
#pragma comment(lib, "Debug/lang.lib")
#else
#pragma comment(lib, "Release/lang.lib")
#endif
#endif
#endif
// purpose: APP language utility
//
// Date: 2023-01-16
//
// Implement: 语言包封装为独立的模块,提供以下API供程序调用
//
// 所需语言包按代码页区分为独立的文件安装时部署在安装目录下的“lang”子目录下扩展名为“.pak”
extern "C"
{
#pragma pack(push)
#pragma pack(1)
typedef struct _lan_attr
{
int cp; // code page
uint32_t id; // 语言名称全局唯一ID
char *name; // 以当前语言环境显示的名称UTF-8
}LANATTR;
#pragma pack(pop)
// Function: 初始化语言包
//
// Parameter: param - 保留供后期扩展
//
// Return: 返回当前应用的语言包代码页,-1为语言包文件丢失需要提醒用户程序文件损坏并退出
extern int lang_initialize(void* param = nullptr);
// Function: 获取APP当前支持的所有语言包
//
// Parameter: 无
//
// Return: LANATTR指针数组pptr直到pptr[]为nullptr为止
extern LANATTR** lang_get_supported_languages(void);
// Function: 获取APP当前语言包/代码页
//
// Parameter: 无
//
// Return: 代码页
extern int lang_get_cur_code_page(void);
// Function: 设置APP语言包/代码页APP运行时会自动选定当前代码页无特殊需要不需要专门调用
//
// Parameter: cp - 代码页若为“0”则自动匹配系统当前代码页
//
// Return: 0 - 成功
// ENOENT - APP不支持该代码页
extern int lang_set_code_page(int cp = 0);
// Function: 加载当前代码页的字符串资源 UTF-8
//
// Parameters: id - 字符串ID全局唯一
//
// err - 获取id对应的字符串错误码
// 0 - 成功
// ENOENT - 所需ID资源在当前代码页中没找到
//
// Return: 对应的字符串指针如果失败返回长度为0的空字符串 ""。调用者不用释放返回指针,但也不要改动该指针内容
extern const char* lang_load_string(uint32_t id, int* err);
}