以前曾问过这个问题的几种风格,但我不明白它们的答案对于大型项目是如何令人满意的。
我的目标是在我的应用程序中找到需要本地化的任何硬编码字符串,因此我执行以下操作:
此时,我获得了大约3500次点击,其中2500次是日志记录。我运行sed命令从项目中删除所有日志记录并重复上述步骤。这留下了1000次点击。其中大约700个是分配给常量的字符串文字,因此我执行以下操作:
我重新检查支票并最终获得300次点击。其中大约200种是用于读/写JSON属性的某种形式的硬编码标签,99种是用于文件名和共享偏好等内容的构建字符串。
这个2小时的过程给我留下了1个未被本地化的实际字符串文字。
问题:是否有内置的说法,“运行此本地化检查,但忽略与此[正则表达式列表] [s]相匹配的行?”
答案 0 :(得分:1)
对于Android Studio 1.3版,在按名称运行“硬编码文本”检查后,确实会遇到很多非问题,例如Log方法的参数。
但是,检查结果窗口的右侧面板包含有关规则的信息以及一些“问题解决”选项。其中一个选项是“Annotate parameter ...”或“Annotate class ...”。这些选项在annotations.xml文件中创建条目,告诉检查规则忽略这些参数或类。
有了这个,随后的检查运行将不会标记这些调用。因此,在对几个代码文件执行此操作后,您可能会遇到大多数异常,并且会减少整个项目的结果数。
以下是annotations.xml文件中生成的XML示例:
<root>
<item name='android.content.Intent Intent(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NonNls'/>
</item>
<item name='android.content.Intent android.content.Intent putExtra(java.lang.String, boolean) 0'>
<annotation name='org.jetbrains.annotations.NonNls'/>
</item>
<item name='android.content.Intent android.content.Intent putExtra(java.lang.String, int) 0'>
<annotation name='org.jetbrains.annotations.NonNls'/>
</item>
<item name='android.content.Intent android.content.Intent setAction(java.lang.String) 0'>
<annotation name='org.jetbrains.annotations.NonNls'/>
</item>
</root>
答案 1 :(得分:1)
只需在日志行后添加 // NON-NLS 即可取消警告。
Route::group(['namespace' => 'Auth'], function() {
Route::post('/login', ['uses' => 'AuthController@login', 'as' => 'login']);
Route::post('/registreer', ['uses' => 'AuthController@postRegister', 'as' => 'register']);
Route::post('/reset', ['uses' => 'PasswordController@sendResetLinkEmail', 'as' => 'reset']);
});