Skip to content

Commit 92cef04

Browse files
committed
Merge branch 'norwegian-translation'
2 parents 01df357 + 1f06648 commit 92cef04

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+1877
-326
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,6 @@ Tevling/storage/
88
# Editor / IDE
99
.vscode/
1010
.idea/
11+
12+
# ResXpress extension
13+
.resxpress

Tevling/Clients/StravaClient.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Net.Http.Headers;
33
using System.Text.Json;
44
using System.Web;
5+
using Microsoft.Extensions.Options;
56
using Tevling.Strava;
67

78
namespace Tevling.Clients;
@@ -14,11 +15,11 @@ public class StravaClient : IStravaClient
1415

1516
public StravaClient(
1617
ILogger<StravaClient> logger,
17-
StravaConfig stravaConfig,
18+
IOptions<StravaConfig> stravaConfig,
1819
HttpClient httpClient)
1920
{
2021
_logger = logger;
21-
_stravaConfig = stravaConfig;
22+
_stravaConfig = stravaConfig.Value;
2223
_httpClient = httpClient;
2324

2425
try
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<root>
3+
<resheader name="resmimetype">
4+
<value>text/microsoft-resx</value>
5+
</resheader>
6+
<resheader name="version">
7+
<value>2.0</value>
8+
</resheader>
9+
<resheader name="reader">
10+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
11+
</resheader>
12+
<resheader name="writer">
13+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
14+
</resheader>
15+
<!--Data-->
16+
<data name="ViewOnStrava" xml:space="preserve">
17+
<value>View on Strava</value>
18+
</data>
19+
<data name="Distance" xml:space="preserve">
20+
<value>Distance</value>
21+
</data>
22+
<data name="Elevation" xml:space="preserve">
23+
<value>Elevation</value>
24+
</data>
25+
<data name="Calories" xml:space="preserve">
26+
<value>Calories</value>
27+
</data>
28+
<data name="Time" xml:space="preserve">
29+
<value>Time</value>
30+
</data>
31+
<data name="Hours" xml:space="preserve">
32+
<value>h</value>
33+
</data>
34+
<data name="Minutes" xml:space="preserve">
35+
<value>m</value>
36+
</data>
37+
<data name="Seconds" xml:space="preserve">
38+
<value>s</value>
39+
</data>
40+
</root>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<root>
3+
<resheader name="resmimetype">
4+
<value>text/microsoft-resx</value>
5+
</resheader>
6+
<resheader name="version">
7+
<value>2.0</value>
8+
</resheader>
9+
<resheader name="reader">
10+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
11+
</resheader>
12+
<resheader name="writer">
13+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
14+
</resheader>
15+
<!--Data-->
16+
<data name="ViewOnStrava" xml:space="preserve">
17+
<value>Vis på Strava</value>
18+
</data>
19+
<data name="Distance" xml:space="preserve">
20+
<value>Distanse</value>
21+
</data>
22+
<data name="Elevation" xml:space="preserve">
23+
<value>Stigning</value>
24+
</data>
25+
<data name="Calories" xml:space="preserve">
26+
<value>Kalorier</value>
27+
</data>
28+
<data name="Time" xml:space="preserve">
29+
<value>Tid</value>
30+
</data>
31+
<data name="Hours" xml:space="preserve">
32+
<value>t</value>
33+
</data>
34+
<data name="Minutes" xml:space="preserve">
35+
<value>m</value>
36+
</data>
37+
<data name="Seconds" xml:space="preserve">
38+
<value>s</value>
39+
</data>
40+
</root>

Tevling/Components/ActivityCard.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</div>
1111
<span class="activity-time">@ActivityTime</span>
1212
<div class="d-flex flex-row align-items-end ms-auto strava-link column-gap-1">
13-
<a target="_blank" href="https://www.strava.com/activities/@Activity.StravaId">View on Strava</a>
13+
<a target="_blank" href="https://www.strava.com/activities/@Activity.StravaId">@Loc["ViewOnStrava"]</a>
1414
<i class="bi bi-box-arrow-up-right pb-1" aria-hidden="true"></i>
1515
</div>
1616
</div>

Tevling/Components/ActivityCard.razor.cs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
using Microsoft.Extensions.Localization;
2+
13
namespace Tevling.Components;
24

35
public partial class ActivityCard : ComponentBase
46
{
57
[Inject] private IBrowserTime BrowserTime { get; set; } = null!;
8+
[Inject] private IStringLocalizer<ActivityCard> Loc { get; set; } = null!;
69

710
[Parameter] public Activity? Activity { get; set; }
811

@@ -16,15 +19,15 @@ private string Stats
1619
if (Activity.Details.DistanceInMeters > 0)
1720
{
1821
float distanceInKm = Activity.Details.DistanceInMeters / 1000;
19-
return $"Distance: {distanceInKm:F1} km";
22+
return $"{Loc["Distance"]}: {distanceInKm:F1} km";
2023
}
2124

2225
if (Activity.Details.TotalElevationGain > 0)
2326
{
24-
return $"Elevation: {Activity.Details.TotalElevationGain} m";
27+
return $"{Loc["Elevation"]}: {Activity.Details.TotalElevationGain} m";
2528
}
2629

27-
return Activity.Details.Calories > 0 ? $"Calories: {Activity.Details.Calories} kcal" : string.Empty;
30+
return Activity.Details.Calories > 0 ? $"{Loc["Calories"]}: {Activity.Details.Calories} kcal" : string.Empty;
2831
}
2932
}
3033

@@ -38,14 +41,14 @@ private string Time
3841
string formattedTime = "";
3942

4043
if (timeSpan.Hours > 0)
41-
formattedTime += $"{timeSpan.Hours}h ";
44+
formattedTime += $"{timeSpan.Hours}{Loc["Hours"]} ";
4245

4346
if (timeSpan.Minutes > 0 || timeSpan.Hours > 0) // Include minutes if there are any hours
44-
formattedTime += $"{timeSpan.Minutes}m ";
47+
formattedTime += $"{timeSpan.Minutes}{Loc["Minutes"]} ";
4548

46-
formattedTime += $"{timeSpan.Seconds}s";
49+
formattedTime += $"{timeSpan.Seconds}{Loc["Seconds"]}";
4750

48-
return $"Time: {formattedTime}";
51+
return $"{Loc["Time"]}: {formattedTime}";
4952
}
5053
}
5154

@@ -55,7 +58,7 @@ protected override async Task OnParametersSetAsync()
5558
if (Activity != null)
5659
{
5760
DateTimeOffset browserTime = await BrowserTime.ConvertToLocal(Activity.Details.StartDate);
58-
ActivityTime = browserTime.ToString("dd.MM.yyyy HH:mm");
61+
ActivityTime = browserTime.DateTime.ToString("G");
5962
}
6063
}
6164
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<root>
3+
<resheader name="resmimetype">
4+
<value>text/microsoft-resx</value>
5+
</resheader>
6+
<resheader name="version">
7+
<value>2.0</value>
8+
</resheader>
9+
<resheader name="reader">
10+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
11+
</resheader>
12+
<resheader name="writer">
13+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
14+
</resheader>
15+
<!--Data-->
16+
<data name="Following" xml:space="preserve">
17+
<value>Following</value>
18+
</data>
19+
<data name="Pending" xml:space="preserve">
20+
<value>Pending</value>
21+
</data>
22+
<data name="Cancel" xml:space="preserve">
23+
<value>Cancel</value>
24+
</data>
25+
<data name="Follow" xml:space="preserve">
26+
<value>Follow</value>
27+
</data>
28+
<data name="Unfollow" xml:space="preserve">
29+
<value>Unfollow</value>
30+
</data>
31+
<data name="ViewOnStrava" xml:space="preserve">
32+
<value>View on Strava</value>
33+
</data>
34+
</root>
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<root>
3+
<resheader name="resmimetype">
4+
<value>text/microsoft-resx</value>
5+
</resheader>
6+
<resheader name="version">
7+
<value>2.0</value>
8+
</resheader>
9+
<resheader name="reader">
10+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
11+
</resheader>
12+
<resheader name="writer">
13+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
14+
</resheader>
15+
<!--Data-->
16+
<data name="Following" xml:space="preserve">
17+
<value>Følger</value>
18+
</data>
19+
<data name="Pending" xml:space="preserve">
20+
<value>Venter på svar</value>
21+
</data>
22+
<data name="Cancel" xml:space="preserve">
23+
<value>Avbryt</value>
24+
</data>
25+
<data name="Follow" xml:space="preserve">
26+
<value>Følg</value>
27+
</data>
28+
<data name="Unfollow" xml:space="preserve">
29+
<value>Slutt å følge</value>
30+
</data>
31+
<data name="ViewOnStrava" xml:space="preserve">
32+
<value>Vis på Strava</value>
33+
</data>
34+
</root>

Tevling/Components/AthleteCard.razor

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
@inject IStringLocalizer<AthleteCard> Loc
2+
13
@if (Athlete is not null)
24
{
35
<div class="athlete-card p-3 d-flex flex-row align-items-center flex-wrap">
@@ -14,7 +16,10 @@
1416
<div class="unfollow-button" @onclick="() => FollowingStatusChanged.InvokeAsync()">
1517
<i class="bi bi-heart-fill" aria-hidden="true"></i>
1618
<span class="unfollow-button-text">
17-
Following
19+
@Loc["Following"]
20+
</span>
21+
<span class="unfollow-button-text-hover">
22+
@Loc["Unfollow"]
1823
</span>
1924
</div>
2025
}
@@ -23,7 +28,10 @@
2328
<div class="unfollow-button" @onclick="() => FollowingStatusChanged.InvokeAsync()">
2429
<i class="bi bi-heart-half" aria-hidden="true"></i>
2530
<span class="unfollow-button-text">
26-
Pending
31+
@Loc["Pending"]
32+
</span>
33+
<span class="unfollow-button-text-hover">
34+
@Loc["Cancel"]
2735
</span>
2836
</div>
2937
}
@@ -32,7 +40,7 @@
3240
<div class="follow-button" @onclick="() => FollowingStatusChanged.InvokeAsync()">
3341
<i class="bi bi-heart" aria-hidden="true"></i>
3442
<span class="follow-button-text">
35-
Follow
43+
@Loc["Follow"]
3644
</span>
3745
</div>
3846
}
@@ -66,7 +74,7 @@
6674
}
6775

6876
<div class="d-flex flex-row align-items-center strava-link column-gap-1">
69-
<a target="_blank" href="https://www.strava.com/athletes/@Athlete.StravaId">View on Strava</a>
77+
<a target="_blank" href="https://www.strava.com/athletes/@Athlete.StravaId">@Loc["ViewOnStrava"]</a>
7078
<i class="bi pb-1 bi-box-arrow-up-right align-self-start" aria-hidden="true"></i>
7179
</div>
7280

Tevling/Components/AthleteCard.razor.css

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@
2727
}
2828

2929
.unfollow-button-text,
30+
.unfollow-button-text-hover,
3031
.unfollow-button:hover::after,
3132
.follow-button-text {
32-
display: none;
33+
display: none !important;
3334
}
3435
}
3536

@@ -71,12 +72,16 @@
7172
content: "\F770";
7273
}
7374

75+
.unfollow-button .unfollow-button-text-hover {
76+
display: none;
77+
}
78+
7479
.unfollow-button:hover .unfollow-button-text {
7580
display: none;
7681
}
7782

78-
.unfollow-button:hover::after {
79-
content: "Unfollow";
83+
.unfollow-button:hover .unfollow-button-text-hover {
84+
display: inline;
8085
}
8186

8287
.follow-button:hover .bi-heart::before {

0 commit comments

Comments
 (0)