13
13
#include < opencc/Dict.hpp>
14
14
#include < opencc/DictEntry.hpp>
15
15
#include < opencc/Common.hpp>
16
- #include < rime_api.h>
17
16
#include < rime/common.h>
17
+ #include < rime/service.h>
18
18
19
19
#include " lib/lua_export_type.h"
20
20
#include " optional.h"
@@ -28,8 +28,8 @@ namespace {
28
28
29
29
class Opencc {
30
30
public:
31
- // static shared_ptr<Opencc> create(const string &config_path);
32
- Opencc (const string & config_path);
31
+ // static shared_ptr<Opencc> create(const path &config_path);
32
+ Opencc (const path & config_path);
33
33
bool ConvertWord (const string& text, vector<string>* forms);
34
34
bool RandomConvertText (const string& text, string* simplified);
35
35
bool ConvertText (const string& text, string* simplified);
@@ -43,9 +43,10 @@ class Opencc {
43
43
opencc::DictPtr dict_;
44
44
};
45
45
46
- Opencc::Opencc (const string & config_path) {
46
+ Opencc::Opencc (const path & config_path) {
47
47
opencc::Config config;
48
- converter_ = config.NewFromFile (config_path);
48
+ // OpenCC accepts UTF-8 encoded path.
49
+ converter_ = config.NewFromFile (config_path.u8string ());
49
50
const list<opencc::ConversionPtr> conversions =
50
51
converter_->GetConversionChain ()->GetConversions ();
51
52
dict_ = conversions.front ()->GetDict ();
@@ -116,14 +117,14 @@ namespace OpenccReg {
116
117
using T = Opencc;
117
118
118
119
optional<T> make (const string &filename) {
119
- string user_path ( RimeGetUserDataDir ()) ;
120
- string shared_path ( RimeGetSharedDataDir ()) ;
120
+ path user_path = Service::instance (). deployer (). user_data_dir ;
121
+ path shared_path = Service::instance (). deployer (). shared_data_dir ;
121
122
try {
122
- return T (user_path + " / opencc/ " + filename);
123
+ return T (user_path / " opencc" / filename);
123
124
}
124
125
catch (...) {
125
126
try {
126
- return T (shared_path + " / opencc/ " + filename);
127
+ return T (shared_path / " opencc" / filename);
127
128
}
128
129
catch (...) {
129
130
LOG (ERROR) << " [" << user_path << " |" << shared_path << " ]/opencc/"
0 commit comments