private function handleLanguage(TranslationResource $resource, $code, $translationMode, OutputInterface $output)
    {
        $this->writeln($output, sprintf('Updating language <info>%s</info>', $code));
        // Pull it.
        $data = $resource->fetchTranslation($code, $translationMode);
        if ($data) {
            $local = $this->getLocalXliffFile($resource, $code);

            $new = new XliffFile(null);
            $new->loadXML($data);

            foreach ($new->getKeys() as $key) {
                if ($value = $new->getSource($key)) {
                    $local->setSource($key, $value);
                    if ($value = $new->getTarget($key)) {
                        $local->setTarget($key, $value);
                    }
                }
            }
            foreach (array_diff($new->getKeys(), $local->getKeys()) as $key) {
                $this->writeln(
                    $output,
                    sprintf('Language key <info>%s</info> seems to be orphaned, please check.', $key)
                );
            }

            if ($local->getKeys()) {
                if (!is_dir(dirname($local->getFileName()))) {
                    mkdir(dirname($local->getFileName()), 0755, true);
                }
                $local->save();
            }
        }
    }
private function handleLanguage(TranslationResource $resource, $code, $translationMode, OutputInterface $output)
    {
        $this->writeln($output, sprintf('Updating language <info>%s</info>', $code));
        // Pull it.
        $data = $resource->fetchTranslation($code, $translationMode);
        if ($data) {
            $local = $this->getLocalXliffFile($resource, $code);

            $new = new XliffFile(null);
            $new->loadXML($data);

            foreach ($new->getKeys() as $key) {
                if ($value = $new->getSource($key)) {
                    $local->setSource($key, $value);
                    if ($value = $new->getTarget($key)) {
                        $local->setTarget($key, $value);
                    }
                }
            }
            foreach (array_diff($new->getKeys(), $local->getKeys()) as $key) {
                $this->writeln(
                    $output,
                    sprintf('Language key <info>%s</info> seems to be orphaned, please check.', $key)
                );
            }

            if ($local->getKeys()) {
                if (!is_dir(dirname($local->getFileName()))) {
                    mkdir(dirname($local->getFileName()), 0755, true);
                }
                $local->save();
            }
        }
    }
private function handleLanguage ( TranslationResource $ resource , $ code , $ translationMode , OutputInterface $ output ) { $ this -> writeln ( $ output , sprintf ( 'Updating language <info>%s</info>' , $ code ) ) ; // Pull it. $ data = $ resource -> fetchTranslation ( $ code , $ translationMode ) ; if ( $ data ) { $ local = $ this -> getLocalXliffFile ( $ resource , $ code ) ; $ new = new XliffFile ( null ) ; $ new -> loadXML ( $ data ) ; foreach ( $ new -> getKeys ( ) as $ key ) { if ( $ value = $ new -> getSource ( $ key ) ) { $ local -> setSource ( $ key , $ value ) ; if ( $ value = $ new -> getTarget ( $ key ) ) { $ local -> setTarget ( $ key , $ value ) ; } } } foreach ( array_diff ( $ new -> getKeys ( ) , $ local -> getKeys ( ) ) as $ key ) { $ this -> writeln ( $ output , sprintf ( 'Language key <info>%s</info> seems to be orphaned, please check.' , $ key ) ) ; } if ( $ local -> getKeys ( ) ) { if ( ! is_dir ( dirname ( $ local -> getFileName ( ) ) ) ) { mkdir ( dirname ( $ local -> getFileName ( ) ) , 0755 , true ) ; } $ local -> save ( ) ; } } }
Handle a language for a resource.

@param TranslationResource $resource        The resource to process.

@param string              $code            The language code.

@param string              $translationMode The translation mode.

@param OutputInterface     $output          The output interface to use.

@return void
Handle a language for a resource .