I have a controller that act as an API endpoint in magento 2, i need to have a response on different language base on parameter that were passed, this controller can access model and etc.
for example:
public function execute()
{
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400');
}
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
try {
$lang = $this->getRequest()->getParam('lang');
if($lang == 'en'){
$message = 'who are you';
$data['var_1'] = "Live";
}elseif($lang == 'jp'){
$messsage = 'あなたは誰';
$data['var_1'] = "ライブ";
}
return $this->_formatResponse(500,$message,$data);
} catch (\Exception $ex) {
$message = $ex->getMessage();
return $this->_formatResponse(500,$message);
}
}
protected function _formatResponse($status, $message = '', $data = [])
{
$result = $this->_resultJsonFactory->create();
$result->setHttpResponseCode($status);
return $result->setData([
'status' => $status,
'message' => $message,
'data' => $data
]);
}
how can i achieve to manage this translation message dynamically when there is a lot of user access my controller.