diff --git a/app/src/fdroid/java/com/cg/lrceditor/AboutActivity.java b/app/src/fdroid/java/com/cg/lrceditor/AboutActivity.java
index abf35a3..bb99885 100644
--- a/app/src/fdroid/java/com/cg/lrceditor/AboutActivity.java
+++ b/app/src/fdroid/java/com/cg/lrceditor/AboutActivity.java
@@ -24,7 +24,7 @@ public class AboutActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences preferences = getSharedPreferences("LRC Editor Preferences", MODE_PRIVATE);
- String theme = preferences.getString("current_theme", "light");
+ String theme = preferences.getString(Constants.THEME_PREFERENCE, "light");
if (theme.equals("dark")) {
isDarkTheme = true;
setTheme(R.style.AppThemeDark);
diff --git a/app/src/fdroid/res/values-de/strings.xml b/app/src/fdroid/res/values-de/strings.xml
index 96a1c4d..cd75628 100644
--- a/app/src/fdroid/res/values-de/strings.xml
+++ b/app/src/fdroid/res/values-de/strings.xml
@@ -1,3 +1,3 @@
Sehen Sie sich die App auf F-Droid an
-
\ No newline at end of file
+
diff --git a/app/src/fdroid/res/values-in/strings.xml b/app/src/fdroid/res/values-in/strings.xml
index 61bbab5..51cd9ac 100644
--- a/app/src/fdroid/res/values-in/strings.xml
+++ b/app/src/fdroid/res/values-in/strings.xml
@@ -1,3 +1,3 @@
Lihat aplikasi di F-Droid
-
\ No newline at end of file
+
diff --git a/app/src/fdroid/res/values-pl/strings.xml b/app/src/fdroid/res/values-pl/strings.xml
index 7e5c273..c3faca5 100644
--- a/app/src/fdroid/res/values-pl/strings.xml
+++ b/app/src/fdroid/res/values-pl/strings.xml
@@ -1,3 +1,3 @@
Wyświetl aplikację na F-Droid
-
\ No newline at end of file
+
diff --git a/app/src/fdroid/res/values-pt-rBR/strings.xml b/app/src/fdroid/res/values-pt-rBR/strings.xml
index 0da4faa..0a8f8c4 100644
--- a/app/src/fdroid/res/values-pt-rBR/strings.xml
+++ b/app/src/fdroid/res/values-pt-rBR/strings.xml
@@ -1,3 +1,3 @@
Ver a aplicação no F-Droid
-
\ No newline at end of file
+
diff --git a/app/src/fdroid/res/values-zh-rTW/strings.xml b/app/src/fdroid/res/values-zh-rTW/strings.xml
index e5538e2..3682dd4 100644
--- a/app/src/fdroid/res/values-zh-rTW/strings.xml
+++ b/app/src/fdroid/res/values-zh-rTW/strings.xml
@@ -1,3 +1,3 @@
在F-Droid上查看应用
-
\ No newline at end of file
+
diff --git a/app/src/fdroid/res/values/strings.xml b/app/src/fdroid/res/values/strings.xml
index 6109fbc..ced628c 100644
--- a/app/src/fdroid/res/values/strings.xml
+++ b/app/src/fdroid/res/values/strings.xml
@@ -1,3 +1,3 @@
View the app on F-Droid
-
\ No newline at end of file
+
diff --git a/app/src/main/java/com/cg/lrceditor/Constants.java b/app/src/main/java/com/cg/lrceditor/Constants.java
index 24cac7e..1d4d829 100644
--- a/app/src/main/java/com/cg/lrceditor/Constants.java
+++ b/app/src/main/java/com/cg/lrceditor/Constants.java
@@ -11,4 +11,11 @@ class Constants {
static final long MAX_TIMESTAMP_VALUE = Timestamp.MAX_TIMESTAMP_VALUE;
static final String defaultLocation = Environment.getExternalStorageDirectory().getPath() + "/Lyrics";
+
+ static final String READ_LOCATION_PREFERENCE = "readLocation";
+ static final String SAVE_LOCATION_PREFERENCE = "saveLocation";
+ static final String TIMESTAMP_STEP_AMOUNT_PREFERENCE = "timestamp_step_amount";
+ static final String THREE_DIGIT_MILLISECONDS_PREFERENCE = "three_digit_milliseconds";
+ static final String THEME_PREFERENCE = "current_theme";
+ static final String PURCHASED_PREFERENCE = "lrceditor_purchased";
}
diff --git a/app/src/main/java/com/cg/lrceditor/CreateActivity.java b/app/src/main/java/com/cg/lrceditor/CreateActivity.java
index 3918068..f71b697 100644
--- a/app/src/main/java/com/cg/lrceditor/CreateActivity.java
+++ b/app/src/main/java/com/cg/lrceditor/CreateActivity.java
@@ -20,7 +20,7 @@ public class CreateActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences preferences = getSharedPreferences("LRC Editor Preferences", MODE_PRIVATE);
- String theme = preferences.getString("current_theme", "light");
+ String theme = preferences.getString(Constants.THEME_PREFERENCE, "light");
if (theme.equals("dark")) {
isDarkTheme = true;
setTheme(R.style.AppThemeDark);
diff --git a/app/src/main/java/com/cg/lrceditor/EditorActivity.java b/app/src/main/java/com/cg/lrceditor/EditorActivity.java
index 1909e19..ba7bbfc 100644
--- a/app/src/main/java/com/cg/lrceditor/EditorActivity.java
+++ b/app/src/main/java/com/cg/lrceditor/EditorActivity.java
@@ -73,7 +73,7 @@ public class EditorActivity extends AppCompatActivity implements LyricListAdapte
private Uri songUri = null;
private String songFileName = null;
- private SongMetaData songMetaData = null;
+ private Metadata metadata = null;
private LyricItem[] clipboard = null;
@@ -86,6 +86,7 @@ public class EditorActivity extends AppCompatActivity implements LyricListAdapte
private MediaSession mediaSession;
private float currentPlayerSpeed;
private float currentPlayerPitch;
+ private int timestampAdjustStep;
private Handler songTimeUpdater = new Handler();
private SeekBar seekbar;
@@ -105,7 +106,7 @@ public class EditorActivity extends AppCompatActivity implements LyricListAdapte
@Override
public void run() {
if (!isPlaying) {
- flasher.postDelayed(this, 30);
+ flasher.postDelayed(this, 35);
return;
}
@@ -113,7 +114,7 @@ public void run() {
int last = linearLayoutManager.findLastVisibleItemPosition();
if (first == -1 || last == -1) {
- flasher.postDelayed(this, 30);
+ flasher.postDelayed(this, 35);
return;
}
@@ -139,7 +140,7 @@ public void run() {
}
}
- flasher.postDelayed(this, 30);
+ flasher.postDelayed(this, 35);
}
};
@@ -156,9 +157,9 @@ public void run() {
Timestamp timestamp = adapter.lyricData.get(longPressedPos).getTimestamp();
if (longPressed == 1) {
- timestamp.alterTimestamp(100);
+ timestamp.alterTimestamp(timestampAdjustStep);
} else if (longPressed == -1) {
- timestamp.alterTimestamp(-100);
+ timestamp.alterTimestamp(-timestampAdjustStep);
}
long time = timestamp.toMilliseconds();
@@ -191,7 +192,7 @@ public void run() {
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences preferences = getSharedPreferences("LRC Editor Preferences", MODE_PRIVATE);
- String theme = preferences.getString("current_theme", "light");
+ String theme = preferences.getString(Constants.THEME_PREFERENCE, "light");
if (theme.equals("dark")) {
isDarkTheme = true;
setTheme(R.style.AppThemeDark);
@@ -216,6 +217,8 @@ protected void onCreate(Bundle savedInstanceState) {
e.printStackTrace();
}
+ timestampAdjustStep = preferences.getInt(Constants.TIMESTAMP_STEP_AMOUNT_PREFERENCE, 100);
+
swipeRefreshLayout = findViewById(R.id.swiperefresh);
swipeRefreshLayout.setEnabled(false);
@@ -254,7 +257,7 @@ protected void onCreate(Bundle savedInstanceState) {
Timestamp[] timestamps = r.getTimestamps();
ArrayList lyricData = populateDataSet(lyrics, timestamps, false);
- songMetaData = r.getSongMetaData();
+ metadata = r.getMetadata();
lrcFileName = FileUtil.getFileName(ctx, intent.getData());
adapter = new LyricListAdapter(ctx, lyricData, isDarkTheme);
@@ -277,7 +280,7 @@ protected void onCreate(Bundle savedInstanceState) {
lyricData = populateDataSet(lyrics, timestamps, false);
}
- songMetaData = (SongMetaData) intent.getSerializableExtra("SONG METADATA");
+ metadata = (Metadata) intent.getSerializableExtra("METADATA");
lrcFileName = intent.getStringExtra("LRC FILE NAME");
adapter = new LyricListAdapter(this, lyricData, isDarkTheme);
@@ -491,7 +494,7 @@ public void onIncreaseTimeClick(int position) {
longPressedPos = -1;
Timestamp timestamp = adapter.lyricData.get(position).getTimestamp();
- timestamp.alterTimestamp(100);
+ timestamp.alterTimestamp(timestampAdjustStep);
adapter.notifyItemChanged(position);
changedData = true;
@@ -522,7 +525,7 @@ public void onDecreaseTimeClick(int position) {
longPressedPos = -1;
Timestamp timestamp = adapter.lyricData.get(position).getTimestamp();
- timestamp.alterTimestamp(-100);
+ timestamp.alterTimestamp(-timestampAdjustStep);
adapter.notifyItemChanged(position);
changedData = true;
@@ -1216,10 +1219,12 @@ private void insertLyrics(final String[] lyrics, int optionMode) {
}
private void batchEditLyrics() {
-
LayoutInflater inflater = this.getLayoutInflater();
- final View view = inflater.inflate(R.layout.dialog_batch_edit, null);
- final TextView batchTimestamp = view.findViewById(R.id.batch_item_time);
+ final View view = inflater.inflate(R.layout.dialog_adjust, null);
+ final TextView batchTitle = view.findViewById(R.id.title);
+ batchTitle.setText(R.string.batch_edit_prompt);
+ final TextView batchTimestamp = view.findViewById(R.id.content);
+ batchTimestamp.setText("+00:00.00");
final Timestamp timestamp = new Timestamp("00:00.00");
@@ -1237,22 +1242,25 @@ public void run() {
if (longPressed[0] != 0) {
if (longPressed[0] == 1) {
- if (batchTimeNegative[0])
- timestamp.alterTimestamp(-100);
- else
- timestamp.alterTimestamp(100);
+ if (batchTimeNegative[0]) {
+ timestamp.alterTimestamp(-timestampAdjustStep);
+ } else {
+ timestamp.alterTimestamp(timestampAdjustStep);
+ }
if (batchTimeNegative[0] && timestamp.toMilliseconds() <= 0) {
batchTimeNegative[0] = false;
}
} else {
- if (!batchTimeNegative[0] && timestamp.toMilliseconds() - 100 < 0)
+ if (!batchTimeNegative[0] && timestamp.toMilliseconds() - timestampAdjustStep < 0) {
batchTimeNegative[0] = true;
+ }
- if (batchTimeNegative[0])
- timestamp.alterTimestamp(100);
- else
- timestamp.alterTimestamp(-100);
+ if (batchTimeNegative[0]) {
+ timestamp.alterTimestamp(timestampAdjustStep);
+ } else {
+ timestamp.alterTimestamp(-timestampAdjustStep);
+ }
}
if (!batchTimeNegative[0]) {
@@ -1269,16 +1277,17 @@ public void run() {
};
- ImageButton increase = view.findViewById(R.id.batch_increase_time_button);
+ ImageButton increase = view.findViewById(R.id.increase_button);
if (isDarkTheme) {
increase.setImageDrawable(getDrawable(R.drawable.ic_add_light));
}
increase.setOnClickListener(v -> {
- if (batchTimeNegative[0])
- timestamp.alterTimestamp(-100);
- else
- timestamp.alterTimestamp(100);
+ if (batchTimeNegative[0]) {
+ timestamp.alterTimestamp(-timestampAdjustStep);
+ } else {
+ timestamp.alterTimestamp(timestampAdjustStep);
+ }
if (batchTimeNegative[0] && timestamp.toMilliseconds() <= 0) {
batchTimeNegative[0] = false;
@@ -1304,19 +1313,21 @@ public void run() {
return false;
});
- ImageButton decrease = view.findViewById(R.id.batch_decrease_time_button);
+ ImageButton decrease = view.findViewById(R.id.decrease_button);
if (isDarkTheme) {
decrease.setImageDrawable(getDrawable(R.drawable.ic_minus_light));
}
decrease.setOnClickListener(v -> {
- if (!batchTimeNegative[0] && timestamp.toMilliseconds() - 100 < 0)
+ if (!batchTimeNegative[0] && timestamp.toMilliseconds() - timestampAdjustStep < 0) {
batchTimeNegative[0] = true;
+ }
- if (batchTimeNegative[0])
- timestamp.alterTimestamp(100);
- else
- timestamp.alterTimestamp(-100);
+ if (batchTimeNegative[0]) {
+ timestamp.alterTimestamp(timestampAdjustStep);
+ } else {
+ timestamp.alterTimestamp(-timestampAdjustStep);
+ }
if (!batchTimeNegative[0]) {
batchTimestamp.setText(
@@ -1338,7 +1349,7 @@ public void run() {
return false;
});
- AlertDialog dialog = new AlertDialog.Builder(this)
+ new AlertDialog.Builder(this)
.setView(view)
.setTitle(R.string.batch_edit)
.setPositiveButton(getString(R.string.adjust), (dialog1, which) -> {
@@ -1358,9 +1369,8 @@ public void run() {
})
.setNegativeButton(getString(R.string.cancel), (dialog12, which) -> longPressed[0] = 0)
.setCancelable(false)
- .create();
-
- dialog.show();
+ .create()
+ .show();
}
private void displayPlaybackOptions() {
@@ -1480,7 +1490,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
Intent intent = new Intent(this, FinalizeActivity.class);
intent.putExtra("LYRIC DATA", (ArrayList) adapter.lyricData);
intent.putExtra("SONG URI", songUri);
- intent.putExtra("SONG METADATA", songMetaData);
+ intent.putExtra("METADATA", metadata);
intent.putExtra("SONG FILE NAME", songFileName);
intent.putExtra("LRC FILE NAME", lrcFileName);
diff --git a/app/src/main/java/com/cg/lrceditor/FinalizeActivity.java b/app/src/main/java/com/cg/lrceditor/FinalizeActivity.java
index a09517b..8ff87a7 100644
--- a/app/src/main/java/com/cg/lrceditor/FinalizeActivity.java
+++ b/app/src/main/java/com/cg/lrceditor/FinalizeActivity.java
@@ -50,6 +50,7 @@ public class FinalizeActivity extends AppCompatActivity {
private EditText artistName;
private EditText albumName;
private EditText composerName;
+ private EditText creatorName;
private TextView statusTextView;
@@ -84,7 +85,7 @@ public static void hideKeyboard(Activity activity) {
@Override
protected void onResume() {
super.onResume();
- saveLocation = preferences.getString("saveLocation", Constants.defaultLocation);
+ saveLocation = preferences.getString(Constants.SAVE_LOCATION_PREFERENCE, Constants.defaultLocation);
String uriString = preferences.getString("saveUri", null);
if (uriString != null)
saveUri = Uri.parse(uriString);
@@ -93,13 +94,13 @@ protected void onResume() {
((TextView) dialogView.findViewById(R.id.save_location_display)).setText(getString(R.string.save_location_displayer, saveLocation));
}
- useThreeDigitMilliseconds = preferences.getBoolean("three_digit_milliseconds", false);
+ useThreeDigitMilliseconds = preferences.getBoolean(Constants.THREE_DIGIT_MILLISECONDS_PREFERENCE, false);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
preferences = getSharedPreferences("LRC Editor Preferences", MODE_PRIVATE);
- String theme = preferences.getString("current_theme", "light");
+ String theme = preferences.getString(Constants.THEME_PREFERENCE, "light");
if (theme.equals("dark")) {
isDarkTheme = true;
setTheme(R.style.AppThemeDark);
@@ -113,7 +114,7 @@ protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
lyricData = (ArrayList) intent.getSerializableExtra("LYRIC DATA");
- SongMetaData songMetaData = (SongMetaData) intent.getSerializableExtra("SONG METADATA");
+ Metadata metadata = (Metadata) intent.getSerializableExtra("METADATA");
Uri songUri = intent.getParcelableExtra("SONG URI");
lrcFileName = intent.getStringExtra("LRC FILE NAME");
songFileName = intent.getStringExtra("SONG FILE NAME");
@@ -122,6 +123,7 @@ protected void onCreate(Bundle savedInstanceState) {
artistName = findViewById(R.id.artistName_edittext);
albumName = findViewById(R.id.albumName_edittext);
composerName = findViewById(R.id.composer_edittext);
+ creatorName = findViewById(R.id.creatorName_edittext);
statusTextView = findViewById(R.id.status_textview);
statusTextView.setMovementMethod(new ScrollingMovementMethod());
@@ -141,15 +143,18 @@ protected void onCreate(Bundle savedInstanceState) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) /* Marshmallow onwards require runtime permissions */
grantPermission();
- if (songMetaData != null) {
- if (!songMetaData.getSongName().isEmpty())
- songName.setText(songMetaData.getSongName());
- if (!songMetaData.getArtistName().isEmpty())
- artistName.setText(songMetaData.getArtistName());
- if (!songMetaData.getAlbumName().isEmpty())
- albumName.setText(songMetaData.getAlbumName());
- if (!songMetaData.getComposerName().isEmpty())
- composerName.setText(songMetaData.getComposerName());
+ if (metadata != null) {
+ if (!metadata.getSongName().isEmpty())
+ songName.setText(metadata.getSongName());
+ if (!metadata.getArtistName().isEmpty())
+ artistName.setText(metadata.getArtistName());
+ if (!metadata.getAlbumName().isEmpty())
+ albumName.setText(metadata.getAlbumName());
+ if (!metadata.getComposerName().isEmpty())
+ composerName.setText(metadata.getComposerName());
+ if (!metadata.getCreatorName().isEmpty()) {
+ creatorName.setText(metadata.getCreatorName());
+ }
}
if (songUri != null) {
@@ -354,6 +359,9 @@ private String lyricsToString(boolean useThreeDigitMilliseconds) {
str = composerName.getText().toString().trim();
if (!str.isEmpty())
sb.append("[au: ").append(str).append("]\n");
+ str = creatorName.getText().toString().trim();
+ if (!str.isEmpty())
+ sb.append("[by: ").append(str).append("]\n");
sb.append("\n")
.append("[re: ").append(getString(R.string.app_name)).append(" - Android app").append("]\n")
diff --git a/app/src/main/java/com/cg/lrceditor/HomePage.java b/app/src/main/java/com/cg/lrceditor/HomePage.java
index 9bd7473..4ec549c 100644
--- a/app/src/main/java/com/cg/lrceditor/HomePage.java
+++ b/app/src/main/java/com/cg/lrceditor/HomePage.java
@@ -67,7 +67,7 @@ public class HomePage extends AppCompatActivity implements HomePageListAdapter.L
@Override
protected void onCreate(Bundle savedInstanceState) {
preferences = getSharedPreferences("LRC Editor Preferences", MODE_PRIVATE);
- String theme = preferences.getString("current_theme", "light");
+ String theme = preferences.getString(Constants.THEME_PREFERENCE, "light");
currentTheme = theme;
if (theme.equals("dark")) {
isDarkTheme = true;
@@ -128,7 +128,7 @@ protected void onCreate(Bundle savedInstanceState) {
startActivity(intent);
});
- readLocation = preferences.getString("readLocation", Constants.defaultLocation);
+ readLocation = preferences.getString(Constants.READ_LOCATION_PREFERENCE, Constants.defaultLocation);
actionModeCallback = new ActionModeCallback();
@@ -139,13 +139,13 @@ protected void onCreate(Bundle savedInstanceState) {
protected void onResume() {
super.onResume();
- String theme = preferences.getString("current_theme", "light");
+ String theme = preferences.getString(Constants.THEME_PREFERENCE, "light");
if (!theme.equals(currentTheme)) {
recreate();
}
String oldReadLocation = readLocation;
- readLocation = preferences.getString("readLocation", Constants.defaultLocation);
+ readLocation = preferences.getString(Constants.READ_LOCATION_PREFERENCE, Constants.defaultLocation);
String uriString = preferences.getString("readUri", null);
if (uriString != null) {
readUri = Uri.parse(uriString);
@@ -312,7 +312,7 @@ private void showReadLocationResetDialog(File scanLocation) {
.setPositiveButton(getString(R.string.yes), (dialog, which) -> {
SharedPreferences.Editor editor = preferences.edit();
- editor.putString("readLocation", Constants.defaultLocation);
+ editor.putString(Constants.READ_LOCATION_PREFERENCE, Constants.defaultLocation);
editor.apply();
readLocation = Constants.defaultLocation;
@@ -550,7 +550,7 @@ public void fileSelected(String fileLocation, final String fileName) {
Intent intent = new Intent(getApplicationContext(), EditorActivity.class);
intent.putExtra("LYRICS", r.getLyrics());
intent.putExtra("TIMESTAMPS", r.getTimestamps());
- intent.putExtra("SONG METADATA", r.getSongMetaData());
+ intent.putExtra("METADATA", r.getMetadata());
intent.putExtra("LRC FILE NAME", fileName);
startActivity(intent);
diff --git a/app/src/main/java/com/cg/lrceditor/HomePageListAdapter.java b/app/src/main/java/com/cg/lrceditor/HomePageListAdapter.java
index 98bf5d5..7186a83 100644
--- a/app/src/main/java/com/cg/lrceditor/HomePageListAdapter.java
+++ b/app/src/main/java/com/cg/lrceditor/HomePageListAdapter.java
@@ -57,8 +57,8 @@ public void onBindViewHolder(@NonNull LyricFileListItem holder, int position) {
holder.subView.setVisibility(View.VISIBLE);
holder.expandableButton.setRotation(180);
- if (listData.get(position).songMetaData != null) {
- displaySongMetaData(holder, listData.get(position).songMetaData);
+ if (listData.get(position).metadata != null) {
+ displayMetaData(holder, listData.get(position).metadata);
displayLyricContents(holder, listData.get(position).lyrics);
}
} else {
@@ -77,7 +77,7 @@ private void applyClickEvents(final LyricFileListItem holder) {
HomePageListItem item = listData.get(holder.getAdapterPosition());
if (item.isExpanded) {
item.isExpanded = false;
- item.songMetaData = null;
+ item.metadata = null;
item.lyrics = null;
holder.expandableButton.animate().rotation(0).setDuration(300).start();
} else {
@@ -111,7 +111,7 @@ private void previewLrcFileContents(final LyricFileListItem holder, final View v
String[] msg = new String[1];
msg[0] = errorMsg;
- listData.get(holder.getAdapterPosition()).songMetaData = new SongMetaData();
+ listData.get(holder.getAdapterPosition()).metadata = new Metadata();
listData.get(holder.getAdapterPosition()).lyrics = msg;
});
return;
@@ -139,41 +139,46 @@ private void previewLrcFileContents(final LyricFileListItem holder, final View v
}
}
- final SongMetaData songMetaData = r.getSongMetaData();
+ final Metadata metadata = r.getMetadata();
- listData.get(holder.getAdapterPosition()).songMetaData = songMetaData;
+ listData.get(holder.getAdapterPosition()).metadata = metadata;
listData.get(holder.getAdapterPosition()).lyrics = lyricsToDisplay;
view.post(() -> {
- displaySongMetaData(holder, songMetaData);
+ displayMetaData(holder, metadata);
displayLyricContents(holder, lyricsToDisplay);
});
}).start();
}
- private void displaySongMetaData(LyricFileListItem holder, SongMetaData songMetaData) {
+ private void displayMetaData(LyricFileListItem holder, Metadata metadata) {
Context ctx = holder.linearLayout.getContext();
String string;
- string = songMetaData.getSongName();
+ string = metadata.getSongName();
if (string.trim().isEmpty())
string = "N/A";
holder.songName.setText(String.format(Locale.getDefault(), "%s %s", ctx.getString(R.string.song_name_prompt), string));
- string = songMetaData.getArtistName();
+ string = metadata.getArtistName();
if (string.trim().isEmpty())
string = "N/A";
holder.artistName.setText(String.format(Locale.getDefault(), "%s %s", ctx.getString(R.string.artist_name_prompt), string));
- string = songMetaData.getAlbumName();
+ string = metadata.getAlbumName();
if (string.trim().isEmpty())
string = "N/A";
holder.albumName.setText(String.format(Locale.getDefault(), "%s %s", ctx.getString(R.string.album_name_prompt), string));
- string = songMetaData.getComposerName();
+ string = metadata.getComposerName();
if (string.trim().isEmpty())
string = "N/A";
holder.composerName.setText(String.format(Locale.getDefault(), "%s %s", ctx.getString(R.string.composer_prompt), string));
+
+ string = metadata.getCreatorName();
+ if (string.trim().isEmpty())
+ string = "N/A";
+ holder.creatorName.setText(String.format(Locale.getDefault(), "%s %s", ctx.getString(R.string.creator_name_prompt), string));
}
private void displayLyricContents(LyricFileListItem holder, String[] lyricsToDisplay) {
@@ -190,6 +195,7 @@ private void clearExpandedData(LyricFileListItem holder) {
holder.artistName.setText(ctx.getString(R.string.artist_name_prompt));
holder.albumName.setText(ctx.getString(R.string.album_name_prompt));
holder.composerName.setText(ctx.getString(R.string.composer_prompt));
+ holder.creatorName.setText(ctx.getString(R.string.creator_name_prompt));
holder.lyricsTextview.setText(ctx.getString(R.string.loading_lyrics));
}
@@ -218,7 +224,7 @@ void clearExpandedItems() {
HomePageListItem item = listData.get(i);
if (item.isExpanded) {
item.isExpanded = false;
- item.songMetaData = null;
+ item.metadata = null;
item.lyrics = null;
notifyItemChanged(i);
}
@@ -313,6 +319,7 @@ class LyricFileListItem extends RecyclerView.ViewHolder {
private TextView albumName;
private TextView artistName;
private TextView composerName;
+ private TextView creatorName;
private TextView lyricsTextview;
@@ -337,6 +344,7 @@ class LyricFileListItem extends RecyclerView.ViewHolder {
artistName = itemView.findViewById(R.id.artistname_textview);
albumName = itemView.findViewById(R.id.albumname_textview);
composerName = itemView.findViewById(R.id.composername_textview);
+ creatorName = itemView.findViewById(R.id.creatorname_textview);
lyricsTextview = itemView.findViewById(R.id.lyrics_textview);
diff --git a/app/src/main/java/com/cg/lrceditor/HomePageListItem.java b/app/src/main/java/com/cg/lrceditor/HomePageListItem.java
index 5ee6e13..b21d0b3 100644
--- a/app/src/main/java/com/cg/lrceditor/HomePageListItem.java
+++ b/app/src/main/java/com/cg/lrceditor/HomePageListItem.java
@@ -5,13 +5,13 @@
public class HomePageListItem {
public File file;
public String[] lyrics;
- SongMetaData songMetaData;
+ Metadata metadata;
boolean isExpanded = false;
boolean isSelected = false;
- HomePageListItem(File file, SongMetaData songMetaData, String[] lyrics) {
+ HomePageListItem(File file, Metadata metadata, String[] lyrics) {
this.file = file;
- this.songMetaData = songMetaData;
+ this.metadata = metadata;
this.lyrics = lyrics;
}
}
diff --git a/app/src/main/java/com/cg/lrceditor/LyricReader.java b/app/src/main/java/com/cg/lrceditor/LyricReader.java
index 8dd4098..cc139d8 100644
--- a/app/src/main/java/com/cg/lrceditor/LyricReader.java
+++ b/app/src/main/java/com/cg/lrceditor/LyricReader.java
@@ -17,19 +17,15 @@
import java.util.List;
public class LyricReader {
-
private LyricItem[] lyricData;
-
- private SongMetaData songMetaData = new SongMetaData();
-
- private String errorMsg;
+ private Metadata metadata = new Metadata();
private File file = null;
+ private InputStream in = null;
+ private String errorMsg;
private Context ctx;
- private InputStream in = null;
-
LyricReader(String path, String fileName, Context c) {
this.file = new File(path, fileName);
this.ctx = c;
@@ -99,26 +95,28 @@ boolean readLyrics() {
extras++;
}
timestamps.add(temp.substring(1, 9));
- } else if (temp.length() >= 4) {
- String str = temp.substring(4, temp.length() - 1).trim();
- if (songMetaData.getSongName().isEmpty() && temp.matches("^\\[ti:.*]$")) {
- songMetaData.setSongName(str);
- } else if (songMetaData.getArtistName().isEmpty() && temp.matches("^\\[ar:.*]$")) {
- songMetaData.setArtistName(str);
- } else if (songMetaData.getAlbumName().isEmpty() && temp.matches("^\\[al:.*]$")) {
- songMetaData.setAlbumName(str);
- } else if (songMetaData.getComposerName().isEmpty() && temp.matches("^\\[au:.*]$")) {
- songMetaData.setComposerName(str);
- } else if (offset == 0 && temp.matches("^\\[offset:.*]$")) {
- try {
- offset = Integer.parseInt(temp.substring(8, temp.length() - 1).trim());
- } catch (NumberFormatException e) { // Ignore the offset if we couldn't scan it
- e.printStackTrace();
+ } else {
+ if (temp.length() > 4) {
+ String str = temp.substring(4, temp.length() - 1).trim();
+ if (metadata.getSongName().isEmpty() && temp.matches("^\\[ti:.*]$")) {
+ metadata.setSongName(str);
+ } else if (metadata.getArtistName().isEmpty() && temp.matches("^\\[ar:.*]$")) {
+ metadata.setArtistName(str);
+ } else if (metadata.getAlbumName().isEmpty() && temp.matches("^\\[al:.*]$")) {
+ metadata.setAlbumName(str);
+ } else if (metadata.getComposerName().isEmpty() && temp.matches("^\\[au:.*]$")) {
+ metadata.setComposerName(str);
+ } else if (metadata.getCreatorName().isEmpty() && temp.matches("^\\[by:.*]$")) {
+ metadata.setCreatorName(str);
+ } else if (offset == 0 && temp.matches("^\\[offset:.*]$")) {
+ try {
+ offset = Integer.parseInt(temp.substring(8, temp.length() - 1).trim());
+ } catch (NumberFormatException e) { // Ignore the offset if we couldn't scan it
+ e.printStackTrace();
+ }
}
}
-
- break;
- } else {
+
break;
}
}
@@ -190,8 +188,8 @@ String getErrorMsg() {
return errorMsg;
}
- SongMetaData getSongMetaData() {
- return songMetaData;
+ Metadata getMetadata() {
+ return metadata;
}
static class LyricTimestampComparator implements Comparator {
diff --git a/app/src/main/java/com/cg/lrceditor/SongMetaData.java b/app/src/main/java/com/cg/lrceditor/Metadata.java
similarity index 76%
rename from app/src/main/java/com/cg/lrceditor/SongMetaData.java
rename to app/src/main/java/com/cg/lrceditor/Metadata.java
index 88d1ae2..68117f8 100644
--- a/app/src/main/java/com/cg/lrceditor/SongMetaData.java
+++ b/app/src/main/java/com/cg/lrceditor/Metadata.java
@@ -2,11 +2,12 @@
import java.io.Serializable;
-class SongMetaData implements Serializable {
+class Metadata implements Serializable {
private String artistName = "";
private String albumName = "";
private String songName = "";
private String composerName = "";
+ private String creatorName = "";
String getSongName() {
return this.songName;
@@ -39,4 +40,12 @@ String getComposerName() {
void setComposerName(String composerName) {
this.composerName = composerName;
}
+
+ String getCreatorName() {
+ return this.creatorName;
+ }
+
+ void setCreatorName(String creatorName) {
+ this.creatorName = creatorName;
+ }
}
diff --git a/app/src/main/java/com/cg/lrceditor/SettingsActivity.java b/app/src/main/java/com/cg/lrceditor/SettingsActivity.java
index 88e9b7c..a6ee2aa 100644
--- a/app/src/main/java/com/cg/lrceditor/SettingsActivity.java
+++ b/app/src/main/java/com/cg/lrceditor/SettingsActivity.java
@@ -6,8 +6,10 @@
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
+import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
+import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Switch;
@@ -18,10 +20,13 @@
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
+import java.util.Locale;
+
public class SettingsActivity extends AppCompatActivity {
private TextView saveLocation;
private TextView readLocation;
+ private TextView timestampStep;
private Switch threeDigitMillisecondsSwitch;
private RadioButton light, dark, darker;
@@ -33,7 +38,7 @@ public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
preferences = getSharedPreferences("LRC Editor Preferences", MODE_PRIVATE);
- String theme = preferences.getString("current_theme", "light");
+ String theme = preferences.getString(Constants.THEME_PREFERENCE, "light");
if (theme.equals("dark")) {
isDarkTheme = true;
setTheme(R.style.AppThemeDark);
@@ -60,11 +65,15 @@ protected void onCreate(Bundle savedInstanceState) {
saveLocation = findViewById(R.id.save_location);
readLocation = findViewById(R.id.read_location);
+ timestampStep = findViewById(R.id.timestamp_step);
+ timestampStep.setText(
+ String.format(Locale.getDefault(), "%d ms", preferences.getInt(Constants.TIMESTAMP_STEP_AMOUNT_PREFERENCE, 100)));
+
threeDigitMillisecondsSwitch = findViewById(R.id.three_digit_milliseconds_switch);
- threeDigitMillisecondsSwitch.setChecked(preferences.getBoolean("three_digit_milliseconds", false));
+ threeDigitMillisecondsSwitch.setChecked(preferences.getBoolean(Constants.THREE_DIGIT_MILLISECONDS_PREFERENCE, false));
threeDigitMillisecondsSwitch.setOnCheckedChangeListener((compoundButton, checked) -> {
SharedPreferences.Editor editor = preferences.edit();
- editor.putBoolean("three_digit_milliseconds", checked);
+ editor.putBoolean(Constants.THREE_DIGIT_MILLISECONDS_PREFERENCE, checked);
editor.apply();
});
@@ -92,11 +101,11 @@ protected void onCreate(Bundle savedInstanceState) {
SharedPreferences.Editor editor = preferences.edit();
if (checkedId == light.getId()) {
- editor.putString("current_theme", "light");
+ editor.putString(Constants.THEME_PREFERENCE, "light");
} else if (checkedId == dark.getId()) {
- editor.putString("current_theme", "dark");
+ editor.putString(Constants.THEME_PREFERENCE, "dark");
} else if (checkedId == darker.getId()) {
- editor.putString("current_theme", "darker");
+ editor.putString(Constants.THEME_PREFERENCE, "darker");
} else {
Toast.makeText(getApplicationContext(), getString(R.string.unexpected_error_message), Toast.LENGTH_SHORT).show();
return;
@@ -107,12 +116,12 @@ protected void onCreate(Bundle savedInstanceState) {
recreate();
});
- String location = preferences.getString("saveLocation", Constants.defaultLocation);
+ String location = preferences.getString(Constants.SAVE_LOCATION_PREFERENCE, Constants.defaultLocation);
saveLocation.setText(location);
- location = preferences.getString("readLocation", Constants.defaultLocation);
+ location = preferences.getString(Constants.READ_LOCATION_PREFERENCE, Constants.defaultLocation);
readLocation.setText(location);
- if (preferences.getString("lrceditor_purchased", "").equals("Y")) {
+ if (preferences.getString(Constants.PURCHASED_PREFERENCE, "").equals("Y")) {
TextView themeTitle = findViewById(R.id.theme_title);
themeGroup = findViewById(R.id.theme_group);
@@ -145,9 +154,59 @@ public void changeSaveLocation(View view) {
}
}
- public void showThreeDigitMillisecondsHelp(View view) {
+ public void adjustTimestampStep(View v) {
+ LayoutInflater inflater = this.getLayoutInflater();
+ final View view = inflater.inflate(R.layout.dialog_adjust, null);
+ final TextView title = view.findViewById(R.id.title);
+ title.setVisibility(View.GONE);
+ final TextView timestamp = view.findViewById(R.id.content);
+ timestamp.setText(
+ String.format(Locale.getDefault(), "%d ms", preferences.getInt(Constants.TIMESTAMP_STEP_AMOUNT_PREFERENCE, 100)));
+
+ ImageButton increase = view.findViewById(R.id.increase_button);
+ increase.setOnClickListener(view1 -> {
+ String timestampStepVal = timestamp.getText().toString();
+ int value = Integer.parseInt(timestampStepVal.substring(0, timestampStepVal.length() - 3));
+ value += 10;
+ value = Math.min(value, 200);
+
+ timestamp.setText(
+ String.format(Locale.getDefault(), "%d ms", value));
+ });
+
+ ImageButton decrease = view.findViewById(R.id.decrease_button);
+ decrease.setOnClickListener(view1 -> {
+ String timestampStepVal = timestamp.getText().toString();
+ int value = Integer.parseInt(timestampStepVal.substring(0, timestampStepVal.length() - 3));
+ value -= 10;
+ value = Math.max(value, 10);
+
+ timestamp.setText(
+ String.format(Locale.getDefault(), "%d ms", value));
+ });
+
new AlertDialog.Builder(this)
- .setMessage(R.string.three_digit_milliseconds_help)
+ .setView(view)
+ .setTitle(R.string.timestamp_step_amount_prompt)
+ .setPositiveButton(getString(R.string.adjust), (dialog1, which) -> {
+ String timestampStepVal = timestamp.getText().toString();
+ int value = Integer.parseInt(timestampStepVal.substring(0, timestampStepVal.length() - 3));
+
+ SharedPreferences.Editor editor = preferences.edit();
+ editor.putInt(Constants.TIMESTAMP_STEP_AMOUNT_PREFERENCE, value);
+ editor.apply();
+
+ timestampStep.setText(timestampStepVal);
+ })
+ .setNegativeButton(getString(R.string.cancel), null)
+ .setCancelable(false)
+ .create()
+ .show();
+ }
+
+ public void showTimestampStepHelp(View view) {
+ new AlertDialog.Builder(this)
+ .setMessage(R.string.timestamp_step_help)
.setNeutralButton(getString(R.string.ok), null)
.create()
.show();
@@ -157,6 +216,14 @@ public void toggleThreeDigitMillisecondSwitch(View view) {
threeDigitMillisecondsSwitch.toggle();
}
+ public void showThreeDigitMillisecondsHelp(View view) {
+ new AlertDialog.Builder(this)
+ .setMessage(R.string.three_digit_milliseconds_help)
+ .setNeutralButton(getString(R.string.ok), null)
+ .create()
+ .show();
+ }
+
@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
super.onActivityResult(requestCode, resultCode, resultData);
@@ -169,7 +236,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent resultData)
String realPath = FileUtil.getFullPathFromTreeUri(uri, this);
- editor.putString("saveLocation", realPath);
+ editor.putString(Constants.SAVE_LOCATION_PREFERENCE, realPath);
try {
editor.putString("saveUri", uri.toString());
} catch (ArrayIndexOutOfBoundsException ignored) {
@@ -198,7 +265,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent resultData)
String realPath = FileUtil.getFullPathFromTreeUri(uri, this);
- editor.putString("readLocation", realPath);
+ editor.putString(Constants.READ_LOCATION_PREFERENCE, realPath);
try {
editor.putString("readUri", uri.toString());
} catch (ArrayIndexOutOfBoundsException ignored) {
diff --git a/app/src/main/res/layout/activity_finalize.xml b/app/src/main/res/layout/activity_finalize.xml
index 91424b1..699449c 100644
--- a/app/src/main/res/layout/activity_finalize.xml
+++ b/app/src/main/res/layout/activity_finalize.xml
@@ -134,6 +134,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- Fehlgeschlagen\nKeine LRC-Dateien gefunden
- Liste aktualisieren
- Liste durchsuchenÜber
- Einstellungen
- Alle auswählen
- Ausgewählte Dateien löschen
- Ausgewählte Datei umbenennen
- Neuen Dateinamen eingeben:
- Neuer Dateiname
- Bearbeiten
- Lade Lyrics...
- Erweiterbarer Knopf-Bild
- Eine andere Aktion läuft noch. Bitte warte, bis diese fertig ist
+ Knopf, um einen Zeitstempel einzufügen
+ Anpassen
+ Albumtitel
+ Albumtitel: Eine andere Aktion läuft noch. Liste konnte nicht aktualisiert werden
- Suche nach LRC-Dateien im angegebenen Suchverzeichnis (sowie dessen Unterverzeichnissen)
- Keine LRC-Dateien gefunden
-
- %1$s LRC-Datei gefunden
- %1$s LRC-Dateien gefunden
-
- Durchsuchung abgebrochen
- Durchsuchung fehlgeschlagen! Versuche, das Suchverzeichnis zu ändern
- Bitte sende mir einen Fehlerbericht mit so vielen Details wie nur möglich
- Konnte den Adapter vom Recyclerview nicht erreichen
- Bitte stelle sicher, dass du der App alle nötigen Berechtigungen erteilt hast
- Das Suchverzeichnis existiert nicht. Konnte keinen Ordner unter %1$s anlegen. Möchtest du das Standard-Suchverzeichnis wieder als Suchverzeichnis einstellen?
- Ja
- Nein
- Der LRC Editor könnte vielleicht nicht wie erwartet funktionieren; Versuche, das Suchverzeichnis in den Einstellungen zu ändern
- Suchverzeichnis existiert nicht. Erstellen eines \"Lyrics\"-Ordners ebenfalls nicht möglich. Versuche, das Suchverzeichnis zu ändern
- Fehler: Speicher nicht verfügbar/überlastet
- Diese App benötigt die Berechtigung, auf deinen Speicher zuzugreifen, um die LRC-Dateien zu lesen, zu bearbeiten oder zu speichern
- Berechtigungen erforderlich
- OK
- Der LRC Editor kann LRC-Dateien ohne Speicherzugriff nicht lesen/bearbeiten/speichern
- Konnte das Suchobjekt nicht initialisieren
+ Eine andere Aktion läuft noch. Bitte warte, bis diese fertig ist
+ Interpret
+ Interpret:
+ Versuche, die alte Datei zu überschreiben
+ Zeitstempel versetzen
+ Gib an, wie weit die Zeitstempel der ausgewählten Zeilen versetzt werden sollen
+ Abbruch
+ Die Datei kann ohne Speicherzugriff nicht gespeichert werden!
+ Ändern
+ Komponist
+ Komponist: Bist du dir sicher?
+ Zeile in die Zwischenablage kopiert
+ Kopierfehler ⎘
+ Der Fehler wurde erfolgreich in die Zwischenablage kopiert!
+ LRC-Dateiinhalt kopieren ⎘
+ Der LRC-Dateiinhalt wurde erfolgreich in die Zwischenablage kopiert!
+ Der Text aus der Datei konnte nicht analysiert werden. Prüfe, ob die LRC-Datei korrekt formatiert ist
+ Erstellen
+ LRC Gestalter
+ LRC Gestalter:
+ Dunkel
+ Sehr dunkel
+ Knopf, um den Zeitstempel zu verringern
+ EntfernenMöchtest du wirklich die ausgewählten LRC Dateien löschen?
- Löschvorgang... Je nachdem, wie weit die Dateien vom Suchverzeichnis entfernt gespeichert sind, kann dies länger dauernAlle/Manche der ausgewählten Dateien konnten nicht gelöscht werden
+ Was soll entfernt werden?Ausgewählte LRC-Dateien erfolgreich gelöscht
- Umbenennen
- Datei wird umbenannt... Je nachdem, wie weit die Datei vom Suchverzeichnis entfernt gespeichert ist, kann dies länger dauern
- Dateiname existiert bereits. Es wird möglicherweise ein Präfix angehangen
- Umbenennen erfolgreich!
- Umbenennen fehlgeschlagen!
- Abbruch
- Konnte \"UI element references\" nicht erreichen. Versuche, die Liste zu aktualisieren
-
- Erstellen
- Gib/Füge die Lyrics hier ein:
- Du hast keinen Text eingegeben/eingefügt
+ Gesamte Zeile inklusive Zeitstempel entfernen
+ Nur Zeitstempel entfernen
+ Löschvorgang... Je nachdem, wie weit die Dateien vom Suchverzeichnis entfernt gespeichert sind, kann dies länger dauern
+ Verwendest du Android 5.0+? Versuche \"DocumentsUI\" in den Systemeinstellungen zu aktivierenFertig
-
+ BearbeitenEditor
- Musiktitel auswählen
- Lade Player...
- Bereite den Player vor...
- Ein unerwarteter Fehler trat beim Versuch, den Titel zu verwenden, auf
- Knopf, um 5 Sekunden zurück zu springen
- Knopf, um 5 Sekunden vor zu springen
- Knopf, um die Musik zu pausieren/fortsetzen
- Gib an, wie weit die Zeitstempel der ausgewählten Zeilen versetzt werden sollen
- Zeitstempel versetzen
- Zeile bearbeiten
- Ausgewählte Zeile(n) löschen
- Zeile hinzufügen
- Ausgewählte Zeile(n) kopieren
- Einfügen
- Kopierte Zeile(n) vor ausgewählter einfügen
- Kopierte Zeile(n) nach ausgewählter einfügen
- Zeile einschieben
- Zeile vor ausgewählter einschieben
- Zeile nach ausgewählter einschieben
- Zeitstempel manuell setzen
- Player erweitern/minimieren
- PlaybackoptionenZeitstempel eingeben
- Bearbeitete/Neue Zeile eingeben:
- Bearbeitete Zeile
- Anwenden
- Einzuschiebenden Text eingeben:\n
- Einfügen
- Knopf, um diese Zeile abzuspielen
- Knopf, um einen Zeitstempel einzufügen
- Knopf, um den Zeitstempel zu verringern
- Knopf, um den Zeitstempel zu vergrößern
- Zeitstempel, die größer als 99:59:999 sind, werden momentan nicht unterstützt.
- Player nicht bereit
- Für diese Zeile existiert kein Zeitstempel
+ Ein fehler trat beim Lesen der Datei auf!
+ Erweiterbarer Knopf-Bild
+ Konnte Tags der Datei nicht lesen
+ Konnte den Adapter vom Recyclerview nicht erreichen
+ Abrufen des Zwischenablagedienstes fehlgeschlagen!Unerwarteter Fehler: Dauer der Datei konnte nicht festgestellt werden.
+ Konnte das Suchobjekt nicht initialisieren
+ Konnte die Verzeichnisauswahl nicht öffnen!Öffnen des Dialogfelds zur Dateiauswahl fehlgeschlagen; Bist du dir sicher, dass du Android KitKat (4.4) oder höher verwendest?
- Zeile in die Zwischenablage kopiert
- Festlegen
- Unzulässige Zeit
- Sekunden müssen unter 60 sein
- Nur Zeitstempel entfernen
- Gesamte Zeile inklusive Zeitstempel entfernen
- Was soll entfernt werden?
- Entfernen
- Zeitstempel versetzen
- Anpassen
- Achtung
- Alle ungespeicherten Daten gehen verloren. Möchtest du wirklich zurück gehen?
+ Fehler beim Öffnen eines Eingabestreams, um Daten aus der Datei zu lesen!
+ Datei konnte nicht überschrieben werden; Dem Dateinamen wird ein Suffix beigefügt
+ Durchsuchung fehlgeschlagen! Versuche, das Suchverzeichnis zu ändern
+ Konnte abgespielte Tonhöhe nicht anpassen
+ Konnte Abspielgeschwindigkeit nicht anpassen
+ Gib dein Feedback/deinen Fehlerbericht hier ein
+ Dateiname existiert bereits. Es wird möglicherweise ein Präfix angehangen
+ Dateiname
+ Abzuspeichernder Dateiname:
+ Datei nicht gefunden!
+ Finalisierung
+ Knopf, um 5 Sekunden vor zu springen
+ Fehler beim Analysieren der Pfadposition. Das Lesen könnte Probleme haben
+ Fehler beim Analysieren der Pfadposition. Das Speichern kann Probleme haben
+ Zur App beitragen:\nhttps://github.com/Spikatrix/LRC-EditorVerlassen
- Weiter bearbeiten
- Geschwindigkeit: %1$d%%
- Tonhöhe: %1$d%%
+ Alle ungespeicherten Daten gehen verloren. Möchtest du wirklich zurück gehen?
+ Knopf, um den Zeitstempel zu vergrößern
+ Einfügen
+ Einzuschiebenden Text eingeben:\n
+ Unzulässige Zeit
+ Zeitstempel, die größer als 99:59:999 sind, werden momentan nicht unterstützt.
+ Hell
+ Lade Lyrics...
+ Der LRC Editor könnte vielleicht nicht wie erwartet funktionieren; Versuche, das Suchverzeichnis in den Einstellungen zu ändern
+ \nGemacht mit ♥\n(und ganz viel Code :p)\n
+ Bearbeitete Zeile
+ Bearbeitete/Neue Zeile eingeben:
+ Anwenden
+ Berechtigungen erforderlich
+ Neuer Dateiname
+ Neuen Dateinamen eingeben:
+ Nein
+ Keine LRC-Dateien gefunden
+ Du hast keinen Text eingegeben/eingefügt
+ Der LRC Editor kann LRC-Dateien ohne Speicherzugriff nicht lesen/bearbeiten/speichern
+ Konnte die Berechtigung lesen Beschreiben nicht erhalten
+ Konnte die Berechtigung zum Beschreiben nicht erhalten
+ Für diese Zeile existiert kein Zeitstempel
+ OK
+ Die Datei \"%1$s.lrc\" existiert bereits unter %2$s. Möchtest du sie überschreiben?
+ Gib/Füge die Lyrics hier ein:
+ Bitte stelle sicher, dass du der App alle nötigen Berechtigungen erteilt hast
+ Knopf, um die Musik zu pausieren/fortsetzen
+ Knopf, um diese Zeile abzuspielenPlaybackoptionen werden nur auf Android Marshmallow (6.0) und darüber unterstützt
+ Tonhöhe: %1$d%%
+ Geschwindigkeit: %1$d%%
+ Player nicht bereitDateiplayer Playbackoptionen
- Konnte Abspielgeschwindigkeit nicht anpassen
- Konnte abgespielte Tonhöhe nicht anpassen
-
- Finalisierung
- Liedtitel:
- Liedtitel
- Albumtitel:
- Albumtitel
- Interpret:
- Interpret
- Komponist:
- Komponist
+ Bereite den Player vor...
+ Knopf, um 5 Sekunden zurück zu springenIn Bearbeitung
- Konnte Tags der Datei nicht lesen
- Die Datei \"%1$s.lrc\" existiert bereits unter %2$s. Möchtest du sie überschreiben?
- Versuche, die alte Datei zu überschreiben
- Datei konnte nicht überschrieben werden; Dem Dateinamen wird ein Suffix beigefügt
- Lyrics werden in die Datei geschrieben
- Whoops! Ein Fehler ist aufgetreten!
- Die Datei wurde erfolgreich unter %1$s gespeichert!
- Die Datei kann ohne Speicherzugriff nicht gespeichert werden!
- Abrufen des Zwischenablagedienstes fehlgeschlagen!
- Der LRC-Dateiinhalt wurde erfolgreich in die Zwischenablage kopiert!
- Der Fehler wurde erfolgreich in die Zwischenablage kopiert!
- Konnte die Berechtigung zum Beschreiben nicht erhalten
- Verzeichnis zum Speichern von Dateien
- Speicherverzeichnis: %1$s
- Ändern
- Abzuspeichernder Dateiname:
- Dateiname
- Gleich dem Namen der Musikdatei
- Gleich dem Namen der LRC-Datei
- LRC-Dateiinhalt kopieren ⎘
- Kopierfehler ⎘
- Speichern
-
- \nGemacht mit ♥\n(und ganz viel Code :p)\nIch alleine habe diese App gemacht und pflege sie.\nBewerte doch die App und lass hilfreiches Feedback da!\n\n\nDanke!\n♥
- Feedback senden
- Gib dein Feedback/deinen Fehlerbericht hier ein
-
Verzeichnis zum Suchen nach DateienUnterverzeichnisse werden ebenfalls durchsucht
- Thema auswählen:
- Hell
- Dunkel
- Sehr dunkel
- Ein unerwarteter Fehler ist aufgetreten
+ Das Suchverzeichnis existiert nicht. Konnte keinen Ordner unter %1$s anlegen. Möchtest du das Standard-Suchverzeichnis wieder als Suchverzeichnis einstellen?
+ Suchverzeichnis existiert nicht. Erstellen eines \"Lyrics\"-Ordners ebenfalls nicht möglich. Versuche, das Suchverzeichnis zu ändern
+ Umbenennen
+ Umbenennen fehlgeschlagen!
+ Umbenennen erfolgreich!
+ Datei wird umbenannt... Je nachdem, wie weit die Datei vom Suchverzeichnis entfernt gespeichert ist, kann dies länger dauernStarte die App neu, wenn das Thema nicht übernommen wird
- Zeitstempel mit dreistelligen Millisekunden speichern
+ Speichern
+ Verzeichnis zum Speichern von Dateien
+ Speicherverzeichnis: %1$s
+ Die Datei wurde erfolgreich unter %1$s gespeichert!
+ Durchsuchung abgebrochen
+
+ %1$s LRC-Datei gefunden
+ %1$s LRC-Dateien gefunden
+
+ Suche nach LRC-Dateien im angegebenen Suchverzeichnis (sowie dessen Unterverzeichnissen)
+ Sekunden müssen unter 60 sein
+ Thema auswählen:
+ Bitte sende mir einen Fehlerbericht mit so vielen Details wie nur möglich
+ Feedback senden
+ Festlegen
+ Gleich dem Namen der LRC-Datei
+ Gleich dem Namen der Musikdatei
+ Lade Player...
+ Einstellungen
+ Liedtitel
+ Liedtitel:
+ Weiter bearbeiten
+ Diese App benötigt die Berechtigung, auf deinen Speicher zuzugreifen, um die LRC-Dateien zu lesen, zu bearbeiten oder zu speichern
+ Fehler: Speicher nicht verfügbar/überlastet
+ Musiktitel auswählen
+ Fehlgeschlagen\nKeine LRC-Dateien gefundenDas Speichern mit dreistelligen Millisekunden kann für Anwendungen nützlich sein, die LRC-Dateien mit dreistelligen Millisekunden-Zeitstempeln anstelle von zweistelligen Millisekunden-Zeitstempeln erwarten
- Konnte die Verzeichnisauswahl nicht öffnen!
- Verwendest du Android 5.0+? Versuche \"DocumentsUI\" in den Systemeinstellungen zu aktivieren
- Zur App beitragen:\nhttps://github.com/Spikatrix/LRC-Editor
- Fehler beim Analysieren der Pfadposition. Das Lesen könnte Probleme haben
- Fehler beim Analysieren der Pfadposition. Das Speichern kann Probleme haben
-
- Datei nicht gefunden!
- Fehler beim Öffnen eines Eingabestreams, um Daten aus der Datei zu lesen!
- Der Text aus der Datei konnte nicht analysiert werden. Prüfe, ob die LRC-Datei korrekt formatiert ist
- Ein fehler trat beim Lesen der Datei auf!
- Konnte die Berechtigung lesen Beschreiben nicht erhalten
-
\ No newline at end of file
+ Zeitstempel mit dreistelligen Millisekunden speichern
+ Schrittlänge des Zeitstempels
+ Zeitstempel werden im Editor um diese Millisekunden angepasst. Beachten Sie, dass im Editor nur die beiden wichtigsten Stellen der Millisekunden angezeigt werden
+ Ein unerwarteter Fehler trat beim Versuch, den Titel zu verwenden, auf
+ Zeile hinzufügen
+ Zeitstempel versetzen
+ Player erweitern/minimieren
+ Ausgewählte Zeile(n) kopieren
+ Ausgewählte Dateien löschen
+ Ausgewählte Zeile(n) löschen
+ Zeile bearbeiten
+ Zeile nach ausgewählter einschieben
+ Zeile vor ausgewählter einschieben
+ Zeile einschieben
+ Zeitstempel manuell setzen
+ Kopierte Zeile(n) nach ausgewählter einfügen
+ Kopierte Zeile(n) vor ausgewählter einfügen
+ Einfügen
+ Playbackoptionen
+ Liste aktualisieren
+ Ausgewählte Datei umbenennen
+ Liste durchsuchen
+ Alle auswählen
+ Konnte \"UI element references\" nicht erreichen. Versuche, die Liste zu aktualisieren
+ Ein unerwarteter Fehler ist aufgetreten
+ Achtung
+ Whoops! Ein Fehler ist aufgetreten!
+ Lyrics werden in die Datei geschrieben
+ Ja
+
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index d179a6a..3ae345d 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -2,177 +2,175 @@
- Meleset\nTak ditemukan berkas lirik
- Segarkan daftar
- Telusuri daftarTentang
- Pengaturan
- Pilih semua
- Hapus berkas lirik
- Ubah nama berkas lirik
- Masukkan nama berkas yang baru:
- Namai berkas yang baru di sini
- Edit
- Memuat lirik...
- Gambar tombol yang dapat diperbesar
- Operasi yang lain sedang berjalan. Mohon menunggu hingga selesai
+ Tombol tambahkan cap waktu
+ Sesuaikan
+ Masukkan judul album di sini
+ Judul album: Operasi yang lain sedang berjalan. Tak dapat menyegarkan daftar
- Memindai berkas LRC pada lokasi yang ditentukan (termasuk sub-direktori)
- Tak ditemukan berkas LRC
-
- Telah memindai %1$s berkas LRC
- Telah memindai %1$s berkas LRC
-
- Pemindaian dibatalkan
- Gagal memindai lirik! Coba ubah lokasi pemindaian
- Mohon kirimkan laporan kesalahan serinci mungkin
- Gagal mengambil adapter peninjau-daur ulang
- Pastikan izin sudah diberikan
- Lokasi tidak ada. Mencoba membuat folder di %1$s namun gagal. Apakah Anda ingin mengembalikan lokasi bawaan folder ke semula?
- Ya
- Tidak
- LRC Editor mungkin tidak akan berjalan seperti yang diharapkan; Coba ubah lokasi pemindaian dari Pengaturan
- Lokasi pemindaian tidak ada. Turut gagal membuat folder \'Lyrics\'. Coba ubah lokasi pemindaian
- Kesalahan: Penyimpanan tidak tersedia/sibuk
- Aplikasi ini memerlukan izin penyimpanan untuk membaca dan menyimpan berkas lirik
- Membutuhkan perizinan
- OK
- LRC Editor tak dapat membaca/menyimpan berkas lirik tanpa izin penyimpanan
- Gagal merintis item menu penelusuran
+ Operasi yang lain sedang berjalan. Mohon menunggu hingga selesai
+ Masukkan nama artis di sini
+ Nama artis:
+ Mencoba menimpa berkas sebelumnya
+ Edit Tumpak
+ Penyeimbang untuk cap waktu lirik terpilih
+ Batal
+ Tak dapat menyimpan berkas tanpa perizinan penyimpanan
+ Ubah
+ Masukkan nama komposer/penyusun di sini
+ Komposer: Konfirmasi
+ Lirik tersalin ke papan klip internal
+ Gagal menyalin ⎘
+ Riwayat kesalahan tersalin dengan sukses ke Papan Klip Sistem!
+ Salin konten LRC ⎘
+ Data berkas LRC sudah tersalin dengan sukses ke Papan Klip Sistem!
+ Gagal menguraikan lirik dari berkas. Periksa apakah format berkas LRC tersebut sudah benar
+ Membuat
+ Masukkan judul LRC pencipta di sini
+ LRC pencipta:
+ Gelap
+ Sangat Gelap
+ Tombol kurangi cap waktu
+ HapusApa Anda yakin ingin menghapus berkas LRC yang dipilih?
- Menghapus... Ini mungkin akan memakan waktu tergantung dari jauhnya lokasi berkas tersebutGagal menghapus beberapa/semua berkas LRC!
+ Pilih mana yang ingin Anda hapusBerkas LRC terpilih sudah terhapus
- Ubah Nama
- Mengubah nama... Ini mungkin akan memakan waktu tergantung dari jauhnya lokasi berkas tersebut
- Nama berkas sudah ada. Akan ditambahkan awalan
- Berkas berhasil diubah nama
- Gagal mengubah nama!
- Batal
- Gagal mendapatkan referensi elemen antarmuka. Coba segarkan daftarnya
-
- Membuat
- Tempelkan lirik tersebut ke bawah
- Anda belum mengetik/menempelkan lirik apapun!
+ Hapus cap waktu serta liriknya
+ Hapus cap waktu saja
+ Menghapus... Ini mungkin akan memakan waktu tergantung dari jauhnya lokasi berkas tersebut
+ Apakah Anda sedang menjalankan Android 5.0+? Coba aktifkan DocumentsUI dari setelan ponsel AndaSelesai
-
+ EditEditor
- Ketuk di sini untuk memilih lagu
- Mengatur pemutar...
- Mempersiapkan pemutar...
- Terjadi kesalahan yang ketika mencoba menyetel judul!
- Tombol untuk memundurkan 5 detik ke belakang
- Tombol unutuk memajukan 5 detik ke depan
- Tombol untuk memutar/menjeda media
- Penyeimbang untuk cap waktu lirik terpilih
- Edit tumpak lirik
- Edit lirik
- Hapus yang terpilih
- Tambahkan lirik
- Salin lirik terpilih
- Tempel
- Tempel lirik sebelum yang dipilih
- Tempel lirik setelah yang dipilih
- Sisipkan lirik
- Sisipkan lirik sebelum yang dipilih
- Sisipkan lirik setelah yang dipilih
- Atur cap waktu secara manual
- Perbesar atau ciutkan pemutar
- Pilihan pemutaranMasukkan cap waktu
- Masukkan gubahan lirik:
- Gubahan lirik di sini
- Ubah
- Masukkan lirik untuk disisipkan:\n
- Sisipkan
- Tombol putar lirik
- Tombol tambahkan cap waktu
- Tombol kurangi cap waktu
- Tombol tambahkan cap waktu
- Cap waktu lebih besar dari 99:59:999 belum didukung
- Pemutar belum siap
- Item lirik tersebut tak mempunyai cap waktu
+ Terjadi kesalahan ketika membaca!
+ Gambar tombol yang dapat diperbesar
+ Gagal mengekstrak metadata media
+ Gagal mengambil adapter peninjau-daur ulang
+ Gagal mengambil Layanan Papan Klip Sistem!Kesalahan: Gagal mendapatkan durasi berkas media
+ Gagal merintis item menu penelusuran
+ Tak dapat membuka pemilih direktori!Gagal membuka dialog pengambil berkas sistem; Apa Anda sudah menggunakan versi Kitkat atau di atasnya?
- Lirik tersalin ke papan klip internal
- Setel
- Waktu tidak sah
- Jumlah detik harus kurang dari 60
- Hapus cap waktu saja
- Hapus cap waktu serta liriknya
- Pilih mana yang ingin Anda hapus
- Hapus
- Edit Tumpak
- Sesuaikan
- Peringatan
- Anda akan kehilangan apa yang Anda ubah jika kembali. Apakah Anda yakin ingin kembali?
+ Gagal membuka input stream ke berkas untuk membaca data!
+ Gagal menimpa berkas; Nama berkas akan ditambahkan awalan
+ Gagal memindai lirik! Coba ubah lokasi pemindaian
+ Gagal mengatur titinada pemutar
+ Gagal mengatur kecepatan pemutar
+ Masukkan umpan balik/laporan kesalahan Anda di sini
+ Nama berkas sudah ada. Akan ditambahkan awalan
+ Masukkan nama berkas di sini
+ Nama berkas yang akan disimpan:
+ Berkas tidak ditemukan!
+ Penyelesaian
+ Tombol unutuk memajukan 5 detik ke depan
+ Gagal menguraikan lokasi jalur. Membaca mungkin memiliki masalah
+ Gagal menguraikan lokasi jalur. Menyimpan mungkin memiliki masalah
+ Beri kontribusi pada aplikasi:\nhttps://github.com/Spikatrix/LRC-EditorKembali
- Tetap di sini
- Kecepatan: %1$d%%
- Titinada: %1$d%%
+ Anda akan kehilangan apa yang Anda ubah jika kembali. Apakah Anda yakin ingin kembali?
+ Tombol tambahkan cap waktu
+ Sisipkan
+ Masukkan lirik untuk disisipkan:\n
+ Waktu tidak sah
+ Cap waktu lebih besar dari 99:59:999 belum didukung
+ Terang
+ Memuat lirik...
+ LRC Editor mungkin tidak akan berjalan seperti yang diharapkan; Coba ubah lokasi pemindaian dari Pengaturan
+ \nDibuat dengan ♥\n(dan juga kode yang sungguh banyak :p)\n
+ Gubahan lirik di sini
+ Masukkan gubahan lirik:
+ Ubah
+ Membutuhkan perizinan
+ Namai berkas yang baru di sini
+ Masukkan nama berkas yang baru:
+ Tidak
+ Tak ditemukan berkas LRC
+ Anda belum mengetik/menempelkan lirik apapun!
+ LRC Editor tak dapat membaca/menyimpan berkas lirik tanpa izin penyimpanan
+ Tidak dapat izin untuk membaca
+ Tidak dapat izin untuk menulis
+ Item lirik tersebut tak mempunyai cap waktu
+ OK
+ Berkas \'%1$s.lrc\' sudah ada di %2$s. Timpa?
+ Tempelkan lirik tersebut ke bawah
+ Pastikan izin sudah diberikan
+ Tombol untuk memutar/menjeda media
+ Tombol putar lirikPilihan pemutaran hanya didukung oleh Android Marshmallow (6.0) dan di atasnya
+ Titinada: %1$d%%
+ Kecepatan: %1$d%%
+ Pemutar belum siapPilihan pemutaran pemutar media
- Gagal mengatur kecepatan pemutar
- Gagal mengatur titinada pemutar
-
- Penyelesaian
- Judul lagu:
- Masukkan judul lagu di sini
- Judul album:
- Masukkan judul album di sini
- Nama artis:
- Masukkan nama artis di sini
- Komposer:
- Masukkan nama komposer/penyusun di sini
+ Mempersiapkan pemutar...
+ Tombol untuk memundurkan 5 detik ke belakangMemproses
- Gagal mengekstrak metadata media
- Berkas \'%1$s.lrc\' sudah ada di %2$s. Timpa?
- Mencoba menimpa berkas sebelumnya
- Gagal menimpa berkas; Nama berkas akan ditambahkan awalan
- Menuliskan lirik ke berkas
- Aduh! Terjadi kesalahan!
- Lirik tersimpan dengan sukses di %1$s
- Tak dapat menyimpan berkas tanpa perizinan penyimpanan
- Gagal mengambil Layanan Papan Klip Sistem!
- Data berkas LRC sudah tersalin dengan sukses ke Papan Klip Sistem!
- Riwayat kesalahan tersalin dengan sukses ke Papan Klip Sistem!
- Tidak dapat izin untuk menulis
- Lokasi untuk menyimpan berkas lirik
- Lokasi penyimpanan: %1$s
- Ubah
- Nama berkas yang akan disimpan:
- Masukkan nama berkas di sini
- Atur namanya seperti nama lagu
- Atur namanya seperti nama LRC
- Salin konten LRC ⎘
- Gagal menyalin ⎘
- Simpan
-
- \nDibuat dengan ♥\n(dan juga kode yang sungguh banyak :p)\nAplikasi ini dibuat dan dipelihara hanya oleh saya sendiri\nMohon beri nilai dan sediakan umpan balik yang membangun\n\n\nTerima Kasih!\n♥
- Kirim Umpan Balik
- Masukkan umpan balik/laporan kesalahan Anda di sini
-
Lokasi untuk memindai/membaca berkas lirikTermasuk sub-direktori
- Pilih tema:
- Terang
- Gelap
- Sangat Gelap
- Kesalahan tak terduga baru saja terjadi
+ Lokasi tidak ada. Mencoba membuat folder di %1$s namun gagal. Apakah Anda ingin mengembalikan lokasi bawaan folder ke semula?
+ Lokasi pemindaian tidak ada. Turut gagal membuat folder \'Lyrics\'. Coba ubah lokasi pemindaian
+ Ubah Nama
+ Gagal mengubah nama!
+ Berkas berhasil diubah nama
+ Mengubah nama... Ini mungkin akan memakan waktu tergantung dari jauhnya lokasi berkas tersebutMulai ulang aplikasi jika temanya tidak menerap
- Simpan dengan milidetik tiga angka
+ Simpan
+ Lokasi untuk menyimpan berkas lirik
+ Lokasi penyimpanan: %1$s
+ Lirik tersimpan dengan sukses di %1$s
+ Pemindaian dibatalkan
+
+ Telah memindai %1$s berkas LRC
+ Telah memindai %1$s berkas LRC
+
+ Memindai berkas LRC pada lokasi yang ditentukan (termasuk sub-direktori)
+ Jumlah detik harus kurang dari 60
+ Pilih tema:
+ Mohon kirimkan laporan kesalahan serinci mungkin
+ Kirim Umpan Balik
+ Setel
+ Atur namanya seperti nama LRC
+ Atur namanya seperti nama lagu
+ Mengatur pemutar...
+ Pengaturan
+ Masukkan judul lagu di sini
+ Judul lagu:
+ Tetap di sini
+ Aplikasi ini memerlukan izin penyimpanan untuk membaca dan menyimpan berkas lirik
+ Kesalahan: Penyimpanan tidak tersedia/sibuk
+ Ketuk di sini untuk memilih lagu
+ Meleset\nTak ditemukan berkas lirikMeyimpan dengan milidetik tiga angka mungkin akan berguna bagi aplikasi yang menganggap berkas LRC dengan cap waktu milidetik tiga angka daripada cap waktu dengan milidetik dua angka saja
- Tak dapat membuka pemilih direktori!
- Apakah Anda sedang menjalankan Android 5.0+? Coba aktifkan DocumentsUI dari setelan ponsel Anda
- Beri kontribusi pada aplikasi:\nhttps://github.com/Spikatrix/LRC-Editor
- Gagal menguraikan lokasi jalur. Membaca mungkin memiliki masalah
- Gagal menguraikan lokasi jalur. Menyimpan mungkin memiliki masalah
-
- Berkas tidak ditemukan!
- Gagal membuka input stream ke berkas untuk membaca data!
- Gagal menguraikan lirik dari berkas. Periksa apakah format berkas LRC tersebut sudah benar
- Terjadi kesalahan ketika membaca!
- Tidak dapat izin untuk membaca
-
\ No newline at end of file
+ Simpan dengan milidetik tiga angka
+ Jumlah langkah cap waktu
+ Stempel waktu akan disesuaikan dengan jumlah milidetik ini di editor. Perhatikan bahwa hanya dua digit paling signifikan dari milidetik yang ditampilkan di editor
+ Terjadi kesalahan yang ketika mencoba menyetel judul!
+ Tambahkan lirik
+ Edit tumpak lirik
+ Perbesar atau ciutkan pemutar
+ Salin lirik terpilih
+ Hapus berkas lirik
+ Hapus yang terpilih
+ Edit lirik
+ Sisipkan lirik setelah yang dipilih
+ Sisipkan lirik sebelum yang dipilih
+ Sisipkan lirik
+ Atur cap waktu secara manual
+ Tempel lirik setelah yang dipilih
+ Tempel lirik sebelum yang dipilih
+ Tempel
+ Pilihan pemutaran
+ Segarkan daftar
+ Ubah nama berkas lirik
+ Telusuri daftar
+ Pilih semua
+ Gagal mendapatkan referensi elemen antarmuka. Coba segarkan daftarnya
+ Kesalahan tak terduga baru saja terjadi
+ Peringatan
+ Aduh! Terjadi kesalahan!
+ Menuliskan lirik ke berkas
+ Ya
+
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 931563b..0de41d1 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -1,8 +1,8 @@
-
+ O programieDodaj przycisk znacznika czasuDostosujtutaj Nazwa albumu
@@ -27,6 +27,8 @@
Pomyślnie skopiowano dane pliku LRC do schowka systemowego!Nie można przeanalizować tekstu z pliku. Sprawdź, czy plik lrc jest poprawnie sformatowanyStwórz
+ Nazwa LRC twórca tutaj
+ LRC twórca: CiemnyCiemniejszyPrzycisk znacznika zmniejszania czasu
@@ -77,7 +79,7 @@
JasnyŁadowanie tekstu...LRC Edytor może nie działać zgodnie z oczekiwaniami; Spróbuj zmienić lokalizację odczytu w ustawieniach
- \nWykonane z ♥\n(i dużo kodu :p)\n
+ \nWykonane z ♥\n(i dużo kodu :p)\ntutaj Zmodyfikowany tekstWprowadź zmodyfikowany tekst:Zmień
@@ -88,6 +90,7 @@
Nie znaleziono plików LRCNie wpisałeś/wkleiłeś żadnego tekstuLRC Editor nie może odczytać/zapisać plików tekstowych bez pozwolenia na przechowywanie
+ Nie można uzyskać uprawnień do odczytuNie można uzyskać uprawnień do zapisuNie ustawiono znacznika czasu dla elementuOK
@@ -128,6 +131,7 @@
Ustaw jako nazwę pliku LRCUstaw jako nazwę pliku utworuKonfigurowanie odtwarzacza...
+ Ustawieniatutaj Nazwa utworuNazwa piosenki:Zostań tutaj
@@ -135,8 +139,11 @@
Błąd: pamięć niedostępna/zajętaStuknij tutaj, aby wybrać utwór"Tego brakuje\nNie znaleziono plików Lyric"
+ Zapisywanie znaczników czasowych z trzycyfrowymi milisekundami może być przydatne w aplikacjach które oczekują pliku LRC z trzycyfrowymi znacznikami milisekund, a nie dwucyfrowymi znacznikami milisekund
+ Zapisz znaczniki z trzycyfrowymi milisekundami
+ Kwota kroku znacznika czasu
+ Znaczniki czasu zostaną skorygowane o tę liczbę milisekund w edytorze. Zwróć uwagę, że w edytorze wyświetlane są tylko dwie najbardziej znaczące cyfry milisekundWystąpił nieoczekiwany błąd podczas próby ustawienia tytułu
- O programieDodaj tekstEdycja wsadowa tekstówRozwiń lub zwiń odtwarzacz
@@ -156,14 +163,10 @@
Zmień nazwę pliku lyricWyszukaj na liścieZaznacz Wszystko
- UstawieniaNie można uzyskać odwołań do elementu interfejsu. Spróbuj odświeżyć listęWystąpił nieoczekiwany błądOstrzeżenieUps! Wystąpił błąd!Zapisywanie tekstów do plikuTak
- Zapisz znaczniki z trzycyfrowymi milisekundami
- Zapisywanie znaczników czasowych z trzycyfrowymi milisekundami może być przydatne w aplikacjach które oczekują pliku LRC z trzycyfrowymi znacznikami milisekund, a nie dwucyfrowymi znacznikami milisekund
- Nie można uzyskać uprawnień do odczytu
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 8d23f7b..f71afd5 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -1,8 +1,8 @@
-
+ SobreAdicionar um valor de tempoAjustarNome do álbum aqui
@@ -27,6 +27,8 @@
Copiado com sucesso os dados do arquivo LRC para a área de transferência do sistema!Não foi possível analisar as letras do arquivo. Verifique se o arquivo lrc está formatado corretamenteCrio
+ Nome do criador aqui
+ LRC criador: EscuroMais escuroDiminuir o botão de tempo
@@ -77,7 +79,7 @@
ClaroCarregando letras...O LRC Editor pode não funcionar como esperado; Tente alterar o local de leitura nas configurações
- \nFeito com ♥\n(e muito código :p)
+ \nFeito com ♥\n(e muito código :p)\nLetra modificada aquiDigite a letra modificada:Modificar
@@ -88,6 +90,7 @@
Nenhum arquivo LRC encontradoVocê não digitou/colou nenhuma letraO LRC Editor não pode ler/salvar arquivos de letra sem a permissão de armazenamento
+ Não foi possível obter permissões para ler arquivosNão foi possível obter permissões para criar/modificar arquivosNenhum tempo definido para o item da letraOK
@@ -128,6 +131,7 @@
Definir como o nome do arquivo LRCDefinir como o nome do arquivo da músicaConfigurando o player...
+ ConfiguraçõesNome da música aquiNome da música:Fique aqui
@@ -135,8 +139,11 @@
Erro: Armazenamento indisponível ou cheioToque aqui para selecionar uma músicaFalta algo aqui...\nNenhum arquivo de letra encontrado
+ Salvar com milissegundos de três dígitos pode ser útil para aplicativos que esperam arquivos LRC com timestamps de três dígitos em milissegundos em vez de timestamps de dois dígitos em milissegundos
+ Economize com três dígitos em milissegundos
+ Valor da etapa do registro de data e hora
+ Os carimbos de data e hora serão ajustados por essa quantidade de milissegundos no editor. Observe que apenas os dois dígitos mais significativos dos milissegundos são mostrados no editorOcorreu um erro inesperado ao tentar definir o título
- SobreAdicionar uma letraEditar letras em loteExpandir ou recolher o player
@@ -156,14 +163,10 @@
Renomear arquivos de letrasBuscar listaSelecionar tudo
- ConfiguraçõesFalha ao obter referências de elementos da interface do usuário. Tente atualizar a listaUm erro inesperado ocorreuAvisooops! Um erro ocorreu!Escrevendo as letras do arquivoSim
- Economize com três dígitos em milissegundos
- Salvar com milissegundos de três dígitos pode ser útil para aplicativos que esperam arquivos LRC com timestamps de três dígitos em milissegundos em vez de timestamps de dois dígitos em milissegundos
- Não foi possível obter permissões para ler arquivos
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 7652f25..c4e68c9 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -2,177 +2,175 @@
- 真的沒想到\n找不到歌詞檔
- 重新整理清單
- 搜尋清單關於
- 設定
- 選取全部
- 刪除歌詞檔
- 重新命名歌詞檔
- 請輸入新檔名:
- 在此輸入新檔名
- 編輯
- 正在載入歌詞檔...
- 折疊式按鈕圖片
- 有另一操作正在運行中,請等待直到完成
+ 添加時間標記
+ 調整
+ 在此輸入專輯名稱
+ 專輯名稱: 有另一操作正在運行中,無法重新整理清單
- 正在於讀取位置(以及子目錄)掃描歌詞檔
- 找不到歌詞檔
-
- 已掃描 %1$s 個歌詞檔
- 已掃描 %1$s 個歌詞檔
-
- 已取消掃描
- 無法掃描歌詞檔!正在嘗試更改讀取位置
- 請傳送錯誤報告並提供盡可能多的詳細內容
- 無法提取recyclerview配置器
- 請確定您已授予權限
- 讀取位置不存在。已經嘗試於 %1$s 建立資料夾但不成功。您想要將讀取位置重置為預設位置嗎?
- 是
- 否
- LRC Editor 或會無法正常運作。請嘗試於設定更改讀取位置
- 讀取位置不存在。此外無法建立 "Lyrics" 資料夾。正在嘗試更改讀取位置
- 錯誤:裝置存儲設備不可用或繁忙
- 此應用需要存儲權限,用於讀取歌詞檔
- 需要權限
- 好的
- LRC Editor 沒有存儲權限則無法讀取/儲存歌詞檔
- 無法初始化搜尋選單項目
+ 有另一操作正在運行中,請等待直到完成
+ 在此輸入演出者名稱
+ 演出者:
+ 正在嘗試覆寫上一檔案
+ 批次處理
+ 已選歌詞的時間標記偏差
+ 取消
+ 沒有存儲權限,無法儲存文件
+ 變更
+ 在此輸入作曲者名稱
+ 作曲者: 確認
+ 已複製歌詞到剪貼簿
+ 複製錯誤信息 ⎘
+ 成功將產生的錯誤信息資訊複製至系統剪貼簿!
+ 複製 LRC 內容 ⎘
+ 成功將LRC檔的資訊複製至系統剪貼簿!
+ 無法解析檔案中的文字。請檢查LRC檔案的格式是否正確
+ 创建
+ LRC创作者的名字在这里
+ LRC创作者:
+ 深色
+ 暗黑
+ 增加時間標記
+ 刪除您是否想要刪除已選的歌詞檔?
- 正在刪除... 這可能需要一些時間,取決於檔案與讀取位置的距離無法刪除部份/所有已選歌詞檔!
+ 選擇要刪除的項目已選歌詞檔刪除成功
- 重新命名
- 正在重新命名... 這可能需要一些時間,取決於檔案與讀取位置的距離
- 檔名已存在。前綴可能會被添加到檔名
- 重新命名成功
- 無法重新命名!
- 取消
- 無法取得UI元素指引檔。正在重新整理清單
-
- 创建
- 在下面貼上歌詞
- 您沒有輸入/貼上任何歌詞
+ 刪除時間標記及歌詞
+ 只刪除時間標記
+ 正在刪除... 這可能需要一些時間,取決於檔案與讀取位置的距離
+ 您的Android系統當前是否運行5.0或以上版本?或許可以從您的手機設定啟用DocumentsUI完成
-
+ 編輯主编
- 點擊此處以選擇歌曲
- 正在設置播放器...
- 正在準備播放器...
- 設定標題時發生未預期的錯誤
- 向後搜索5秒
- 向前搜索5秒
- 播放/暫停
- 已選歌詞的時間標記偏差
- 批次處理歌詞修改
- 修改歌詞
- 刪除已選
- 新增歌詞
- 複製已選歌詞
- 貼上
- 在選擇之前貼上歌詞
- 在選擇之後貼上歌詞
- 插入歌詞
- 在選擇之前插入歌詞
- 在選擇之後插入歌詞
- 手動設定時間標記
- 展開或折疊播放器
- 播放選項輸入時間標記
- 輸入修改後的歌詞
- 在此輸入修改後的歌詞
- 修改
- 輸入要插入的歌詞:\n
- 插入
- 播放此歌詞
- 添加時間標記
- 增加時間標記
- 減少時間標記
- 當前不支援大於99:59:999的時間標記
- 播放器尚未準備好
- 沒有為歌詞物件設定時間標記組
+ 讀取時發生錯誤!
+ 折疊式按鈕圖片
+ 無法取得媒體數據
+ 無法提取recyclerview配置器
+ 無法提取系統剪貼簿服務!未預期的錯誤:無法取得媒體檔案的持續時間
+ 無法初始化搜尋選單項目
+ 無法開啟系統資料夾對話方塊!無法開啟系統檔案對話方塊;您確定您的Android系統當前運行Kitkat或以上版本嗎?
- 已複製歌詞到剪貼簿
- 設定
- 時間無效
- 秒鐘設定必須少於60
- 只刪除時間標記
- 刪除時間標記及歌詞
- 選擇要刪除的項目
- 刪除
- 批次處理
- 調整
- 警告
- 若現在返回,您已修改的資料將會失去。您確定要返回嗎?
+ 無法開啟用於讀取數據的文件輸入流!
+ 無法覆寫檔案;檔案名稱將會加上後綴
+ 無法掃描歌詞檔!正在嘗試更改讀取位置
+ 無法設定播放器的播放音調
+ 無法設定播放器的播放速度
+ 在此輸入您的意見/錯誤報告
+ 檔名已存在。前綴可能會被添加到檔名
+ 在此輸入檔案名稱
+ 儲存檔案名稱:
+ 找不到檔案!
+ 最後設定
+ 向前搜索5秒
+ 解析路徑位置失敗。 閱讀可能有問題
+ 解析路徑位置失敗。 保存可能會有問題
+ 對App作出貢獻:\nhttps://github.com/Spikatrix/LRC-Editor返回
- 留在這裡
- 速度: %1$d%%
- 音調: %1$d%%
+ 若現在返回,您已修改的資料將會失去。您確定要返回嗎?
+ 減少時間標記
+ 插入
+ 輸入要插入的歌詞:\n
+ 時間無效
+ 當前不支援大於99:59:999的時間標記
+ 淺色
+ 正在載入歌詞檔...
+ LRC Editor 或會無法正常運作。請嘗試於設定更改讀取位置
+ \n用 ♥ 創造\n(還有大量的程式碼 :p)\n
+ 在此輸入修改後的歌詞
+ 輸入修改後的歌詞
+ 修改
+ 需要權限
+ 在此輸入新檔名
+ 請輸入新檔名:
+ 否
+ 找不到歌詞檔
+ 您沒有輸入/貼上任何歌詞
+ LRC Editor 沒有存儲權限則無法讀取/儲存歌詞檔
+ 无法获得读入权限
+ 無法獲得寫入權限
+ 沒有為歌詞物件設定時間標記組
+ 好的
+ 檔案 \'%1$s.lrc\' 已經存在於 %2$s 。您確定要覆寫此檔案?
+ 在下面貼上歌詞
+ 請確定您已授予權限
+ 播放/暫停
+ 播放此歌詞播放選項只於Android Marshmallow (6.0)版本及以上版本支援
+ 音調: %1$d%%
+ 速度: %1$d%%
+ 播放器尚未準備好媒體播放器播放選項
- 無法設定播放器的播放速度
- 無法設定播放器的播放音調
-
- 最後設定
- 歌曲名稱:
- 在此輸入歌曲名稱
- 專輯名稱:
- 在此輸入專輯名稱
- 演出者:
- 在此輸入演出者名稱
- 作曲者:
- 在此輸入作曲者名稱
+ 正在準備播放器...
+ 向後搜索5秒處理中
- 無法取得媒體數據
- 檔案 \'%1$s.lrc\' 已經存在於 %2$s 。您確定要覆寫此檔案?
- 正在嘗試覆寫上一檔案
- 無法覆寫檔案;檔案名稱將會加上後綴
- 正在將歌詞寫入檔案
- 噢!發生了未預期的錯誤!
- 成功將歌詞檔儲存於 %1$s
- 沒有存儲權限,無法儲存文件
- 無法提取系統剪貼簿服務!
- 成功將LRC檔的資訊複製至系統剪貼簿!
- 成功將產生的錯誤信息資訊複製至系統剪貼簿!
- 無法獲得寫入權限
- 儲存歌詞檔的位置
- 儲存位置: %1$s
- 變更
- 儲存檔案名稱:
- 在此輸入檔案名稱
- 設定為歌曲檔名稱
- 設定為LRC歌詞檔名稱
- 複製 LRC 內容 ⎘
- 複製錯誤信息 ⎘
- 儲存
-
- \n用 ♥ 創造\n(還有大量的程式碼 :p)\n這個App由我自已開發及維護的\n請為這個App評分及留下有用的評論\n\n\n非常感謝!\n♥
- 傳送意見回饋
- 在此輸入您的意見/錯誤報告
-
讀取歌詞檔的位置子目錄亦會被掃描
- 選擇主題:
- 淺色
- 深色
- 暗黑
- 發生未預期的錯誤
+ 讀取位置不存在。已經嘗試於 %1$s 建立資料夾但不成功。您想要將讀取位置重置為預設位置嗎?
+ 讀取位置不存在。此外無法建立 "Lyrics" 資料夾。正在嘗試更改讀取位置
+ 重新命名
+ 無法重新命名!
+ 重新命名成功
+ 正在重新命名... 這可能需要一些時間,取決於檔案與讀取位置的距離如果主題未被應用請重新啟動App
- 以三位數毫秒儲存
+ 儲存
+ 儲存歌詞檔的位置
+ 儲存位置: %1$s
+ 成功將歌詞檔儲存於 %1$s
+ 已取消掃描
+
+ 已掃描 %1$s 個歌詞檔
+ 已掃描 %1$s 個歌詞檔
+
+ 正在於讀取位置(以及子目錄)掃描歌詞檔
+ 秒鐘設定必須少於60
+ 選擇主題:
+ 請傳送錯誤報告並提供盡可能多的詳細內容
+ 傳送意見回饋
+ 設定
+ 設定為LRC歌詞檔名稱
+ 設定為歌曲檔名稱
+ 正在設置播放器...
+ 設定
+ 在此輸入歌曲名稱
+ 歌曲名稱:
+ 留在這裡
+ 此應用需要存儲權限,用於讀取歌詞檔
+ 錯誤:裝置存儲設備不可用或繁忙
+ 點擊此處以選擇歌曲
+ 真的沒想到\n找不到歌詞檔以三位數毫秒儲存功能,對於需要三位數毫秒而並非二位數毫秒的LRC文件的應用程序或會有用
- 無法開啟系統資料夾對話方塊!
- 您的Android系統當前是否運行5.0或以上版本?或許可以從您的手機設定啟用DocumentsUI
- 對App作出貢獻:\nhttps://github.com/Spikatrix/LRC-Editor
- 解析路徑位置失敗。 閱讀可能有問題
- 解析路徑位置失敗。 保存可能會有問題
-
- 找不到檔案!
- 無法開啟用於讀取數據的文件輸入流!
- 無法解析檔案中的文字。請檢查LRC檔案的格式是否正確
- 讀取時發生錯誤!
- 无法获得读入权限
-
\ No newline at end of file
+ 以三位數毫秒儲存
+ 时间戳步数
+ 时间戳将在编辑器中以毫秒为单位进行调整。 请注意,编辑器中仅显示毫秒的两个最高有效数字
+ 設定標題時發生未預期的錯誤
+ 新增歌詞
+ 批次處理歌詞修改
+ 展開或折疊播放器
+ 複製已選歌詞
+ 刪除歌詞檔
+ 刪除已選
+ 修改歌詞
+ 在選擇之後插入歌詞
+ 在選擇之前插入歌詞
+ 插入歌詞
+ 手動設定時間標記
+ 在選擇之後貼上歌詞
+ 在選擇之前貼上歌詞
+ 貼上
+ 播放選項
+ 重新整理清單
+ 重新命名歌詞檔
+ 搜尋清單
+ 選取全部
+ 無法取得UI元素指引檔。正在重新整理清單
+ 發生未預期的錯誤
+ 警告
+ 噢!發生了未預期的錯誤!
+ 正在將歌詞寫入檔案
+ 是
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4d7cf38..09d1592 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,179 +2,175 @@
- That\'s-a-miss\nNo lyric files found
- Refresh the list
- Search the listAbout
- Settings
- Select all
- Delete lyric files
- Rename lyric file
- Enter the new file name:
- New file name here
- Edit
- Loading lyrics...
- Expandable button image
- Another operation is running. Please wait until it completes
+ Add a timestamp button
+ Adjust
+ Album name here
+ Album name: Another operation is running. Couldn\'t refresh the list
- Scanning for LRC files in the read location (and sub directories)
- No LRC files found
-
- Scanned %1$s LRC file
- Scanned %1$s LRC files
-
- Scan cancelled
- Failed to scan lyrics! Try changing the read location
- Please send a bug report with as much detail as possible
- Failed to fetch the adapter of the recyclerview
- Make sure you have granted permissions
- Read location doesn\'t exist. Tried to create a folder at %1$s but failed. Do you want to reset the read location to the default location?
- Yes
- No
- LRC Editor may not work as expected; Try changing the read location from the settings
- Read location doesn\'t exist. Failed to create a \'Lyrics\' folder as well. Try changing the read location
- Error: Storage unavailable/busy
- This app needs the storage permission for reading and saving the lyric files
- Need permissions
- OK
- LRC Editor cannot read/save lyric files without the storage permission
- Failed to initialize the search menu item
+ Another operation is running. Please wait until it completes
+ Artist name here
+ Artist name:
+ Attempting to overwrite previous file
+ Batch Edit
+ Offset for the timestamps of the selected lyrics
+ Cancel
+ Cannot save the file without the storage permission
+ Change
+ Composer name here
+ Composer: Confirmation
+ Copied the lyrics to the internal clipboard
+ Copy error ⎘
+ Successfully copied the generated error into the System Clipboard!
+ Copy LRC contents ⎘
+ Successfully copied the LRC file data into the System Clipboard!
+ Couldn\'t parse lyrics from the file. Check if the lrc file is properly formatted
+ Create
+ LRC creator name here
+ LRC creator:
+ Dark
+ Darker
+ Decrease timestamp button
+ DeleteAre you sure you want to delete the selected LRC files?
- Deleting... This may take a while depending on how far the file(s) are from the set read locationFailed to delete some/all of the selected LRC files!
+ Choose what to deleteDeleted the selected LRC files successfully
- Rename
- Renaming... This may take a while depending on how far the file is from the set read location
- File name already exists. Prefix might be added
- Renamed file successfully
- Rename failed!
- Cancel
- Failed to get UI element references. Try refreshing the list
-
- Create
- Paste the lyrics below
- You haven\'t typed/pasted any lyrics
+ Delete both timestamps and the lyrics
+ Delete timestamps only
+ Deleting... This may take a while depending on how far the file(s) are from the set read location
+ Are you running Android 5.0+? Maybe enable DocumentsUI from your phone settingsDone
-
+ EditEditor
- Tap here to select a song
- Setting up the player...
- Preparing the player...
- An unexpected error occurred trying to set the title
-
- Button to seek 5 seconds behind
-
- Button to seek 5 seconds forward
- Button to play/pause media
- Offset for the timestamps of the selected lyrics
- Batch edit lyrics
- Edit lyric
- Delete selected
- Add a lyric
- Copy the selected lyrics
- Paste
- Paste lyrics before selected
- Paste lyrics after selected
- Insert lyrics
- Insert lyrics before selected
- Insert lyrics after selected
- Manually set the timestamp
- Expand or collapse the player
- Playback optionsEnter the timestamp
- Enter the modified lyric:
- Modified lyric here
- Modify
- Enter the lyrics to insert:\n
- Insert
- Play this lyric button
- Add a timestamp button
- Decrease timestamp button
- Increase timestamp button
- Timestamps larger than 99:59:999 are currently unsupported
- Player not ready
- No timestamp set for the lyric item
+ An error occurred while reading!
+ Expandable button image
+ Failed to extract media metadata
+ Failed to fetch the adapter of the recyclerview
+ Failed to fetch the System Clipboard Service!Unexpected error: Failed to get the duration of the media file
+ Failed to initialize the search menu item
+ Couldn\'t open the directory picker!Failed to open the system file picker dialog; Are you sure you\'re running Android Kitkat or up?
- Copied the lyrics to the internal clipboard
- Set
- Invalid time
- Seconds must be less than 60
- Delete timestamps only
- Delete both timestamps and the lyrics
- Choose what to delete
- Delete
- Batch Edit
- Adjust
- Warning
- You\'ll lose your modified data if you go back. Are you sure you want to go back?
+ Failed to open an input stream to the file to read data!
+ Failed to overwrite file; Suffix will be appended to the file name
+ Failed to scan lyrics! Try changing the read location
+ Failed to set the pitch of the player
+ Failed to set the speed of the player
+ Enter your feedback/bug report here
+ File name already exists. Prefix might be added
+ File name here
+ File name to save:
+ File not found!
+ Finalization
+ Button to seek 5 seconds forward
+ Failed to parse the path location. Reading might have issues
+ Failed to parse the path location. Saving might have issues
+ Contribute to the app:\nhttps://github.com/Spikatrix/LRC-EditorGo Back
- Stay here
- Speed: %1$d%%
- Pitch: %1$d%%
+ You\'ll lose your modified data if you go back. Are you sure you want to go back?
+ Increase timestamp button
+ Insert
+ Enter the lyrics to insert:\n
+ Invalid time
+ Timestamps larger than 99:59:999 are currently unsupported
+ Light
+ Loading lyrics...
+ LRC Editor may not work as expected; Try changing the read location from the settings
+ \nMade with ♥\n(and a lot of code :p)\n
+ Modified lyric here
+ Enter the modified lyric:
+ Modify
+ Need permissions
+ New file name here
+ Enter the new file name:
+ No
+ No LRC files found
+ You haven\'t typed/pasted any lyrics
+ LRC Editor cannot read/save lyric files without the storage permission
+ Could not obtain permissions to read
+ Could not obtain permissions to write
+ No timestamp set for the lyric item
+ OK
+ File \'%1$s.lrc\' already exists in %2$s. Are you sure you want to overwrite it?
+ Paste the lyrics below
+ Make sure you have granted permissions
+ Button to play/pause media
+ Play this lyric buttonPlayback options are supported only on Android Marshmallow (6.0) and above
+ Pitch: %1$d%%
+ Speed: %1$d%%
+ Player not readyMedia player playback options
- Failed to set the speed of the player
- Failed to set the pitch of the player
-
- Finalization
- Song name:
- Song name here
- Album name:
- Album name here
- Artist name:
- Artist name here
- Composer:
- Composer name here
+ Preparing the player...
+ Button to seek 5 seconds behindProcessing
- Failed to extract media metadata
- File \'%1$s.lrc\' already exists in %2$s. Are you sure you want to overwrite it?
- Attempting to overwrite previous file
- Failed to overwrite file; Suffix will be appended to the file name
- Writing the lyrics to the file
- Whoops! An error occurred!
- Successfully saved the lyrics file in %1$s
- Cannot save the file without the storage permission
- Failed to fetch the System Clipboard Service!
- Successfully copied the LRC file data into the System Clipboard!
- Successfully copied the generated error into the System Clipboard!
- Could not obtain permissions to write
- Location for saving lyric files
- Save location: %1$s
- Change
- File name to save:
- File name here
- Set as the song file name
- Set as the LRC file name
- Copy LRC contents ⎘
- Copy error ⎘
- Save
-
- \nMade with ♥\n(and a lot of code :p)\nThis app is made and maintained by just me\nPlease rate the app and provide constructive feedback\n\n\nThank You!\n♥
- Send feedback
- Enter your feedback/bug report here
-
Location for reading lyric filesSub directories will also be scanned
- Select a theme:
- Light
- Dark
- Darker
- An unexpected error occurred
+ Read location doesn\'t exist. Tried to create a folder at %1$s but failed. Do you want to reset the read location to the default location?
+ Read location doesn\'t exist. Failed to create a \'Lyrics\' folder as well. Try changing the read location
+ Rename
+ Rename failed!
+ Renamed file successfully
+ Renaming... This may take a while depending on how far the file is from the set read locationRestart the app if the theme does not apply
- Save with three digit milliseconds
+ Save
+ Location for saving lyric files
+ Save location: %1$s
+ Successfully saved the lyrics file in %1$s
+ Scan cancelled
+
+ Scanned %1$s LRC file
+ Scanned %1$s LRC files
+
+ Scanning for LRC files in the read location (and sub directories)
+ Seconds must be less than 60
+ Select a theme:
+ Please send a bug report with as much detail as possible
+ Send feedback
+ Set
+ Set as the LRC file name
+ Set as the song file name
+ Setting up the player...
+ Settings
+ Song name here
+ Song name:
+ Stay here
+ This app needs the storage permission for reading and saving the lyric files
+ Error: Storage unavailable/busy
+ Tap here to select a song
+ That\'s-a-miss\nNo lyric files foundSaving with three digit milliseconds might be useful for applications that expect LRC files with three digit millisecond timestamps rather than two digit millisecond timestamps
- Couldn\'t open the directory picker!
- Are you running Android 5.0+? Maybe enable DocumentsUI from your phone settings
- Contribute to the app:\nhttps://github.com/Spikatrix/LRC-Editor
- Failed to parse the path location. Reading might have issues
- Failed to parse the path location. Saving might have issues
-
- File not found!
- Failed to open an input stream to the file to read data!
- Couldn\'t parse lyrics from the file. Check if the lrc file is properly formatted
- An error occurred while reading!
- Could not obtain permissions to read
-
\ No newline at end of file
+ Save with three digit milliseconds
+ Timestamp step amount
+ Timestamps will be adjusted by this amount of milliseconds in the editor. Note that only the two most significant digits of the milliseconds are shown in the editor
+ An unexpected error occurred trying to set the title
+ Add a lyric
+ Batch edit lyrics
+ Expand or collapse the player
+ Copy the selected lyrics
+ Delete lyric files
+ Delete selected
+ Edit lyric
+ Insert lyrics after selected
+ Insert lyrics before selected
+ Insert lyrics
+ Manually set the timestamp
+ Paste lyrics after selected
+ Paste lyrics before selected
+ Paste
+ Playback options
+ Refresh the list
+ Rename lyric file
+ Search the list
+ Select all
+ Failed to get UI element references. Try refreshing the list
+ An unexpected error occurred
+ Warning
+ Whoops! An error occurred!
+ Writing the lyrics to the file
+ Yes
+
diff --git a/app/src/playstore/java/com/cg/lrceditor/AboutActivity.java b/app/src/playstore/java/com/cg/lrceditor/AboutActivity.java
index 059fa8d..e61b23c 100644
--- a/app/src/playstore/java/com/cg/lrceditor/AboutActivity.java
+++ b/app/src/playstore/java/com/cg/lrceditor/AboutActivity.java
@@ -23,7 +23,7 @@ public class AboutActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences preferences = getSharedPreferences("LRC Editor Preferences", MODE_PRIVATE);
- String theme = preferences.getString("current_theme", "light");
+ String theme = preferences.getString(Constants.THEME_PREFERENCE, "light");
if (theme.equals("dark")) {
isDarkTheme = true;
setTheme(R.style.AppThemeDark);
diff --git a/app/src/playstore/java/com/cg/lrceditor/SupportActivity.java b/app/src/playstore/java/com/cg/lrceditor/SupportActivity.java
index b1873da..cf8c2de 100644
--- a/app/src/playstore/java/com/cg/lrceditor/SupportActivity.java
+++ b/app/src/playstore/java/com/cg/lrceditor/SupportActivity.java
@@ -58,12 +58,12 @@ public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
Purchase purchase = inventory.getPurchase(ITEM_SKUS[i]);
if (purchase != null && purchase.getPurchaseState() == 0) { // 0 means purchased
- if (!preferences.getString("lrceditor_purchased", "").equals("Y")) {
+ if (!preferences.getString(Constants.PURCHASED_PREFERENCE, "").equals("Y")) {
Toast.makeText(ctx, getString(R.string.dark_themes_available_message), Toast.LENGTH_LONG).show();
}
SharedPreferences.Editor editor = preferences.edit();
- editor.putString("lrceditor_purchased", "Y");
+ editor.putString(Constants.PURCHASED_PREFERENCE, "Y");
editor.apply();
purchaseButtons[i].setEnabled(false);
@@ -113,7 +113,7 @@ protected void onCreate(Bundle savedInstanceState) {
ctx = this;
preferences = getSharedPreferences("LRC Editor Preferences", MODE_PRIVATE);
- String theme = preferences.getString("current_theme", "light");
+ String theme = preferences.getString(Constants.THEME_PREFERENCE, "light");
if (theme.equals("dark")) {
isDarkTheme = true;
setTheme(R.style.AppThemeDark);
diff --git a/app/src/playstore/res/values-de/strings.xml b/app/src/playstore/res/values-de/strings.xml
index 6fa14d3..b7a2ff8 100644
--- a/app/src/playstore/res/values-de/strings.xml
+++ b/app/src/playstore/res/values-de/strings.xml
@@ -1,20 +1,18 @@
-
- App bewerten
- Unterstütze mich
-
- Du kannst bezahlen soviel du willst, um mich zu unterstützen. Deine Unterstützung hilft mir größer und besser zu werden als je zuvor!
- Als kleinen Bonus kriegst du, wenn du mich unterstützt, die beiden dunklen Themen der App!
- Danke für deine Unterstützung!\n♥
- Lädt
- Fehler
- Inventar konnte nicht abgefragt werdenDie beiden dunklen Themen sollten nun in den Einstellungen verfügbar sein!
+ FehlerDer Kauf konnte nicht abgeschlossen werden
- Kauf erfolgreich
- Ich danke dir so sehr für deinen Kauf! Die beiden dunklen Themen sind jetzt in den Einstellungen verfügbar!
+ Inventar konnte nicht abgefragt werdenDer Kauf konnte nicht abgefragt werdenKonnte die In-App-Abrechnung nicht einrichtenIAPs laden noch
+ Lädt
+ Kauf erfolgreichBezahlt
+ App bewerten
+ Als kleinen Bonus kriegst du, wenn du mich unterstützt, die beiden dunklen Themen der App!
+ Du kannst bezahlen soviel du willst, um mich zu unterstützen. Deine Unterstützung hilft mir größer und besser zu werden als je zuvor!
+ Unterstütze mich
+ Ich danke dir so sehr für deinen Kauf! Die beiden dunklen Themen sind jetzt in den Einstellungen verfügbar!
+ Danke für deine Unterstützung!\n♥
diff --git a/app/src/playstore/res/values-in/strings.xml b/app/src/playstore/res/values-in/strings.xml
index ce8978d..27a0535 100644
--- a/app/src/playstore/res/values-in/strings.xml
+++ b/app/src/playstore/res/values-in/strings.xml
@@ -1,19 +1,18 @@
- Beri Nilai dan Ulas Aplikasi
- Dukung Saya
-
- Bayar semampunya untuk mendukung saya. Dukungan Anda membantu saya agar berkembang lebih baik
- Sebagai bonus, setelah Anda melakukan pembelian, Anda akan dapat menggunakan dua tema gelap pada aplikasi ini!
- Terima kasih atas dukungannya!\n♥
- Memuat
- Kesalahan
- Gagal menguerikan inventoriDua tema gelap sudah tersedia di pengaturan
+ KesalahanGagal menyelesaikan pembelian
- Pembelian Sukses
- Terima kasih banyak atas pembeliannya! Dua tema gelap kini sudah tersedia di pengaturan
+ Gagal menguerikan inventoriGagal menguerikan pembelianPenyetelan Pembelian Dalam Aplikasi gagalIAP masih memuat
+ Memuat
+ Pembelian SuksesSudah dibeli
+ Beri Nilai dan Ulas Aplikasi
+ Sebagai bonus, setelah Anda melakukan pembelian, Anda akan dapat menggunakan dua tema gelap pada aplikasi ini!
+ Bayar semampunya untuk mendukung saya. Dukungan Anda membantu saya agar berkembang lebih baik
+ Dukung Saya
+ Terima kasih banyak atas pembeliannya! Dua tema gelap kini sudah tersedia di pengaturan
+ Terima kasih atas dukungannya!\n♥
diff --git a/app/src/playstore/res/values-pl/strings.xml b/app/src/playstore/res/values-pl/strings.xml
index 5c35aa0..26ac78d 100644
--- a/app/src/playstore/res/values-pl/strings.xml
+++ b/app/src/playstore/res/values-pl/strings.xml
@@ -1,19 +1,18 @@
- Oceń i przejrzyj aplikację
- Wesprzyj mnie
-
- Możesz zapłacić tyle, ile chcesz, by mnie wspierać. Twoje wsparcie pomaga mi się rozwijać i być lepszym niż kiedykolwiek
- "Po dokonaniu zakupu, jako bonus otrzymasz dostęp do dwóch ciemnych motywów aplikacji!"
- "Dziękuję za wsparcie!\n♥"
- Wczytywanie
- Błąd
- Nie można wysłać zapytania o zasoby reklamoweDwa ciemne motywy powinny być teraz dostępne w ustawieniach
+ BłądNie udało się sfinalizować zakupu
- Zakup pomyślnie zakończony
- Dziękuję bardzo za zakup! Dwa ciemne motywy są teraz dostępne w ustawieniach
+ Nie można wysłać zapytania o zasoby reklamoweNie można wysłać zapytania o zakupyKonfiguracja rozliczeń nie powiodła sięIAP wciąż się ładuje
+ Wczytywanie
+ Zakup pomyślnie zakończonyZakupione
+ Oceń i przejrzyj aplikację
+ "Po dokonaniu zakupu, jako bonus otrzymasz dostęp do dwóch ciemnych motywów aplikacji!"
+ Możesz zapłacić tyle, ile chcesz, by mnie wspierać. Twoje wsparcie pomaga mi się rozwijać i być lepszym niż kiedykolwiek
+ Wesprzyj mnie
+ Dziękuję bardzo za zakup! Dwa ciemne motywy są teraz dostępne w ustawieniach
+ "Dziękuję za wsparcie!\n♥"
diff --git a/app/src/playstore/res/values-pt-rBR/strings.xml b/app/src/playstore/res/values-pt-rBR/strings.xml
index 42385d6..1e235f2 100644
--- a/app/src/playstore/res/values-pt-rBR/strings.xml
+++ b/app/src/playstore/res/values-pt-rBR/strings.xml
@@ -1,19 +1,18 @@
- Avalie e comente o aplicativo
- Ajudar no desenvolvimento
-
- Você pode pagar o que você quiser para me apoiar. Seu apoio me ajuda a crescer mais e melhor do que nunca
- Como bônus, assim que fizer uma compra, você terá acesso aos dois temas escuros do aplicativo!
- Obrigado pelo seu suporte!\n♥
- Carregando
- Erro
- Falha ao consultar o inventárioOs dois temas escuros agora devem estar disponíveis nas configurações
+ ErroFalha ao concluir a compra
- Compra bem sucedida
- Muito obrigado pela compra! Os dois temas escuros estão agora disponíveis nas configurações
+ Falha ao consultar o inventárioFalha ao consultar comprasFalha na configuração de faturamento no aplicativoIAPs ainda carregando
+ Carregando
+ Compra bem sucedidaCompra finalizada
+ Avalie e comente o aplicativo
+ Como bônus, assim que fizer uma compra, você terá acesso aos dois temas escuros do aplicativo!
+ Você pode pagar o que você quiser para me apoiar. Seu apoio me ajuda a crescer mais e melhor do que nunca
+ Ajudar no desenvolvimento
+ Muito obrigado pela compra! Os dois temas escuros estão agora disponíveis nas configurações
+ Obrigado pelo seu suporte!\n♥
diff --git a/app/src/playstore/res/values-zh-rTW/strings.xml b/app/src/playstore/res/values-zh-rTW/strings.xml
index 8b50867..90d8df1 100644
--- a/app/src/playstore/res/values-zh-rTW/strings.xml
+++ b/app/src/playstore/res/values-zh-rTW/strings.xml
@@ -1,19 +1,18 @@
- 為App評分及評論
- 支持我
-
- 您可以支付所需的費用來支持我。您的支持可以協助我比以前更強大,更好地成長
- 當您購買之後,便會得到兩個暗黑主題作為獎勵。
- 感謝您的支持!\n♥
- 請稍候
- 錯誤
- 無法查詢庫存設定內的兩個暗黑主題現在應該可用了
+ 錯誤無法完成購買
- 購買成功
- 非常感謝您購買!設定內的兩個暗黑主題現在可以使用了
+ 無法查詢庫存無法查詢購買狀態應用程式內購買(In-app Billing)設定失敗應用程式內購服務(IAPs)仍在載入
+ 請稍候
+ 購買成功已購買
+ 為App評分及評論
+ 當您購買之後,便會得到兩個暗黑主題作為獎勵。
+ 您可以支付所需的費用來支持我。您的支持可以協助我比以前更強大,更好地成長
+ 支持我
+ 非常感謝您購買!設定內的兩個暗黑主題現在可以使用了
+ 感謝您的支持!\n♥
diff --git a/app/src/playstore/res/values/strings.xml b/app/src/playstore/res/values/strings.xml
index 1edba67..b21ec59 100644
--- a/app/src/playstore/res/values/strings.xml
+++ b/app/src/playstore/res/values/strings.xml
@@ -1,19 +1,18 @@
- Rate and Review the App
- Support me
-
- You can pay what you want to support me. Your support helps me to grow bigger and better than ever
- As a bonus, once you make a purchase, you\'ll get access to the two dark themes of the app!
- Thank you for supporting!\n♥
- Loading
- Error
- Failed to query inventoryThe two dark themes should now be available in the settings
+ ErrorFailed to complete the purchase
- Purchase Successful
- Thank you so much for the purchase! The two dark themes are now available in the settings
+ Failed to query inventoryFailed to query purchasesIn-app Billing setup failedIAPs still loading
+ Loading
+ Purchase SuccessfulPurchased
+ Rate and Review the App
+ As a bonus, once you make a purchase, you\'ll get access to the two dark themes of the app!
+ You can pay what you want to support me. Your support helps me to grow bigger and better than ever
+ Support me
+ Thank you so much for the purchase! The two dark themes are now available in the settings
+ Thank you for supporting!\n♥