diff --git a/apps/files/tests/ActivityTest.php b/apps/files/tests/ActivityTest.php
index e6199013e8158c177830976205b8ec634595fc62..65e914c1a547850202daa75ccbbe0ce0f0f4c809 100644
--- a/apps/files/tests/ActivityTest.php
+++ b/apps/files/tests/ActivityTest.php
@@ -24,6 +24,8 @@
 namespace OCA\Files\Tests;
 
 use OCA\Files\Activity;
+use OCP\IL10N;
+use OCP\L10N\IFactory;
 use Test\TestCase;
 
 /**
@@ -77,12 +79,8 @@ class ActivityTest extends TestCase {
 			$this->config
 		);
 
-		$this->l10nFactory = $this->getMockBuilder('OCP\L10N\IFactory')
-			->disableOriginalConstructor()
-			->getMock();
-		$deL10n = $this->getMockBuilder('OC_L10N')
-			->disableOriginalConstructor()
-			->getMock();
+		$this->l10nFactory = $this->createMock(IFactory::class);
+		$deL10n = $this->createMock(IL10N::class);
 		$deL10n->expects($this->any())
 			->method('t')
 			->willReturnCallback(function ($argument) {
@@ -92,8 +90,8 @@ class ActivityTest extends TestCase {
 		$this->l10nFactory->expects($this->any())
 			->method('get')
 			->willReturnMap([
-				['files', null, new \OC_L10N('files', 'en')],
-				['files', 'en', new \OC_L10N('files', 'en')],
+				['files', null, \OC::$server->getL10N('files', 'en')],
+				['files', 'en', \OC::$server->getL10N('files', 'en')],
 				['files', 'de', $deL10n],
 			]);
 
diff --git a/apps/files/tests/Controller/ViewControllerTest.php b/apps/files/tests/Controller/ViewControllerTest.php
index b4b4bfa92fcfcab4fe40e480c68a49581854e4e0..179aaa373b32d1a5fd622fc89e8061d67af2d384 100644
--- a/apps/files/tests/Controller/ViewControllerTest.php
+++ b/apps/files/tests/Controller/ViewControllerTest.php
@@ -137,7 +137,7 @@ class ViewControllerTest extends TestCase {
 				'appname' => 'files',
 				'script' => 'list.php',
 				'order' => 0,
-				'name' => (string)new \OC_L10N_String(new \OC_L10N('files'), 'All files', []),
+				'name' => \OC::$server->getL10N('files')->t('All files'),
 				'active' => false,
 				'icon' => '',
 			],
@@ -146,7 +146,7 @@ class ViewControllerTest extends TestCase {
 				'appname' => 'files',
 				'script' => 'recentlist.php',
 				'order' => 2,
-				'name' => (string)new \OC_L10N_String(new \OC_L10N('files'), 'Recent', []),
+				'name' => \OC::$server->getL10N('files')->t('Recent'),
 				'active' => false,
 				'icon' => '',
 			],
@@ -164,7 +164,7 @@ class ViewControllerTest extends TestCase {
 				'appname' => 'files_sharing',
 				'script' => 'list.php',
 				'order' => 10,
-				'name' => (string)new \OC_L10N_String(new \OC_L10N('files_sharing'), 'Shared with you', []),
+				'name' => \OC::$server->getL10N('files_sharing')->t('Shared with you'),
 				'active' => false,
 				'icon' => '',
 			],
@@ -173,7 +173,7 @@ class ViewControllerTest extends TestCase {
 				'appname' => 'files_sharing',
 				'script' => 'list.php',
 				'order' => 15,
-				'name' => (string)new \OC_L10N_String(new \OC_L10N('files_sharing'), 'Shared with others', []),
+				'name' => \OC::$server->getL10N('files_sharing')->t('Shared with others'),
 				'active' => false,
 				'icon' => '',
 			],
@@ -182,7 +182,7 @@ class ViewControllerTest extends TestCase {
 				'appname' => 'files_sharing',
 				'script' => 'list.php',
 				'order' => 20,
-				'name' => (string)new \OC_L10N_String(new \OC_L10N('files_sharing'), 'Shared by link', []),
+				'name' => \OC::$server->getL10N('files_sharing')->t('Shared by link', []),
 				'active' => false,
 				'icon' => '',
 			],
@@ -191,7 +191,7 @@ class ViewControllerTest extends TestCase {
 				'appname' => 'systemtags',
 				'script' => 'list.php',
 				'order' => 25,
-				'name' => (string)new \OC_L10N_String(new \OC_L10N('systemtags'), 'Tags', []),
+				'name' => \OC::$server->getL10N('systemtags')->t('Tags'),
 				'active' => false,
 				'icon' => '',
 			],
@@ -200,7 +200,7 @@ class ViewControllerTest extends TestCase {
 				'appname' => 'files_trashbin',
 				'script' => 'list.php',
 				'order' => 50,
-				'name' => (string)new \OC_L10N_String(new \OC_L10N('files_trashbin'), 'Deleted files', []),
+				'name' => \OC::$server->getL10N('files_trashbin')->t('Deleted files'),
 				'active' => false,
 				'icon' => '',
 				],
diff --git a/lib/private/legacy/l10n/string.php b/lib/private/legacy/l10n/string.php
index 3d9d72e06902ad1637db2d57a08447e7628f6686..1410db6d730387744cc2db07b453236d6c636cf4 100644
--- a/lib/private/legacy/l10n/string.php
+++ b/lib/private/legacy/l10n/string.php
@@ -27,7 +27,7 @@
  */
 
 class OC_L10N_String implements JsonSerializable {
-	/** @var \OC_L10N|\OC\L10N\L10N */
+	/** @var \OC\L10N\L10N */
 	protected $l10n;
 
 	/** @var string */
@@ -40,12 +40,12 @@ class OC_L10N_String implements JsonSerializable {
 	protected $count;
 
 	/**
-	 * @param \OC_L10N|\OC\L10N\L10N $l10n
+	 * @param \OC\L10N\L10N $l10n
 	 * @param string|string[] $text
 	 * @param array $parameters
 	 * @param int $count
 	 */
-	public function __construct($l10n, $text, $parameters, $count = 1) {
+	public function __construct(\OC\L10N\L10N $l10n, $text, $parameters, $count = 1) {
 		$this->l10n = $l10n;
 		$this->text = $text;
 		$this->parameters = $parameters;
diff --git a/tests/lib/DateTimeFormatterTest.php b/tests/lib/DateTimeFormatterTest.php
index 0d185128e2735475168c82e6dab910a33e50c710..85884c9bfb4c41f3c15d59f37071f3dfb225a659 100644
--- a/tests/lib/DateTimeFormatterTest.php
+++ b/tests/lib/DateTimeFormatterTest.php
@@ -34,7 +34,7 @@ class DateTimeFormatterTest extends TestCase {
 
 	protected function setUp() {
 		parent::setUp();
-		$this->formatter = new \OC\DateTimeFormatter(new \DateTimeZone('UTC'), new \OC_L10N('lib', 'en'));
+		$this->formatter = new \OC\DateTimeFormatter(new \DateTimeZone('UTC'), \OC::$server->getL10N('lib', 'en'));
 	}
 
 	protected function getTimestampAgo($time, $seconds = 0, $minutes = 0, $hours = 0, $days = 0, $years = 0) {
@@ -43,7 +43,7 @@ class DateTimeFormatterTest extends TestCase {
 
 	public function formatTimeSpanData() {
 		$time = 1416916800; // Use a fixed timestamp so we don't switch days/years with the getTimestampAgo
-		$deL10N = new \OC_L10N('lib', 'de');
+		$deL10N = \OC::$server->getL10N('lib', 'de');
 		return array(
 			array('seconds ago',	$time, $time),
 			array('1 minute ago',	$this->getTimestampAgo($time, 30, 1), $time),
@@ -81,7 +81,7 @@ class DateTimeFormatterTest extends TestCase {
 
 	public function formatDateSpanData() {
 		$time = 1416916800; // Use a fixed timestamp so we don't switch days/years with the getTimestampAgo
-		$deL10N = new \OC_L10N('lib', 'de');
+		$deL10N = \OC::$server->getL10N('lib', 'de');
 		return array(
 			// Normal testing
 			array('today',			$this->getTimestampAgo($time, 30, 15), $time),
diff --git a/tests/lib/L10N/L10nLegacyTest.php b/tests/lib/L10N/L10nLegacyTest.php
deleted file mode 100644
index 71b4e21f1a12af25ed82a6bdaf9863a1d90e3053..0000000000000000000000000000000000000000
--- a/tests/lib/L10N/L10nLegacyTest.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-/**
- * Copyright (c) 2013 Thomas Müller <thomas.mueller@tmit.eu>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
- */
-
-namespace Test\L10N;
-
-
-use OC_L10N;
-use DateTime;
-
-/**
- * Class Test_L10n
- */
-class L10nLegacyTest extends \Test\TestCase {
-
-	public function testGermanPluralTranslations() {
-		$l = new OC_L10N('test');
-		$transFile = \OC::$SERVERROOT.'/tests/data/l10n/de.json';
-
-		$l->load($transFile);
-		$this->assertEquals('1 Datei', (string)$l->n('%n file', '%n files', 1));
-		$this->assertEquals('2 Dateien', (string)$l->n('%n file', '%n files', 2));
-	}
-
-	public function testRussianPluralTranslations() {
-		$l = new OC_L10N('test');
-		$transFile = \OC::$SERVERROOT.'/tests/data/l10n/ru.json';
-
-		$l->load($transFile);
-		$this->assertEquals('1 файл', (string)$l->n('%n file', '%n files', 1));
-		$this->assertEquals('2 файла', (string)$l->n('%n file', '%n files', 2));
-		$this->assertEquals('6 файлов', (string)$l->n('%n file', '%n files', 6));
-		$this->assertEquals('21 файл', (string)$l->n('%n file', '%n files', 21));
-		$this->assertEquals('22 файла', (string)$l->n('%n file', '%n files', 22));
-		$this->assertEquals('26 файлов', (string)$l->n('%n file', '%n files', 26));
-
-		/*
-		  1 file	1 файл	1 папка
-		2-4 files	2-4 файла	2-4 папки
-		5-20 files	5-20 файлов	5-20 папок
-		21 files	21 файл	21 папка
-		22-24 files	22-24 файла	22-24 папки
-		25-30 files	25-30 файлов	25-30 папок
-		etc
-		100 files	100 файлов,	100 папок
-		1000 files	1000 файлов	1000 папок
-		*/
-	}
-
-	public function testCzechPluralTranslations() {
-		$l = new OC_L10N('test');
-		$transFile = \OC::$SERVERROOT.'/tests/data/l10n/cs.json';
-
-		$l->load($transFile);
-		$this->assertEquals('1 okno', (string)$l->n('%n window', '%n windows', 1));
-		$this->assertEquals('2 okna', (string)$l->n('%n window', '%n windows', 2));
-		$this->assertEquals('5 oken', (string)$l->n('%n window', '%n windows', 5));
-	}
-
-	public function localizationDataProvider() {
-		return array(
-			// timestamp as string
-			array('February 13, 2009 at 11:31:30 PM GMT+0', 'en', 'datetime', '1234567890'),
-			array('13. Februar 2009 um 23:31:30 GMT+0', 'de', 'datetime', '1234567890'),
-			array('February 13, 2009', 'en', 'date', '1234567890'),
-			array('13. Februar 2009', 'de', 'date', '1234567890'),
-			array('11:31:30 PM GMT+0', 'en', 'time', '1234567890'),
-			array('23:31:30 GMT+0', 'de', 'time', '1234567890'),
-
-			// timestamp as int
-			array('February 13, 2009 at 11:31:30 PM GMT+0', 'en', 'datetime', 1234567890),
-			array('13. Februar 2009 um 23:31:30 GMT+0', 'de', 'datetime', 1234567890),
-			array('February 13, 2009', 'en', 'date', 1234567890),
-			array('13. Februar 2009', 'de', 'date', 1234567890),
-			array('11:31:30 PM GMT+0', 'en', 'time', 1234567890),
-			array('23:31:30 GMT+0', 'de', 'time', 1234567890),
-
-			// DateTime object
-			array('February 13, 2009 at 11:31:30 PM GMT+0', 'en', 'datetime', new DateTime('@1234567890')),
-			array('13. Februar 2009 um 23:31:30 GMT+0', 'de', 'datetime', new DateTime('@1234567890')),
-			array('February 13, 2009', 'en', 'date', new DateTime('@1234567890')),
-			array('13. Februar 2009', 'de', 'date', new DateTime('@1234567890')),
-			array('11:31:30 PM GMT+0', 'en', 'time', new DateTime('@1234567890')),
-			array('23:31:30 GMT+0', 'de', 'time', new DateTime('@1234567890')),
-
-			// en_GB
-			array('13 February 2009 at 23:31:30 GMT+0', 'en_GB', 'datetime', new DateTime('@1234567890')),
-			array('13 February 2009', 'en_GB', 'date', new DateTime('@1234567890')),
-			array('23:31:30 GMT+0', 'en_GB', 'time', new DateTime('@1234567890')),
-			array('13 February 2009 at 23:31:30 GMT+0', 'en-GB', 'datetime', new DateTime('@1234567890')),
-			array('13 February 2009', 'en-GB', 'date', new DateTime('@1234567890')),
-			array('23:31:30 GMT+0', 'en-GB', 'time', new DateTime('@1234567890')),
-		);
-	}
-
-	/**
-	 * @dataProvider localizationDataProvider
-	 */
-	public function testNumericStringLocalization($expectedDate, $lang, $type, $value) {
-		$l = new OC_L10N('test', $lang);
-		$this->assertSame($expectedDate, $l->l($type, $value));
-	}
-
-	public function firstDayDataProvider() {
-		return array(
-			array(1, 'de'),
-			array(0, 'en'),
-		);
-	}
-
-	/**
-	 * @dataProvider firstDayDataProvider
-	 * @param $expected
-	 * @param $lang
-	 */
-	public function testFirstWeekDay($expected, $lang) {
-		$l = new OC_L10N('test', $lang);
-		$this->assertSame($expected, $l->l('firstday', 'firstday'));
-	}
-
-	public function testFactoryGetLanguageCode() {
-		$factory = new \OC\L10N\Factory(
-			$this->getMockBuilder('OCP\IConfig')->getMock(),
-			$this->getMockBuilder('OCP\IRequest')->getMock(),
-			$this->getMockBuilder('OCP\IUserSession')->getMock(),
-			\OC::$SERVERROOT);
-		$l = $factory->get('lib', 'de');
-		$this->assertEquals('de', $l->getLanguageCode());
-	}
-
-	public function testServiceGetLanguageCode() {
-		$l = \OC::$server->getL10N('lib', 'de');
-		$this->assertEquals('de', $l->getLanguageCode());
-	}
-}
diff --git a/tests/lib/UtilTest.php b/tests/lib/UtilTest.php
index a1671191ab8846faa9dc1323cdc95eae819d47ed..60e50f750ea336a2ce7e39461699f1593e98f602 100644
--- a/tests/lib/UtilTest.php
+++ b/tests/lib/UtilTest.php
@@ -91,7 +91,7 @@ class UtilTest extends \Test\TestCase {
 
 		$selectedTimeZone = \OC::$server->getDateTimeZone()->getTimeZone(1350129205);
 		$this->assertEquals($expectedTimeZone, $selectedTimeZone->getName());
-		$newDateTimeFormatter = new \OC\DateTimeFormatter($selectedTimeZone, new \OC_L10N('lib', 'en'));
+		$newDateTimeFormatter = new \OC\DateTimeFormatter($selectedTimeZone, \OC::$server->getL10N('lib', 'en'));
 		$this->overwriteService('DateTimeFormatter', $newDateTimeFormatter);
 
 		$result = OC_Util::formatDate(1350129205, false);