1616use Symfony \Component \HttpFoundation \Request ;
1717use Symfony \Component \HttpFoundation \Response ;
1818use Translation \Bundle \Exception \MessageValidationException ;
19- use Translation \Bundle \Model \EditInPlaceMessage ;
2019use Translation \Bundle \Service \StorageService ;
20+ use Translation \Common \Model \Message ;
2121
2222/**
2323 * @author Damien Alexandre <dalexandre@jolicode.com>
@@ -34,15 +34,15 @@ class EditInPlaceController extends Controller
3434 public function editAction (Request $ request , $ configName , $ locale )
3535 {
3636 try {
37- $ messages = $ this ->getMessages ($ request , ['Edit ' ]);
37+ $ messages = $ this ->getMessages ($ request , $ locale , ['Edit ' ]);
3838 } catch (MessageValidationException $ e ) {
3939 return new Response ($ e ->getMessage (), Response::HTTP_BAD_REQUEST );
4040 }
4141
4242 /** @var StorageService $storage */
4343 $ storage = $ this ->get ('php_translation.storage. ' .$ configName );
4444 foreach ($ messages as $ message ) {
45- $ storage ->update ($ message-> convertToMessage ( $ locale ) );
45+ $ storage ->update ($ message );
4646 }
4747
4848 $ this ->rebuildTranslations ($ locale );
@@ -63,6 +63,10 @@ private function rebuildTranslations($locale)
6363 $ filesystem = $ this ->get ('filesystem ' );
6464 $ finder = new Finder ();
6565
66+ if (!is_dir ($ translationDir )) {
67+ mkdir ($ translationDir );
68+ }
69+
6670 if (!is_writable ($ translationDir )) {
6771 throw new \RuntimeException (sprintf ('Unable to write in the "%s" directory ' , $ translationDir ));
6872 }
@@ -74,20 +78,24 @@ private function rebuildTranslations($locale)
7478 }
7579
7680 // Build them again
77- $ this ->get ('translator ' )->warmUp ($ translationDir );
81+ $ translator = $ this ->get ('translator ' );
82+ if (method_exists ($ translator , 'warmUp ' )) {
83+ $ translator ->warmUp ($ translationDir );
84+ }
7885 }
7986
8087 /**
8188 * Get and validate messages from the request.
8289 *
8390 * @param Request $request
91+ * @param string $locale
8492 * @param array $validationGroups
8593 *
86- * @return EditInPlaceMessage []
94+ * @return Message []
8795 *
8896 * @throws MessageValidationException
8997 */
90- private function getMessages (Request $ request , array $ validationGroups = [])
98+ private function getMessages (Request $ request , $ locale , array $ validationGroups = [])
9199 {
92100 $ json = $ request ->getContent ();
93101 $ data = json_decode ($ json , true );
@@ -97,10 +105,11 @@ private function getMessages(Request $request, array $validationGroups = [])
97105 foreach ($ data as $ key => $ value ) {
98106 list ($ domain , $ translationKey ) = explode ('| ' , $ key );
99107
100- $ message = new EditInPlaceMessage ();
108+ $ message = new Message ();
101109 $ message ->setKey ($ translationKey );
102- $ message ->setMessage ($ value );
110+ $ message ->setTranslation ($ value );
103111 $ message ->setDomain ($ domain );
112+ $ message ->setLocale ($ locale );
104113
105114 $ errors = $ validator ->validate ($ message , null , $ validationGroups );
106115 if (count ($ errors ) > 0 ) {
0 commit comments