本文整理汇总了PHP中JMS\TranslationBundle\Model\MessageCatalogue::has方法的典型用法代码示例。如果您正苦于以下问题:PHP MessageCatalogue::has方法的具体用法?PHP MessageCatalogue::has怎么用?PHP MessageCatalogue::has使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JMS\TranslationBundle\Model\MessageCatalogue
的用法示例。
在下文中一共展示了MessageCatalogue::has方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: compare
/**
* Compares two message catalogues.
*
* @param MessageCatalogue $current
* @param MessageCatalogue $new
* @return ChangeSet
*/
public function compare(MessageCatalogue $current, MessageCatalogue $new)
{
$newMessages = array();
foreach ($new->getDomains() as $name => $domain) {
if ($this->domains && !isset($this->domains[$name])) {
continue;
}
if (isset($this->ignoredDomains[$name])) {
continue;
}
foreach ($domain->all() as $message) {
if ($current->has($message)) {
// FIXME: Compare what has changed
continue;
}
$newMessages[] = $message;
}
}
$deletedMessages = array();
foreach ($current->getDomains() as $name => $domain) {
if ($this->domains && !isset($this->domains[$name])) {
continue;
}
if (isset($this->ignoredDomains[$name])) {
continue;
}
foreach ($domain->all() as $message) {
if ($new->has($message)) {
continue;
}
$deletedMessages[] = $message;
}
}
return new ChangeSet($newMessages, $deletedMessages);
}
示例2: setConfig
/**
* @param Config $config
*/
private function setConfig(Config $config)
{
$this->config = $config;
$this->logger->info(sprintf("Loading catalogues from \"%s\"", $config->getTranslationsDir()));
$this->existingCatalogue = new MessageCatalogue();
// load external resources, so current translations can be reused in the final translation
foreach ($config->getLoadResources() as $resource) {
$this->existingCatalogue->merge($this->loader->loadFromDirectory($resource, $config->getLocale()));
}
$this->existingCatalogue->merge($this->loader->loadFromDirectory($config->getTranslationsDir(), $config->getLocale()));
$this->extractor->reset();
$this->extractor->setDirectories($config->getScanDirs());
$this->extractor->setExcludedDirs($config->getExcludedDirs());
$this->extractor->setExcludedNames($config->getExcludedNames());
$this->extractor->setEnabledExtractors($config->getEnabledExtractors());
$this->logger->info("Extracting translation keys");
$this->scannedCatalogue = $this->extractor->extract();
$this->scannedCatalogue->setLocale($config->getLocale());
// merge existing messages into scanned messages
foreach ($this->scannedCatalogue->getDomains() as $domainCatalogue) {
foreach ($domainCatalogue->all() as $message) {
if (!$this->existingCatalogue->has($message)) {
continue;
}
$existingMessage = clone $this->existingCatalogue->get($message->getId(), $message->getDomain());
$existingMessage->mergeScanned($message);
$this->scannedCatalogue->set($existingMessage, true);
}
}
if ($this->config->isKeepOldMessages()) {
foreach ($this->existingCatalogue->getDomains() as $domainCatalogue) {
foreach ($domainCatalogue->all() as $message) {
if ($this->scannedCatalogue->has($message)) {
continue;
}
$this->scannedCatalogue->add($message);
}
}
}
//keep old translations translated
if ($this->config->isKeepOldTranslationMessages()) {
$locale = $this->scannedCatalogue->getLocale();
/** @var MessageCatalogue $domainCatalogue */
foreach ($this->scannedCatalogue->getDomains() as $domainCatalogue) {
/** @var Message $message */
foreach ($domainCatalogue->all() as $message) {
$translated = $this->translator->trans($message->getId(), array(), $message->getDomain(), $locale);
$message->setLocaleString($translated);
$message->setNew(false);
}
}
}
}