Skip to content

Commit 36c6d88

Browse files
Update resources/views/docs/mobile/1/the-basics/icu-support.md
Co-authored-by: Eser DENIZ <[email protected]>
1 parent 4ba3bdc commit 36c6d88

File tree

1 file changed

+0
-128
lines changed

1 file changed

+0
-128
lines changed

resources/views/docs/mobile/1/the-basics/icu-support.md

Lines changed: 0 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -96,134 +96,6 @@ $collator = new Collator('en_US');
9696
$result = $collator->compare('apple', 'äpple'); // Proper Unicode comparison
9797
```
9898

99-
## Code Examples
100-
101-
### Number Formatting
102-
103-
```php
104-
use NumberFormatter;
105-
106-
class LocalizedNumbers
107-
{
108-
public function formatCurrency(float $amount, string $locale, string $currency): string
109-
{
110-
if (!extension_loaded('intl')) {
111-
// Fallback for non-ICU builds
112-
return $currency . ' ' . number_format($amount, 2);
113-
}
114-
115-
$formatter = new NumberFormatter($locale, NumberFormatter::CURRENCY);
116-
return $formatter->formatCurrency($amount, $currency);
117-
}
118-
119-
public function formatPercent(float $value, string $locale): string
120-
{
121-
if (!extension_loaded('intl')) {
122-
return number_format($value * 100, 1) . '%';
123-
}
124-
125-
$formatter = new NumberFormatter($locale, NumberFormatter::PERCENT);
126-
return $formatter->format($value);
127-
}
128-
}
129-
130-
// Usage
131-
$numbers = new LocalizedNumbers();
132-
133-
echo $numbers->formatCurrency(1234.56, 'en_US', 'USD'); // $1,234.56
134-
echo $numbers->formatCurrency(1234.56, 'de_DE', 'EUR'); // 1.234,56 €
135-
echo $numbers->formatPercent(0.1234, 'en_US'); // 12.3%
136-
```
137-
138-
### Date Formatting
139-
140-
```php
141-
use IntlDateFormatter;
142-
143-
class LocalizedDates
144-
{
145-
public function formatDate(\DateTime $date, string $locale): string
146-
{
147-
if (!extension_loaded('intl')) {
148-
return $date->format('M j, Y');
149-
}
150-
151-
$formatter = new IntlDateFormatter(
152-
$locale,
153-
IntlDateFormatter::LONG,
154-
IntlDateFormatter::NONE
155-
);
156-
157-
return $formatter->format($date);
158-
}
159-
}
160-
161-
// Usage
162-
$dates = new LocalizedDates();
163-
$date = new DateTime('2024-03-15');
164-
165-
echo $dates->formatDate($date, 'en_US'); // March 15, 2024
166-
echo $dates->formatDate($date, 'de_DE'); // 15. März 2024
167-
echo $dates->formatDate($date, 'ja_JP'); // 2024年3月15日
168-
```
169-
170-
### String Collation
171-
172-
```php
173-
use Collator;
174-
175-
class LocalizedSorting
176-
{
177-
public function sortNames(array $names, string $locale): array
178-
{
179-
if (!extension_loaded('intl')) {
180-
// Simple ASCII sort fallback
181-
sort($names);
182-
return $names;
183-
}
184-
185-
$collator = new Collator($locale);
186-
$collator->sort($names);
187-
return $names;
188-
}
189-
}
190-
191-
// Usage
192-
$sorter = new LocalizedSorting();
193-
$names = ['Müller', 'Mueller', 'Miller', 'Möller'];
194-
195-
$sorted = $sorter->sortNames($names, 'de_DE');
196-
// Proper German sorting with umlauts
197-
```
198-
199-
## Framework Integration
200-
201-
### Laravel Localization
202-
203-
```php
204-
// config/app.php
205-
return [
206-
'locale' => 'en',
207-
'available_locales' => ['en', 'es', 'fr', 'de', 'ja'],
208-
];
209-
210-
// With ICU support, you can use advanced formatters
211-
class LocalizedContent
212-
{
213-
public function getLocalizedPrice(float $price): string
214-
{
215-
$locale = app()->getLocale();
216-
$currency = config('app.currency.' . $locale, 'USD');
217-
218-
if (extension_loaded('intl')) {
219-
$formatter = new NumberFormatter($locale, NumberFormatter::CURRENCY);
220-
return $formatter->formatCurrency($price, $currency);
221-
}
222-
223-
return $currency . ' ' . number_format($price, 2);
224-
}
225-
}
226-
```
22799

228100
## Performance Considerations
229101

0 commit comments

Comments
 (0)