Issue #2533746 by Gábor Hojtsy, webflo, tstoeckler, Jose Reyero: Remove the the ability to translate locked date formats (e.g. html_datetime)
parent
ed3bc9bf97
commit
8f028e644e
|
|
@ -421,9 +421,19 @@ core.date_format.*:
|
|||
type: boolean
|
||||
label: 'Locked'
|
||||
pattern:
|
||||
type: date_format
|
||||
type: core_date_format_pattern.[%parent.locked]
|
||||
label: 'PHP date format'
|
||||
|
||||
# Unlocked date formats should use the translatable type.
|
||||
core_date_format_pattern.0:
|
||||
type: date_format
|
||||
label: 'Date format'
|
||||
|
||||
# Locked date formats are just used to transport the value.
|
||||
core_date_format_pattern.1:
|
||||
type: string
|
||||
label: 'Date format'
|
||||
|
||||
# Generic field settings schemas.
|
||||
|
||||
field.storage_settings.*:
|
||||
|
|
|
|||
|
|
@ -282,8 +282,12 @@ class TypedConfigManager extends TypedDataManager implements TypedConfigManagerI
|
|||
return $value;
|
||||
}
|
||||
elseif (!$parts) {
|
||||
$value = $data[$name];
|
||||
if (is_bool($value)) {
|
||||
$value = (int) $value;
|
||||
}
|
||||
// If no more parts left, this is the final property.
|
||||
return (string)$data[$name];
|
||||
return (string) $value;
|
||||
}
|
||||
else {
|
||||
// Get nested value and continue processing.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Contains \Drupal\config_translation\Tests\ConfigTranslationDateFormatUiTest.
|
||||
*/
|
||||
|
||||
namespace Drupal\config_translation\Tests;
|
||||
|
||||
use Drupal\language\Entity\ConfigurableLanguage;
|
||||
use Drupal\simpletest\WebTestBase;
|
||||
|
||||
/**
|
||||
* Tests the content translation behaviours on date formats.
|
||||
*
|
||||
* @group config_translation
|
||||
*/
|
||||
class ConfigTranslationDateFormatUiTest extends WebTestBase {
|
||||
|
||||
public static $modules = array(
|
||||
'language',
|
||||
'config_translation',
|
||||
'system'
|
||||
);
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
// Enable additional languages.
|
||||
$langcodes = ['de', 'es'];
|
||||
foreach ($langcodes as $langcode) {
|
||||
ConfigurableLanguage::createFromLangcode($langcode)->save();
|
||||
}
|
||||
|
||||
$user = $this->drupalCreateUser(array(
|
||||
'administer site configuration',
|
||||
'translate configuration',
|
||||
));
|
||||
$this->drupalLogin($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests date format translation behaviour.
|
||||
*/
|
||||
public function testDateFormatUI() {
|
||||
$this->drupalGet('admin/config/regional/date-time');
|
||||
|
||||
// Assert translation link unlocked date format.
|
||||
$this->assertLinkByHref('admin/config/regional/date-time/formats/manage/medium/translate');
|
||||
|
||||
// Assert translation link locked date format.
|
||||
$this->assertLinkByHref('admin/config/regional/date-time/formats/manage/html_datetime/translate');
|
||||
|
||||
// Date pattern is visible on unlocked date formats.
|
||||
$this->drupalGet('admin/config/regional/date-time/formats/manage/medium/translate/de/add');
|
||||
$this->assertField('translation[config_names][core.date_format.medium][pattern]');
|
||||
|
||||
// Date pattern is not visible on locked date formats.
|
||||
$this->drupalGet('admin/config/regional/date-time/formats/manage/html_datetime/translate/es/add');
|
||||
$this->assertNoField('translation[config_names][core.date_format.html_datetime][pattern]');
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue