这些消息是否应该进行本地化,还是超出了本地化范围?
是的,它们应该本地化。。。但不要依赖于API返回的文本。
有点像__( $message );
甚至有意义?
不是真的。首先,您没有为本地化中使用的字符串提供文本域。应该是真的__( $message, \'my-text-domain\' );
. 即使如此,如果没有$message
, 本地化是一个没有实际意义的问题。
你能做些什么
The Robustness Principle 无论何时从外部API集成内容,都要记住这一点。你永远不能完全相信API给你的。。。原始所有者可能会在不通知您的情况下改变情况,或者他们的系统可能会中断并提供错误信息。因此,您应该始终:
在发送内容上要保守;在你接受的事情上要自由。
如果您已经知道API将返回什么内容(即字符串的静态列表),请将其放入插件中。然后使用卫生方法将API返回的内容映射到本地化字符串。
例如:
$map = array(
\'This is one return\' => __( \'This is one return\', \'my-text-domain\' ),
\'This is another\' => __( \'This is another\', \'my-text-domain\' )
);
sanitize_api_feedback( $api_sent ) {
return $map[$api_sent];
}
这样,您就不会实际使用外部API的原始输出,而是始终通过自己的过滤器运行它。您可以完全控制所使用的文本字符串,也可以通过标准本地化过滤器运行它们。
如果API返回是自由格式的,如果您没有API返回的静态字符串列表,这将不起作用。然后,如果API返回自由格式的内容,您应该:
本地化取决于API本身(如果可能的话)
为最终用户提供其他翻译服务。。。大概Google Translate您的插件不可能负责即时翻译自由格式字符串。但是一个简单的错误消息静态列表?这绝对是你可以而且应该做的事情。