protected function updateLocation($string) { if ($locations =
$string->
getLocations(TRUE
)) { $created = FALSE;
foreach ($locations as $type =>
$location) { foreach ($location as $name =>
$lid) { // Make sure that the name isn't longer than 255 characters.
$name =
substr($name, 0, 255
);
if (!
$lid) { $this->
dbDelete('locales_location',
['sid' =>
$string->
getId(), 'type' =>
$type, 'name' =>
$name]) ->
execute();
} elseif ($lid === TRUE
) { // This is a new location to add, take care not to duplicate.
$this->connection->
merge('locales_location',
$this->options
) ->
keys(['sid' =>
$string->
getId(), 'type' =>
$type, 'name' =>
$name]) ->
fields(['version' => \Drupal::VERSION
]) ->
execute();
$created = TRUE;
} // Loaded locations have 'lid' integer value, nor FALSE, nor TRUE.