DuytsDoc now used generic locale

This commit is contained in:
Willem Cazander 2022-10-31 00:32:01 +01:00
parent efc56a04c9
commit bd01bddbcf
17 changed files with 126 additions and 126 deletions

View file

@ -12,7 +12,6 @@ import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnDuytsFlüstern注;
import love.distributedrebirth.bassboon.clazz.BãßBȍőnExport注; import love.distributedrebirth.bassboon.clazz.BãßBȍőnExport注;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿª;
import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ; import love.distributedrebirth.bassboon.clazz.pirate.BãßBȍőnꝐŕḯṿªḕ響ᴼᶠ;
@ -29,19 +28,26 @@ import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ObjectScopeLimitΔ邪ᙾ;
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.Runnableբ; import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.Runnableբ;
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.BabelLocalizer邪ᙾ; import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.BabelLocalizer邪ᙾ;
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocConstructor注;
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocMethod注;
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocType注;
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDoc注;
import ᴶᐩᐩ.ᔿᐤᑊᐣ.ᒢᔿᕽ.CounterGuageᴶᴹˣ; import ᴶᐩᐩ.ᔿᐤᑊᐣ.ᒢᔿᕽ.CounterGuageᴶᴹˣ;
import ᴶᐩᐩ.ᔿᐤᑊᐣ.ᣔᒃᣔᒼᓑᔆ.BãßBȍőnAbacusInstanceMBeanʸᴰ; import ᴶᐩᐩ.ᔿᐤᑊᐣ.ᣔᒃᣔᒼᓑᔆ.BãßBȍőnAbacusInstanceMBeanʸᴰ;
/**
* Runtime for static bass noise .
*/
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@DuytsDocType注(babel = {
@DuytsDoc注(locale= "en", purpose = "Runtime for static bass noise ௸.."),
@DuytsDoc注(locale= "zh", code = "低音", purpose = "來自天堂的靜態低音噪音的運行時間"),
@DuytsDoc注(locale= "hi", code = "बास", purpose = "स्वर्ग से स्थिर बास शोर के लिए रनटाइम")
})
public interface Bãß { public interface Bãß {
/** @DuytsDocType注(babel = {
* Sarcophagus aggregates Y-Dimensions. @DuytsDoc注(locale= "en", code = "lijkenkistʸᴰ", purpose = "Sarcophagus aggregates Y-Dimensions"),
*/ @DuytsDoc注(locale= "zh", purpose = "石棺聚合多個維度"),
@BãßBȍőnDuytsFlüstern注(purpose = "Framework startup.") @DuytsDoc注(locale= "hi", code = "पत्थरꣻकीꣻबनीꣻहुईꣻकब्रʸᴰ", purpose = "सरकोफैगस कई आयामों को एकत्रित करता है")
})
@BãßBȍőnExport注(group = "love.distributedrebirth.bassboon") @BãßBȍőnExport注(group = "love.distributedrebirth.bassboon")
static enum 石棺ʸᴰ implements BãßBȍőnAbacusInstanceMBeanʸᴰ<石棺ʸᴰ> { static enum 石棺ʸᴰ implements BãßBȍőnAbacusInstanceMBeanʸᴰ<石棺ʸᴰ> {
أَكْبَرײꣻײالله; أَكْبَرײꣻײالله;
@ -69,41 +75,51 @@ public interface Bãß {
Bãß.石棺ʸᴰ.أَكْبَرײꣻײالله.Г̄Ѫӏ = () -> boonCntInit.increment(); Bãß.石棺ʸᴰ.أَكْبَرײꣻײالله.Г̄Ѫӏ = () -> boonCntInit.increment();
}; };
/** @DuytsDocConstructor注(babel = {
* Sarcophagus is closed for humans. @DuytsDoc注(locale= "en", purpose = "Sarcophagus is closed for humans"),
*/ @DuytsDoc注(locale= "zh", purpose = "石棺對人類關閉"),
@DuytsDoc注(locale= "hi", purpose = "सरकोफैगस इंसानों के लिए बंद है")
})
private 石棺ʸᴰ() { private 石棺ʸᴰ() {
Bãß.характеристики.熱蘭遮城.יזזןיזךױױזזױ = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.CHAR_ATARI > Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO; Bãß.характеристики.熱蘭遮城.יזזןיזךױױזזױ = Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.CHAR_ATARI > Bãß.ℭỗᶇṧⱦᶏꬼȶʂ.INT_ZERO;
} }
/** @DuytsDocMethod注(babel = {
* ...........Init @DuytsDoc注(locale= "en", code = "boonInit", purpose = "RÅ...........Init"),
*/ @DuytsDoc注(locale= "zh", code = "恩惠初始化", purpose = "拉布恩飛行"),
@DuytsDoc注(locale= "hi", code = "बूनꣻस्टार्ट", purpose = "रा बून फ्लाइंग")
})
public <T extends BãßBȍőnʸᴰ<T>> void 𓂀ױןייזדזיודזיןןזזזןױ𓉢(BãßBȍőnʸᴰ<T> derKnochen) { public <T extends BãßBȍőnʸᴰ<T>> void 𓂀ױןייזדזיודזיןןזזזןױ𓉢(BãßBȍőnʸᴰ<T> derKnochen) {
//boonCntInit.increment(); //boonCntInit.increment();
Г̄Ѫӏ.ड़न(); Г̄Ѫӏ.ड़न();
挖ᵀᵒ(derKnochen).init(derKnochen); 挖ᵀᵒ(derKnochen).init(derKnochen);
} }
/** @DuytsDocMethod注(babel = {
* Grave Lock @DuytsDoc注(locale= "en", code = "lockGrave", purpose = "Closes the coffin so no new ghosts can enter"),
*/ @DuytsDoc注(locale= "zh", code = "墳墓鎖", purpose = "關上棺材,讓新的鬼魂無法進入"),
@DuytsDoc注(locale= "hi", code = "कब्रꣻकाꣻताला", purpose = "ताबूत को बंद कर देता है ताकि कोई नया भूत प्रवेश न कर सके")
})
public <T extends BãßBȍőnʸᴰ<T>> void 墳ᴸᵒᶜᵏ(BãßBȍőnʸᴰ<T> derKnochen) { public <T extends BãßBȍőnʸᴰ<T>> void 墳ᴸᵒᶜᵏ(BãßBȍőnʸᴰ<T> derKnochen) {
boonCntLock.increment(); boonCntLock.increment();
挖ᵀᵒ(derKnochen).lock(derKnochen); 挖ᵀᵒ(derKnochen).lock(derKnochen);
} }
/** @DuytsDocMethod注(babel = {
* Spider Embryo Add @DuytsDoc注(locale= "en", code = "spiderEmbryoAdd", purpose = "Injection of external spider sperm to mix the dead bones"),
*/ @DuytsDoc注(locale= "zh", code = "蜘蛛胚胎添加", purpose = "注射外部蜘蛛精混合死骨"),
@DuytsDoc注(locale= "hi", code = "मकड़ीꣻभ्रूणꣻजोड़ें", purpose = "मृत हड्डियों को मिलाने के लिए बाहरी मकड़ी के शुक्राणु का इंजेक्शन")
})
public void 蜘蛛胚ᴬᵈᵈ(BãßBȍőnSpiderSperm spinneSperma) { public void 蜘蛛胚ᴬᵈᵈ(BãßBȍőnSpiderSperm spinneSperma) {
bassCntSpiderEmbryos.increment(); bassCntSpiderEmbryos.increment();
സ്പഡർബ.add(spinneSperma); സ്പഡർബ.add(spinneSperma);
} }
/** @DuytsDocMethod注(babel = {
* Coffin Of @DuytsDoc注(locale= "en", code = "coffinOf", purpose = "Gets the coffin from the grave"),
*/ @DuytsDoc注(locale= "zh", code = "棺材", purpose = "從墳墓中取出棺材"),
@DuytsDoc注(locale= "hi", code = "काꣻताबूत", purpose = "कब्र से ताबूत मिलता है")
})
protected <T extends BãßBȍőnʸᴰ<T>> BãßBȍőnCoffin 棺ᴼᶠ(BãßBȍőnʸᴰ<T> derKnochen) { protected <T extends BãßBȍőnʸᴰ<T>> BãßBȍőnCoffin 棺ᴼᶠ(BãßBȍőnʸᴰ<T> derKnochen) {
bassCntCoffinToGrave.increment(); bassCntCoffinToGrave.increment();
return 挖ᵀᵒ(derKnochen); return 挖ᵀᵒ(derKnochen);

View file

@ -1,6 +1,5 @@
package ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ; package ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Locale; import java.util.Locale;
import java.util.Optional; import java.util.Optional;
@ -13,39 +12,36 @@ import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsD
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDoc注; import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDoc注;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@DuytsDocType注( @DuytsDocType注(babel = {
ascii = @DuytsDoc注(purpose = "Base package interface from which a local language extends."), @DuytsDoc注(locale= "en", purpose = "Base package interface from which a local language extends."),
mandarin = @DuytsDoc注(code = "通天塔龸定位器", purpose = "本地語言擴展的基礎包接口"), @DuytsDoc注(locale= "zh", code = "通天塔龸定位器", purpose = "本地語言擴展的基礎包接口"),
hindi = @DuytsDoc注(code = "कोलाहलꣻलोकलाइज़र", purpose = "बेस पैकेज इंटरफ़ेस जिससे एक स्थानीय भाषा का विस्तार होता है") @DuytsDoc注(locale= "hi", code = "कोलाहलꣻलोकलाइज़र", purpose = "बेस पैकेज इंटरफ़ेस जिससे एक स्थानीय भाषा का विस्तार होता है")
) })
public interface BabelLocalizer { public interface BabelLocalizer {
// childface = JVM: only allow direct child members of this to use this interface // childface = JVM: only allow direct child members of this to use this interface
// packface = JVM: only allow this package and subpackage are allowed to use this interface // packface = JVM: only allow this package and subpackage are allowed to use this interface
@DuytsDocMethod注( @DuytsDocMethod注(babel = {
ascii = @DuytsDoc注(purpose = "Retrieves the locale information"), @DuytsDoc注(locale= "en", purpose = "Retrieves the locale information"),
mandarin = @DuytsDoc注(code = "至龸通天塔龸定位器龸界面", purpose = "检索语言环境信息"), @DuytsDoc注(locale= "zh", code = "至龸通天塔龸定位器龸界面", purpose = "检索语言环境信息"),
hindi = @DuytsDoc注(code = "बेबेलꣻलोकलाइज़रꣻकेꣻलिएꣻएपीआई", purpose = "स्थानीय जानकारी प्राप्त करता है"), @DuytsDoc注(locale= "hi", code = "बेबेलꣻलोकलाइज़रꣻकेꣻलिएꣻएपीआई", purpose = "स्थानीय जानकारी प्राप्त करता है")
exceptions = { }, exceptions = {
@DuytsDocThrows注(id = "missing_annotation", @DuytsDocThrows注(id = "missing_annotation", babel = {
ascii = "Missing required annotation @BabelLocalizer注 on interface: ", @DuytsDoc注(locale= "en", code = "Missing required annotation @BabelLocalizer注 on interface: "),
hindi = "आवश्यक एनोटेशन गुम है @BabelLocalizer注 इंटरफ़ेस पर", @DuytsDoc注(locale= "zh", code = "缺少必需的註釋 @BabelLocalizer注 在界面上 "),
mandarin = "缺少必需的註釋 @BabelLocalizer注 在界面上 ") @DuytsDoc注(locale= "hi", code = "आवश्यक एनोटेशन गुम है @BabelLocalizer注 इंटरफ़ेस पर")
})
}) })
default BabelLocalizerᴬᵖᶦ toBabelLocalizerᴬᵖᶦ() { default BabelLocalizerᴬᵖᶦ toBabelLocalizerᴬᵖᶦ() {
Optional<Class<?>> loc = DefaultBȍőnLoader.findInterfaceByAnnotation(getClass(), BabelLocalizer注.class); Optional<Class<?>> loc = DefaultBȍőnLoader.findInterfaceByAnnotation(getClass(), BabelLocalizer注.class);
if (loc.isEmpty()) { if (loc.isEmpty()) {
// NOTE no translated exceptions here because it requires this annotation.
throw new RuntimeException(toBabelExceptionMessage("missing_annotation", "ascii", this)); throw new RuntimeException(toBabelExceptionMessage("missing_annotation", "ascii", this));
} }
BabelLocalizer注 anno = loc.get().getAnnotation(BabelLocalizer注.class); BabelLocalizer注 anno = loc.get().getAnnotation(BabelLocalizer注.class);
return BabelLocalizerᴬᵖᶦ.Ꝑŕᱜṫèƈ.instanceᴺᵉʷ(anno.name(), new Locale(anno.locale()), anno.target(), anno.metaName()); return BabelLocalizerᴬᵖᶦ.Ꝑŕᱜṫèƈ.instanceᴺᵉʷ(anno.name(), new Locale(anno.locale()), anno.target());
} }
// @DuytsDocMethod注( // @DuytsDocMethod注(
// ascii = @DuytsDoc注(purpose = "Retrieves the locale information"),
// mandarin = @DuytsDoc注(code = "至龸通天塔龸定位器龸界面", purpose = "检索语言环境信息"),
// hindi = @DuytsDoc注(code = "बेबेलꣻलोकलाइज़रꣻकेꣻलिएꣻएपीआई", purpose = "स्थानीय जानकारी प्राप्त करता है"),
// exceptions = { // exceptions = {
// @DuytsDocThrows注(id = "missing_annotation", // @DuytsDocThrows注(id = "missing_annotation",
// ascii = "Missing required annotation @BabelLocalizer注 on interface: %s", // ascii = "Missing required annotation @BabelLocalizer注 on interface: %s",
@ -58,10 +54,10 @@ public interface BabelLocalizer {
public static String toBabelExceptionMessage(String exceptionId, BabelLocalizer loc, Object...msgArgs) { public static String toBabelExceptionMessage(String exceptionId, BabelLocalizer loc, Object...msgArgs) {
BabelLocalizerᴬᵖᶦ api = loc.toBabelLocalizerᴬᵖᶦ(); BabelLocalizerᴬᵖᶦ api = loc.toBabelLocalizerᴬᵖᶦ();
return toBabelExceptionMessage(api.getMetaName(), exceptionId, msgArgs); return toBabelExceptionMessage(exceptionId, api.getLocale().getLanguage(), msgArgs);
} }
public static String toBabelExceptionMessage(String exceptionId, String metaName, Object...msgArgs) { public static String toBabelExceptionMessage(String exceptionId, String localeId, Object...msgArgs) {
StackWalker walker = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE); StackWalker walker = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE);
StackWalker.StackFrame frame = walker.walk(stream1 -> stream1.skip(1).findFirst().orElse(null)); StackWalker.StackFrame frame = walker.walk(stream1 -> stream1.skip(1).findFirst().orElse(null));
if (frame == null) { if (frame == null) {
@ -80,17 +76,14 @@ public interface BabelLocalizer {
} }
for (DuytsDocThrows注 error:anno.exceptions()) { for (DuytsDocThrows注 error:anno.exceptions()) {
if (error.id().equals(exceptionId)) { if (error.id().equals(exceptionId)) {
String msg = null; for (DuytsDoc注 duyts:error.babel()) {
try { if (duyts.locale().equals(localeId)) {
Method annoValue = error.getClass().getMethod(metaName); String errorMsg = String.format(duyts.code(), msgArgs);
msg = (String)annoValue.invoke(error);
} catch (SecurityException | IllegalArgumentException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
throw new RuntimeException(e);
}
String errorMsg = String.format(msg, msgArgs);
throw new RuntimeException(errorMsg); throw new RuntimeException(errorMsg);
} }
} }
}
}
throw new RuntimeException("Missing exception id: "+exceptionId+" in @DuytsDocMethod注 on: "+callerMethod); throw new RuntimeException("Missing exception id: "+exceptionId+" in @DuytsDocMethod注 on: "+callerMethod);
} }
} }

View file

@ -14,11 +14,9 @@ public interface BabelLocalizerᴬᵖᶦ {
String getTarget(); String getTarget();
String getMetaName();
enum Ꝑŕᱜṫèƈ implements ObjectScopeLimitΔ.ƉěḭȵᶒModifier.Ꝑŕᱜṫèƈ { enum Ꝑŕᱜṫèƈ implements ObjectScopeLimitΔ.ƉěḭȵᶒModifier.Ꝑŕᱜṫèƈ {
; ;
protected static BabelLocalizerᴬᵖᶦ instanceᴺᵉʷ(String name, Locale locale, String target, String metaName) { protected static BabelLocalizerᴬᵖᶦ instanceᴺᵉʷ(String name, Locale locale, String target) {
return new BabelLocalizerᴬᵖᶦ() { return new BabelLocalizerᴬᵖᶦ() {
@Override @Override
public String getName() { public String getName() {
@ -32,10 +30,6 @@ public interface BabelLocalizerᴬᵖᶦ {
public String getTarget() { public String getTarget() {
return target; return target;
} }
@Override
public String getMetaName() {
return metaName;
}
}; };
} }
} }

View file

@ -17,6 +17,4 @@ public @interface BabelLocalizer注 {
String locale(); String locale();
String target(); String target();
String metaName();
} }

View file

@ -5,6 +5,6 @@ import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.BabelLocalizer注;
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BabelLocalizer注(name = "Ascii", locale = "en", target = "Normalized boring company language", metaName = "ascii") @BabelLocalizer注(name = "Ascii", locale = "en", target = "Normalized boring company language")
public interface BabelAscii extends BabelLocalizer { public interface BabelAscii extends BabelLocalizer {
} }

View file

@ -10,6 +10,6 @@ import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsD
@BabelMethodNameEnforcer注(ranges = { @BabelMethodNameEnforcer注(ranges = {
@BabelMethodNameRange注(start = 0x13000, stop = 0x1342F, name = "Egyptian Hieroglyphs") @BabelMethodNameRange注(start = 0x13000, stop = 0x1342F, name = "Egyptian Hieroglyphs")
}) })
@BabelLocalizer注(name = "𓂀", locale = "en", target = "Orange Catholic Church pastors", metaName = "hiero") @BabelLocalizer注(name = "𓂀", locale = "en", target = "Orange Catholic Church pastors")
public interface BabelHiero extends BabelLocalizer { public interface BabelHiero extends BabelLocalizer {
} }

View file

@ -17,7 +17,7 @@ import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsD
@BabelMethodNameRange注(start = 'ן', stop = 'ן', name = "Hebrew octal #7"), @BabelMethodNameRange注(start = 'ן', stop = 'ן', name = "Hebrew octal #7"),
@BabelMethodNameRange注(start = 'ך', stop = 'ך', name = "Hebrew octal #8") @BabelMethodNameRange注(start = 'ך', stop = 'ך', name = "Hebrew octal #8")
}) })
@BabelLocalizer注(name = "ヒナリー", locale = "ie", target = "Hardcore language for real hinarī coders", metaName = "hinari") @BabelLocalizer注(name = "ヒナリー", locale = "ie", target = "Hardcore language for real hinarī coders")
public interface BabelHinarī extends BabelLocalizer { public interface BabelHinarī extends BabelLocalizer {
// Patre nor, qui es in li cieles, // Patre nor, qui es in li cieles,
// mey tui nómine esser sanctificat, // mey tui nómine esser sanctificat,

View file

@ -9,17 +9,17 @@ import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsD
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDoc注; import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDoc注;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@DuytsDocType注( @DuytsDocType注(babel = {
ascii = @DuytsDoc注(purpose = "Hindi class type identifier"), @DuytsDoc注(locale= "en", purpose = "Hindi class type identifier"),
mandarin = @DuytsDoc注(code = "通天塔龸印地語", purpose = "印地語類類型標識符"), @DuytsDoc注(locale= "zh", code = "通天塔龸印地語", purpose = "印地語類類型標識符"),
hindi = @DuytsDoc注(code = "कोलाहलꣻहिन्दी", purpose = "हिंदी वर्ग प्रकार पहचानकर्ता") @DuytsDoc注(locale= "hi", code = "कोलाहलꣻहिन्दी", purpose = "हिंदी वर्ग प्रकार पहचानकर्ता")
) })
@BabelMethodNameEnforcer注(ranges = { @BabelMethodNameEnforcer注(ranges = {
@BabelMethodNameRange注(start = 0x0900, stop = 0x097F, name = "Devanagari"), @BabelMethodNameRange注(start = 0x0900, stop = 0x097F, name = "Devanagari"),
@BabelMethodNameRange注(start = 0xA8E0, stop = 0xA8FF, name = "Devanagari Extended"), @BabelMethodNameRange注(start = 0xA8E0, stop = 0xA8FF, name = "Devanagari Extended"),
@BabelMethodNameRange注(start = 0x11B00, stop = 0x11B09, name = "Devanagari Extended-A"), @BabelMethodNameRange注(start = 0x11B00, stop = 0x11B09, name = "Devanagari Extended-A"),
@BabelMethodNameRange注(start = 0x1CD0, stop = 0x1CFA, name = "Vedic Extensions") @BabelMethodNameRange注(start = 0x1CD0, stop = 0x1CFA, name = "Vedic Extensions")
}) })
@BabelLocalizer注(name = "हिन्दी", locale = "hi", target = "Seaking God with 1230 million eyes", metaName = "hindi") @BabelLocalizer注(name = "हिन्दी", locale = "hi", target = "Seaking God with 1230 million eyes")
public interface BabelHindi extends BabelLocalizer { public interface BabelHindi extends BabelLocalizer {
} }

View file

@ -5,6 +5,6 @@ import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.BabelLocalizer注;
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BabelLocalizer注(name = "普通話", locale = "zh", target = "Dragon's nest has 2234 million bass noise ears", metaName = "mandarin") @BabelLocalizer注(name = "普通話", locale = "zh", target = "Dragon's nest has 2234 million bass noise ears")
public interface BabelMandarin extends BabelLocalizer { public interface BabelMandarin extends BabelLocalizer {
} }

View file

@ -5,6 +5,6 @@ import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.BabelLocalizer注;
import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; import ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@BabelLocalizer注(name = "русский", locale = "ru", target = "Bãß rocket boot process", metaName = "russian") @BabelLocalizer注(name = "русский", locale = "ru", target = "Bãß rocket boot process")
public interface BabelRussian extends BabelLocalizer { public interface BabelRussian extends BabelLocalizer {
} }

View file

@ -0,0 +1,18 @@
package ᴶᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.CONSTRUCTOR})
public @interface DuytsDocConstructor注 {
// workflow for translators, set to true to flag this content should
// propagated to the other languages of the translatable doc item.
String awaitsPropagation() default "";
DuytsDoc注[] babel();
}

View file

@ -14,15 +14,5 @@ public @interface DuytsDocField注 {
// propagated to the other languages of the translatable doc item. // propagated to the other languages of the translatable doc item.
String awaitsPropagation() default ""; String awaitsPropagation() default "";
DuytsDoc注 ascii(); DuytsDoc注[] babel();
DuytsDoc注 mandarin();
DuytsDoc注 hindi();
DuytsDoc注 hiero() default @DuytsDoc注(purpose = "");
DuytsDoc注 hinarī() default @DuytsDoc注(purpose = "");
DuytsDoc注 russian() default @DuytsDoc注(purpose = "");
} }

View file

@ -6,25 +6,33 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@DuytsDocType注(babel = {
@DuytsDoc注(locale= "en", purpose = "Adds Duytschen documentation to a method"),
@DuytsDoc注(locale= "zh", code = "荷蘭文法", purpose = "將荷蘭文文檔添加到方法中"),
@DuytsDoc注(locale= "hi", code = "डचडॉकविधि", purpose = "एक विधि में डच दस्तावेज़ जोड़ता है")
})
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD}) @Target({ElementType.METHOD})
public @interface DuytsDocMethod注 { public @interface DuytsDocMethod注 {
// workflow for translators, set to true to flag this content should @DuytsDocMethod注(babel = {
// propagated to the other languages of the translatable doc item. @DuytsDoc注(locale= "en", purpose = "Translater workflow helper to mark propagation of text translations"),
@DuytsDoc注(locale= "zh", purpose = "用於標記文本翻譯傳播的翻譯工作流助手"),
@DuytsDoc注(locale= "hi", purpose = "पाठ अनुवादों के प्रसार को चिह्नित करने के लिए अनुवादक कार्यप्रवाह सहायक")
})
String awaitsPropagation() default ""; String awaitsPropagation() default "";
DuytsDoc注 ascii(); @DuytsDocMethod注(babel = {
@DuytsDoc注(locale= "en", purpose = "All the translated language information of the annatated method"),
DuytsDoc注 mandarin(); @DuytsDoc注(locale= "zh", purpose = "註釋方法的所有翻譯語言信息"),
@DuytsDoc注(locale= "hi", purpose = "एनाटेड विधि की सभी अनूदित भाषा की जानकारी")
DuytsDoc注 hindi(); })
DuytsDoc注[] babel();
DuytsDoc注 hiero() default @DuytsDoc注(purpose = "");
DuytsDoc注 hinarī() default @DuytsDoc注(purpose = "");
DuytsDoc注 russian() default @DuytsDoc注(purpose = "");
@DuytsDocMethod注(babel = {
@DuytsDoc注(locale= "en", purpose = "All the translated exceptions a method may throw"),
@DuytsDoc注(locale= "zh", purpose = "一個方法可能拋出的所有翻譯異常"),
@DuytsDoc注(locale= "hi", purpose = "सभी अनुवादित अपवाद एक विधि फेंक सकते हैं")
})
DuytsDocThrows注[] exceptions() default {}; DuytsDocThrows注[] exceptions() default {};
} }

View file

@ -12,15 +12,5 @@ public @interface DuytsDocThrows注 {
String id(); String id();
String ascii(); DuytsDoc注[] babel();
String mandarin();
String hindi();
String hiero() default "";
String hinarī() default "";
String russian() default "";
} }

View file

@ -12,17 +12,8 @@ public @interface DuytsDocType注 {
// workflow for translators, set to true to flag this content should // workflow for translators, set to true to flag this content should
// propagated to the other languages of the translatable doc item. // propagated to the other languages of the translatable doc item.
//@DuytsDocMethod注
String awaitsPropagation() default ""; String awaitsPropagation() default "";
DuytsDoc注 ascii(); DuytsDoc注[] babel();
DuytsDoc注 mandarin();
DuytsDoc注 hindi();
DuytsDoc注 hiero() default @DuytsDoc注(purpose = "");
DuytsDoc注 hinarī() default @DuytsDoc注(purpose = "");
DuytsDoc注 russian() default @DuytsDoc注(purpose = "");
} }

View file

@ -10,9 +10,11 @@ import java.lang.annotation.Target;
@Target({ElementType.ANNOTATION_TYPE}) @Target({ElementType.ANNOTATION_TYPE})
public @interface DuytsDoc注 { public @interface DuytsDoc注 {
String locale();
String code() default ""; String code() default "";
String purpose(); String purpose() default "";
String note() default ""; String note() default "";
} }