Translation.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Translations;
  4. use Illuminate\Http\Request;
  5. use Str;
  6. use File;
  7. use Storage;
  8. use Carbon\Carbon;
  9. use Response;
  10. class Translation extends Controller
  11. {
  12. public function translations(){
  13. $translations = Translations::where('status',1)->where('context','admin')->get();
  14. $t = [];
  15. if(isset($translations)){
  16. foreach($translations as $translation){
  17. $t[$translation->item_key][$translation->lang_id] = $translation->item_val;
  18. }
  19. }
  20. $translations = $t;
  21. // dd($translations);
  22. return view("translations.translations",['translations'=>$translations,'translation_for'=>'admin']);
  23. }
  24. public function translations_frontend(){
  25. $translations = Translations::where('status',1)->where('context','meem_fe_customer')->get();
  26. $t = [];
  27. if(isset($translations)){
  28. foreach($translations as $translation){
  29. $t[$translation->item_key][$translation->lang_id] = $translation->item_val;
  30. }
  31. }
  32. $translations = $t;
  33. // dd($translations);
  34. return view("translations.translations",['translations'=>$translations,'translation_for'=>'frontend']);
  35. }
  36. public function save_translation(Request $request){
  37. $id = $request->id;
  38. if(empty($id)){
  39. $translation = new Translations();
  40. $translation->item_key = str_replace('-','_',Str::slug($request->item_key));
  41. $translation->item_val = $request->item_en;
  42. $translation->lang_id = 'en';
  43. if($request->type=="frontend"){
  44. $translation->context = 'meem_fe_customer';
  45. $translation->context_value = 'meem_react';
  46. }
  47. if($request->type=="admin"){
  48. $translation->context = 'admin';
  49. $translation->context_value = 'admin-label';
  50. }
  51. $translation->save();
  52. $translation = new Translations();
  53. $translation->item_key = str_replace('-','_',Str::slug($request->item_key));
  54. $translation->item_val = $request->item_ar;
  55. $translation->lang_id = 'ar';
  56. if($request->type=="frontend"){
  57. $translation->context = 'meem_fe_customer';
  58. $translation->context_value = 'meem_react';
  59. }
  60. if($request->type=="admin"){
  61. $translation->context = 'admin';
  62. $translation->context_value = 'admin-label';
  63. }
  64. $translation->save();
  65. return response()->json(array('type' => 'success', 'message'=>"Data is saved successfully."),200);
  66. }else{
  67. //dd($request->all());
  68. $translation = Translations::where('item_key',$id)->where('lang_id','en')->first();
  69. $translation->item_val = $request->item_en;;
  70. $translation->save();
  71. $translation = Translations::where('item_key',$id)->where('lang_id','ar')->first();
  72. $translation->item_val = $request->item_ar;;
  73. $translation->save();
  74. return response()->json(array('type' => 'success', 'message'=>"Data is saved successfully."),200);
  75. }
  76. }
  77. public function download_translation_file($type,$for){
  78. //echo $for;
  79. if($for=="frontend")
  80. $translations = Translations::where('status',1)->where('lang_id',$type)->where('context','meem_fe_customer')->get();
  81. if($for=="admin")
  82. $translations = Translations::where('status',1)->where('lang_id',$type)->where('context','admin')->get();
  83. $t = [];
  84. if(isset($translations)){
  85. foreach($translations as $translation){
  86. $t[$translation->item_key] = $translation->item_val;
  87. }
  88. }
  89. if($for=="admin"){
  90. rename('/var/www/admin.dukany.io/resources/lang/'.$type.'/label.php', '/var/www/admin.dukany.io/resources/lang/'.$type.'/label-'.Carbon::now()->format('Ymd').'.php');
  91. File::put('resources/lang/'.$type.'/label.php',"<?php return ".var_export($t,true)."; ?>");
  92. }
  93. if($for=="frontend"){
  94. $time = time();
  95. File::put('resources/lang/'.$type.'/label.json',json_encode($t,JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
  96. rename('/var/www/admin.dukany.io/resources/lang/'.$type.'/label.json', '/var/www/admin.dukany.io/public/uploads/label-'.$type.'-'.$time.'.json');
  97. //echo env('APP_URL').'uploads/label-'.$type;
  98. $headers = array(
  99. 'Content-Type: application/json',
  100. );
  101. //return download(public_path('uploads/label-'.$type.'.json'));
  102. return response()->download(public_path('uploads/label-'.$type.'-'.$time.'.json'), 'label-'.$type.'-'.$time.'.json', $headers);
  103. }
  104. }
  105. }