On Language change civicrm api for participant status change does not work as expected
Even if the label is different in English and Chinese, the above API with 'status_id' =&gt; "Registered", parameter should work fine as it is meant to make the mapping based on name and not label.

Anyway, I think you should be able to use id instead of passing the name of the participant status in the api params. Something like -

$statusOptions = CRM_Event_BAO_Participant::buildOptions('status_id', 'validate');
...
...your api ...
...
  'status_id' =&gt; array_search('Registered', $statusOptions),


If the above fails, and you still want to do this by knowing which language is enabled, you can simply use -  

$currentLanguageLocale = CRM_Core_I18n::getLocale();


The variable $currentLanguageLocale will hold the locale value of the current language enabled in civi.