export default { 'pmd/AssertEqualsArgumentOrder': { zh: 'assertEquals 的 expected/actual 参数顺序颠倒', ja: 'assertEquals の expected/actual 引数が逆' }, 'pmd/AssignmentInOperand': { zh: '避免在操作数中赋值', ja: 'オペランド内での代入を避ける' }, 'pmd/AssignmentToNonFinalStatic': { zh: '构造函数中对非 final 静态字段的不安全赋值', ja: 'コンストラクタ内の非 final 静的フィールドへの安全でない代入' }, 'pmd/AvoidAccessibilityAlteration': { zh: '不要使用 setAccessible(true)', ja: 'setAccessible(true) を使用しない' }, 'pmd/AvoidBranchingStatementAsLastInLoop': { zh: '循环体最后的跳转语句', ja: 'ループの最後の分岐文' }, 'pmd/AvoidCallingFinalize': { zh: '不要显式调用 finalize()', ja: 'finalize() を明示的に呼ばない' }, 'pmd/AvoidCatchingGenericException': { zh: '不要捕获泛化异常', ja: '汎用例外を捕捉しない' }, 'pmd/AvoidDecimalLiteralsInBigDecimalConstructor': { zh: 'BigDecimal 使用 String 构造函数', ja: 'BigDecimal には String コンストラクタを使用する' }, 'pmd/AvoidDuplicateLiterals': { zh: '避免重复的 String 字面量', ja: '重複する文字列リテラルを避ける' }, 'pmd/AvoidFieldNameMatchingMethodName': { zh: '字段名与方法名相同', ja: 'フィールド名とメソッド名が一致する' }, 'pmd/AvoidFieldNameMatchingTypeName': { zh: '字段名与类型名相同', ja: 'フィールド名と型名が一致する' }, 'pmd/AvoidInstanceofChecksInCatchClause': { zh: '使用单独的 catch 子句', ja: '個別の catch 句を使用する' }, 'pmd/AvoidLiteralsInIfCondition': { zh: '避免 if 条件中的魔术数字', ja: 'if 条件内のマジックナンバーを避ける' }, 'pmd/AvoidMultipleUnaryOperators': { zh: '避免多个一元运算符', ja: '複数の単項演算子を避ける' }, 'pmd/AvoidSynchronizedStatement': { zh: '避免 synchronized 语句', ja: 'synchronized 文を避ける' }, 'pmd/AvoidSynchronizedAtMethodLevel': { zh: '避免在方法级别使用 synchronized', ja: 'メソッドレベルでの synchronized を避ける' }, 'pmd/AvoidThreadGroup': { zh: '避免使用 ThreadGroup', ja: 'ThreadGroup の使用を避ける' }, 'pmd/AvoidUsingOctalValues': { zh: '避免八进制字面量', ja: '8進数リテラルを避ける' }, 'pmd/AvoidUsingVolatile': { zh: '避免 volatile 关键字', ja: 'volatile キーワードを避ける' }, 'pmd/BrokenNullCheck': { zh: '错误的 null 检查(|| 与 &&)', ja: '壊れた null チェック(|| vs &&)' }, 'pmd/CallSuperFirst': { zh: 'super 应首先调用', ja: 'super を最初に呼ぶべきである' }, 'pmd/CallSuperLast': { zh: 'super 应最后调用', ja: 'super を最後に呼ぶべきである' }, 'pmd/CheckSkipResult': { zh: '检查 skip() 的返回值', ja: 'skip() の戻り値を確認する' }, 'pmd/ClassCastExceptionWithToArray': { zh: 'Collection.toArray() 的 ClassCastException', ja: 'Collection.toArray() の ClassCastException' }, 'pmd/CloneMethodMustBePublic': { zh: '实现 Cloneable 时 clone() 必须是 public', ja: 'Cloneable の場合 clone() は public でなければならない' }, 'pmd/CloneMethodMustImplementCloneable': { zh: '只有实现 Cloneable 时才有 clone()', ja: 'Cloneable の場合のみ clone() を持つ' }, 'pmd/CloneMethodReturnTypeMustMatchClassName': { zh: 'clone() 协变返回类型', ja: 'clone() の共変戻り値型' }, 'pmd/CloseResource': { zh: '确保资源被关闭', ja: 'リソースが閉じられることを保証する' }, 'pmd/CollectionTypeMismatch': { zh: '集合方法中的类型不匹配', ja: 'コレクションメソッド内の型不一致' }, 'pmd/CompareObjectsWithEquals': { zh: '对象比较使用 equals() 而非 ==', ja: 'オブジェクトの比較に == ではなく equals() を使用する' }, 'pmd/ComparisonWithNaN': { zh: 'NaN 比较总是返回 false', ja: 'NaN との比較は常に false を返す' }, 'pmd/ConfusingArgumentToVarargsMethod': { zh: '澄清可变参数意图', ja: '可変長引数の意図を明確にする' }, 'pmd/ConstructorCallsOverridableMethod': { zh: '构造函数调用可重写方法', ja: 'コンストラクタがオーバーライド可能なメソッドを呼ぶ' }, 'pmd/DataflowAnomalyAnalysis': { zh: '数据流异常', ja: 'データフロー異常' }, 'pmd/DoNotCallGarbageCollectionExplicitly': { zh: '不要显式调用 System.gc()', ja: 'System.gc() を明示的に呼ばない' }, 'pmd/DoNotCallSystemExit': { zh: '不要调用 System.exit()', ja: 'System.exit() を呼ばない' }, 'pmd/DoNotHardCodeSDCard': { zh: '不要硬编码 /sdcard 路径', ja: '/sdcard パスをハードコードしない' }, 'pmd/DoNotThrowExceptionInFinally': { zh: '不要在 finally 中抛出异常', ja: 'finally で例外を投げない' }, 'pmd/DoNotUseThreads': { zh: '不要使用线程', ja: 'スレッドを使用しない' }, 'pmd/DontCallThreadRun': { zh: '不要调用 Thread.run()', ja: 'Thread.run() を呼ばない' }, 'pmd/DoubleCheckedLocking': { zh: '双重检查锁定不是线程安全的', ja: '二重チェックロッキングはスレッド安全でない' }, 'pmd/EmptyCatchBlock': { zh: '空 catch 块', ja: '空の catch ブロック' }, 'pmd/EqualsNull': { zh: '与 null 进行相等比较', ja: 'null との等価比較' }, 'pmd/FinallyBlockDoesNothing': { zh: 'finally 块什么也不做', ja: 'finally ブロックが何もしない' }, 'pmd/IdempotentOperations': { zh: '幂等操作', ja: '冪等な操作' }, 'pmd/ImplicitSwitchFallThrough': { zh: '隐式 switch fall through', ja: '暗黙の switch フォールスルー' }, 'pmd/ImportFromSamePackage': { zh: '从同包导入', ja: '同一パッケージからのインポート' }, 'pmd/InstantiationToGetClass': { zh: '仅为获取类而实例化', ja: 'クラス取得のためだけのインスタンス化' }, 'pmd/InvalidLogMessageFormat': { zh: '无效的 SLF4J 消息格式', ja: '無効な SLF4J メッセージ形式' }, 'pmd/JUnitSpelling': { zh: 'JUnit 方法拼写', ja: 'JUnit メソッドの綴り' }, 'pmd/JUnitStaticSuite': { zh: 'JUnit 静态 suite 方法', ja: 'JUnit の静的 suite メソッド' }, 'pmd/JumbledIncrementer': { zh: '混乱的增量器', ja: '入り混じったインクリメンタ' }, 'pmd/LoggerIsNotStaticFinal': { zh: 'Logger 不是 static final', ja: 'Logger が static final でない' }, 'pmd/MethodWithSameNameAsEnclosingClass': { zh: '方法与包围类同名', ja: 'メソッドが囲むクラスと同名' }, 'pmd/MisplacedNullCheck': { zh: '位置错误的 null 检查', ja: '誤った位置の null チェック' }, 'pmd/MissingBreakInSwitch': { zh: 'switch 中缺少 break', ja: 'switch 内の break 欠落' }, 'pmd/MissingSerialVersionUID': { zh: '缺少 serialVersionUID', ja: 'serialVersionUID の欠落' }, 'pmd/MissingStaticMethodInNonInstantiatableClass': { zh: '不可实例化类缺少静态方法', ja: 'インスタンス化できないクラスに静的メソッドがない' }, 'pmd/MoreThanOneLogger': { zh: '多于一个 logger', ja: 'logger が複数ある' }, 'pmd/NonCaseLabelInSwitch': { zh: 'switch 中的非 case 标签', ja: 'switch 内の非 case ラベル' }, 'pmd/NonStaticInitializer': { zh: '非静态初始化器', ja: '非静的初期化子' }, 'pmd/NonThreadSafeSingleton': { zh: '单例不是线程安全的', ja: 'シングルトンがスレッド安全でない' }, 'pmd/NullAssignment': { zh: 'null 赋值', ja: 'null 代入' }, 'pmd/NumberConstructor': { zh: 'Number 构造函数(已废弃)', ja: 'Number コンストラクタ(非推奨)' }, 'pmd/ObjectFinalize': { zh: 'Object finalize 问题', ja: 'Object finalize の問題' }, 'pmd/OperationWithCloning': { zh: '克隆操作', ja: 'クローン操作' }, 'pmd/OverrideBothEqualsAndHashcode': { zh: '同时重写 equals() 和 hashCode()', ja: 'equals() と hashCode() の両方をオーバーライドする' }, 'pmd/OverridingThreadRun': { zh: '不要重写 Thread.run()', ja: 'Thread.run() をオーバーライドしない' }, 'pmd/PackageDeclaration': { zh: '包声明', ja: 'パッケージ宣言' }, 'pmd/ProperCloneImplementation': { zh: '正确的 clone 实现', ja: '適切な clone 実装' }, 'pmd/ProperLogger': { zh: '正确的 logger', ja: '適切な logger' }, 'pmd/ReturnFromFinallyBlock': { zh: '从 finally 返回', ja: 'finally からの return' }, 'pmd/SimpleDateFormatNeedsLocale': { zh: 'SimpleDateFormat 需要 locale', ja: 'SimpleDateFormat に locale が必要' }, 'pmd/SingleMethodSingleton': { zh: '单例模式问题', ja: 'シングルトンパターンの問題' }, 'pmd/SingletonClassReturningNewInstance': { zh: '单例返回新实例', ja: 'シングルトンが新しいインスタンスを返す' }, 'pmd/StaticEJBFieldShouldBeFinal': { zh: '静态 EJB 字段应为 final', ja: '静的 EJB フィールドは final にする' }, 'pmd/StringBufferInstantiationWithChar': { zh: 'StringBuffer 带 char 实例化', ja: 'char を伴う StringBuffer インスタンス化' }, 'pmd/SuspiciousConstantFieldName': { zh: '常量字段命名', ja: '定数フィールドの命名' }, 'pmd/SuspiciousEqualsMethodName': { zh: 'equals() 方法签名', ja: 'equals() メソッドのシグネチャ' }, 'pmd/SuspiciousHashcodeMethodName': { zh: 'hashCode() 方法签名', ja: 'hashCode() メソッドのシグネチャ' }, 'pmd/SuspiciousOctalEscape': { zh: '可疑的八进制转义', ja: '疑わしい8進エスケープ' }, 'pmd/TestClassWithoutTestCases': { zh: '没有测试用例的测试类', ja: 'テストケースのないテストクラス' }, 'pmd/UnconditionalIfStatement': { zh: '无条件 if 语句', ja: '無条件の if 文' }, 'pmd/UnnecessaryBooleanAssertion': { zh: '不必要的布尔断言', ja: '不要なブールアサーション' }, 'pmd/UnnecessaryCaseChange': { zh: '不必要的大小写转换', ja: '不要なケース変換' }, 'pmd/UnnecessaryConversionTemporal': { zh: '不必要的时间转换', ja: '不要な時間変換' }, 'pmd/UnusedNullCheckInEquals': { zh: 'equals 中未使用的 null 检查', ja: 'equals 内の未使用 null チェック' }, 'pmd/UseConcurrentHashMap': { zh: '并发访问使用 ConcurrentHashMap', ja: '並行アクセスに ConcurrentHashMap を使用する' }, 'pmd/UseCorrectExceptionLogging': { zh: '正确的异常日志', ja: '適切な例外ログ' }, 'pmd/UseDiamondOperator': { zh: '使用菱形运算符 <>', ja: 'ダイヤモンド演算子 <> を使用する' }, 'pmd/UseEqualsToCompareStrings': { zh: '字符串比较使用 equals()', ja: '文字列の比較に equals() を使用する' }, 'pmd/UseLocaleWithCaseConversions': { zh: '大小写转换使用 locale', ja: 'ケース変換に locale を使用する' }, 'pmd/UseNotifyAllInsteadOfNotify': { zh: '使用 notifyAll() 替代 notify()', ja: 'notify() の代わりに notifyAll() を使用する' }, 'pmd/UseProperClassLoader': { zh: '使用正确的类加载器', ja: '適切なクラスローダーを使用する' }, 'pmd/AddEmptyString': { zh: '不要添加空字符串', ja: '空文字列を追加しない' }, 'pmd/AppendCharacterWithChar': { zh: 'StringBuffer 中追加 char 而非 String', ja: 'StringBuffer には String ではなく char を追加する' }, 'pmd/AvoidArrayLoops': { zh: '使用 Arrays.copyOf 或 System.arraycopy', ja: 'Arrays.copyOf または System.arraycopy を使用する' }, 'pmd/AvoidCalendarDateCreation': { zh: '获取当前时间避免使用 Calendar', ja: '現在時刻に Calendar を使用しない' }, 'pmd/AvoidFileStream': { zh: '避免 FileInputStream/FileOutputStream/FileReader/FileWriter', ja: 'FileInputStream/FileOutputStream/FileReader/FileWriter を避ける' }, 'pmd/AvoidInstantiatingObjectsInLoops': { zh: '不要在循环中实例化对象', ja: 'ループ内でオブジェクトをインスタンス化しない' }, 'pmd/BigIntegerInstantiation': { zh: '使用 BigInteger.ZERO/ONE/TEN', ja: 'BigInteger.ZERO/ONE/TEN を使用する' }, 'pmd/ConsecutiveAppendsShouldReuse': { zh: '链式调用 StringBuilder.append', ja: 'StringBuilder.append をチェーンで呼ぶ' }, 'pmd/ConsecutiveLiteralAppends': { zh: '合并字面量追加', ja: 'リテラルの追加を統合する' }, 'pmd/InefficientEmptyStringCheck': { zh: '使用 isBlank() 替代 trim().isEmpty()', ja: 'trim().isEmpty() の代わりに isBlank() を使用する' }, 'pmd/InefficientStringBuffering': { zh: '避免在 StringBuffer 构造函数中拼接', ja: 'StringBuffer コンストラクタ内での連結を避ける' }, 'pmd/InsufficientStringBufferDeclaration': { zh: '预先指定 StringBuilder 容量', ja: 'StringBuilder の容量を事前指定する' }, 'pmd/OptimizableToArrayCall': { zh: '使用 new Foo[0] 替代 new Foo[size]', ja: 'new Foo[size] の代わりに new Foo[0] を使用する' }, 'pmd/RedundantFieldInitializer': { zh: '移除冗余的字段初始化器', ja: '冗長なフィールド初期化子を削除する' }, 'pmd/StringInstantiation': { zh: '避免 new String()', ja: 'new String() を避ける' }, 'pmd/StringToString': { zh: '避免对 String 调用 toString()', ja: 'String への toString() を避ける' }, 'pmd/TooFewBranchesForSwitch': { zh: '少于3个分支的 switch', ja: '3未満のブランチの switch' }, 'pmd/UseArrayListInsteadOfVector': { zh: '使用 ArrayList 替代 Vector', ja: 'Vector の代わりに ArrayList を使用する' }, 'pmd/UseArraysAsList': { zh: '使用 Arrays.asList() 替代循环', ja: 'ループの代わりに Arrays.asList() を使用する' }, 'pmd/UseIndexOfChar': { zh: '使用 indexOf(char) 而非 indexOf(String)', ja: 'indexOf(String) ではなく indexOf(char) を使用する' }, 'pmd/UseIOStreamsWithApacheCommonsFileItem': { zh: '使用 getInputStream() 而非 get()', ja: 'get() ではなく getInputStream() を使用する' }, 'pmd/UselessStringValueOf': { zh: '不要用 String.valueOf() 包裹', ja: 'String.valueOf() でラップしない' }, 'pmd/UseStringBufferForStringAppends': { zh: '使用 StringBuilder 进行拼接', ja: '文字列連結に StringBuilder を使用する' }, 'pmd/UseStringBufferLength': { zh: '使用 length() 替代 toString().equals("")', ja: 'toString().equals("") の代わりに length() を使用する' }, 'pmd/HardCodedCryptoKey': { zh: '不要硬编码加密密钥', ja: '暗号鍵をハードコードしない' }, 'pmd/InsecureCryptoIv': { zh: '不要硬编码初始化向量', ja: '初期化ベクタをハードコードしない' }, };