mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00

- Dropped the protobuf extensions in favor of explicitly listing out methods in both services if we want to implement both, as it's clearer. - Move Service/Method wrappers into a separate crate that the various clients can import, to easily get at the list of backend services and their correct indices and comments.
52 lines
1.2 KiB
Protocol Buffer
52 lines
1.2 KiB
Protocol Buffer
// Copyright: Ankitects Pty Ltd and contributors
|
|
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
syntax = "proto3";
|
|
|
|
option java_multiple_files = true;
|
|
|
|
package anki.i18n;
|
|
|
|
import "anki/generic.proto";
|
|
|
|
service I18nService {
|
|
rpc TranslateString(TranslateStringRequest) returns (generic.String);
|
|
rpc FormatTimespan(FormatTimespanRequest) returns (generic.String);
|
|
rpc I18nResources(I18nResourcesRequest) returns (generic.Json);
|
|
}
|
|
|
|
// Implicitly includes any of the above methods that are not listed in the
|
|
// backend service.
|
|
service BackendI18nService {
|
|
rpc TranslateString(TranslateStringRequest) returns (generic.String);
|
|
rpc FormatTimespan(FormatTimespanRequest) returns (generic.String);
|
|
rpc I18nResources(I18nResourcesRequest) returns (generic.Json);
|
|
}
|
|
|
|
message TranslateStringRequest {
|
|
uint32 module_index = 1;
|
|
uint32 message_index = 2;
|
|
map<string, TranslateArgValue> args = 3;
|
|
}
|
|
|
|
message TranslateArgValue {
|
|
oneof value {
|
|
string str = 1;
|
|
double number = 2;
|
|
}
|
|
}
|
|
|
|
message FormatTimespanRequest {
|
|
enum Context {
|
|
PRECISE = 0;
|
|
ANSWER_BUTTONS = 1;
|
|
INTERVALS = 2;
|
|
}
|
|
|
|
float seconds = 1;
|
|
Context context = 2;
|
|
}
|
|
|
|
message I18nResourcesRequest {
|
|
repeated string modules = 1;
|
|
}
|