commit
868cf0fcb2
47 changed files with 224 additions and 165 deletions
23
CHANGELOG.md
23
CHANGELOG.md
|
@ -1,6 +1,29 @@
|
|||
Changelog
|
||||
==========
|
||||
|
||||
Version 6.1.2 *(2018-12-25)*
|
||||
----------------------------
|
||||
|
||||
* Fixed "Duplicate Event" not working
|
||||
* Fixed a glitch with weekly view sometimes being blank
|
||||
|
||||
Version 6.1.1 *(2018-12-19)*
|
||||
----------------------------
|
||||
|
||||
* Fixed one more case of CalDAV events getting duplicated
|
||||
* Fixed the "New event" button sometimes not working properly
|
||||
* Fixed some cases of empty weekly views at app launch
|
||||
* Few other UX and stability improvements
|
||||
|
||||
Version 6.1.0 *(2018-12-05)*
|
||||
----------------------------
|
||||
|
||||
* Many bugfixed related to CalDAV sync and event importing via .ics files
|
||||
* Fixed a couple weekly view related glitches
|
||||
* Open specific event details on clicking it from Event list widget
|
||||
* Fix a glitch related to events repeating by X weeks for a long time
|
||||
* Many other smaller fixes and performance/stability improvements
|
||||
|
||||
Version 6.0.1 *(2018-11-18)*
|
||||
----------------------------
|
||||
|
||||
|
|
|
@ -15,8 +15,8 @@ android {
|
|||
applicationId "com.simplemobiletools.calendar.pro"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 28
|
||||
versionCode 136
|
||||
versionName "6.0.1"
|
||||
versionCode 139
|
||||
versionName "6.1.2"
|
||||
multiDexEnabled true
|
||||
setProperty("archivesBaseName", "calendar")
|
||||
}
|
||||
|
@ -52,9 +52,9 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.simplemobiletools:commons:5.5.5'
|
||||
implementation 'com.simplemobiletools:commons:5.6.1'
|
||||
implementation 'joda-time:joda-time:2.10.1'
|
||||
implementation 'androidx.multidex:multidex:2.0.0'
|
||||
implementation 'androidx.multidex:multidex:2.0.1'
|
||||
|
||||
kapt 'androidx.room:room-compiler:2.0.0'
|
||||
implementation 'androidx.room:room-runtime:2.0.0'
|
||||
|
|
|
@ -106,6 +106,7 @@
|
|||
|
||||
<activity
|
||||
android:name=".activities.EventActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:parentActivityName=".activities.MainActivity">
|
||||
|
||||
<intent-filter>
|
||||
|
|
|
@ -30,6 +30,7 @@ import java.util.regex.Pattern
|
|||
|
||||
class EventActivity : SimpleActivity() {
|
||||
private val LAT_LON_PATTERN = "^[-+]?([1-8]?\\d(\\.\\d+)?|90(\\.0+)?)([,;])\\s*[-+]?(180(\\.0+)?|((1[0-7]\\d)|([1-9]?\\d))(\\.\\d+)?)\$"
|
||||
private val EVENT = "EVENT"
|
||||
private val START_TS = "START_TS"
|
||||
private val END_TS = "END_TS"
|
||||
private val REMINDER_1_MINUTES = "REMINDER_1_MINUTES"
|
||||
|
@ -183,6 +184,7 @@ class EventActivity : SimpleActivity() {
|
|||
}
|
||||
|
||||
outState.apply {
|
||||
putSerializable(EVENT, mEvent)
|
||||
putLong(START_TS, mEventStartDateTime.seconds())
|
||||
putLong(END_TS, mEventEndDateTime.seconds())
|
||||
|
||||
|
@ -207,6 +209,7 @@ class EventActivity : SimpleActivity() {
|
|||
}
|
||||
|
||||
savedInstanceState.apply {
|
||||
mEvent = getSerializable(EVENT) as Event
|
||||
mEventStartDateTime = Formatter.getDateTimeFromTS(getLong(START_TS))
|
||||
mEventEndDateTime = Formatter.getDateTimeFromTS(getLong(END_TS))
|
||||
|
||||
|
@ -698,13 +701,14 @@ class EventActivity : SimpleActivity() {
|
|||
}
|
||||
|
||||
private fun duplicateEvent() {
|
||||
// the activity has the singleTask launchMode to avoid some glitches, so finish it before relaunching
|
||||
finish()
|
||||
Intent(this, EventActivity::class.java).apply {
|
||||
putExtra(EVENT_ID, mEvent.id)
|
||||
putExtra(EVENT_OCCURRENCE_TS, mEventOccurrenceTS)
|
||||
putExtra(IS_DUPLICATE_INTENT, true)
|
||||
startActivity(this)
|
||||
}
|
||||
finish()
|
||||
}
|
||||
|
||||
private fun saveCurrentEvent() {
|
||||
|
|
|
@ -714,7 +714,8 @@ class MainActivity : SimpleActivity(), RefreshRecyclerViewListener {
|
|||
FAQItem(R.string.faq_4_title_commons, R.string.faq_4_text_commons),
|
||||
FAQItem(getString(R.string.faq_1_title), getString(R.string.faq_1_text)),
|
||||
FAQItem(getString(R.string.faq_2_title), getString(R.string.faq_2_text)),
|
||||
FAQItem(getString(R.string.faq_3_title), getString(R.string.faq_3_text)))
|
||||
FAQItem(getString(R.string.faq_3_title), getString(R.string.faq_3_text)),
|
||||
FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons))
|
||||
|
||||
startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true)
|
||||
}
|
||||
|
|
|
@ -31,8 +31,6 @@ class WidgetListConfigureActivity : SimpleActivity() {
|
|||
private var mTextColorWithoutTransparency = 0
|
||||
private var mTextColor = 0
|
||||
|
||||
private var mEventsAdapter: EventListAdapter? = null
|
||||
|
||||
public override fun onCreate(savedInstanceState: Bundle?) {
|
||||
useDynamicTheme = false
|
||||
super.onCreate(savedInstanceState)
|
||||
|
@ -47,9 +45,10 @@ class WidgetListConfigureActivity : SimpleActivity() {
|
|||
finish()
|
||||
}
|
||||
|
||||
mEventsAdapter = EventListAdapter(this, getListItems(), false, null, config_events_list) {}
|
||||
mEventsAdapter!!.updateTextColor(mTextColor)
|
||||
config_events_list.adapter = mEventsAdapter
|
||||
EventListAdapter(this, getListItems(), false, null, config_events_list) {}.apply {
|
||||
updateTextColor(mTextColor)
|
||||
config_events_list.adapter = this
|
||||
}
|
||||
|
||||
config_save.setOnClickListener { saveConfig() }
|
||||
config_bg_color.setOnClickListener { pickBackgroundColor() }
|
||||
|
@ -127,7 +126,7 @@ class WidgetListConfigureActivity : SimpleActivity() {
|
|||
|
||||
private fun updateColors() {
|
||||
mTextColor = mTextColorWithoutTransparency
|
||||
mEventsAdapter?.updateTextColor(mTextColor)
|
||||
(config_events_list.adapter as? EventListAdapter)?.updateTextColor(mTextColor)
|
||||
config_text_color.setFillWithStroke(mTextColor, Color.BLACK)
|
||||
config_save.setTextColor(mTextColor)
|
||||
}
|
||||
|
|
|
@ -159,7 +159,14 @@ class EventListWidgetAdapter(val context: Context) : RemoteViewsService.RemoteVi
|
|||
context.eventsHelper.getEventsSync(fromTS, toTS, applyTypeFilter = true) {
|
||||
val listItems = ArrayList<ListItem>(it.size)
|
||||
val replaceDescription = context.config.replaceDescription
|
||||
val sorted = it.sortedWith(compareBy({ it.startTS }, { it.endTS }, { it.title }, { if (replaceDescription) it.location else it.description }))
|
||||
val sorted = it.sortedWith(compareBy({
|
||||
if (it.getIsAllDay()) {
|
||||
Formatter.getDayStartTS(Formatter.getDayCodeFromTS(it.startTS))
|
||||
} else {
|
||||
it.startTS
|
||||
}
|
||||
}, { it.endTS }, { it.title }, { if (replaceDescription) it.location else it.description }))
|
||||
|
||||
var prevCode = ""
|
||||
val now = getNowSeconds()
|
||||
val today = Formatter.getDayTitle(context, Formatter.getDayCodeFromTS(now))
|
||||
|
|
|
@ -25,7 +25,6 @@ class MyDayPagerAdapter(fm: FragmentManager, private val mCodes: List<String>, p
|
|||
fragment.mListener = mListener
|
||||
|
||||
mFragments.put(position, fragment)
|
||||
|
||||
return fragment
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,6 @@ class MyMonthPagerAdapter(fm: FragmentManager, private val mCodes: List<String>,
|
|||
fragment.listener = mListener
|
||||
|
||||
mFragments.put(position, fragment)
|
||||
|
||||
return fragment
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import com.simplemobiletools.calendar.pro.fragments.WeekFragment
|
|||
import com.simplemobiletools.calendar.pro.helpers.WEEK_START_TIMESTAMP
|
||||
import com.simplemobiletools.calendar.pro.interfaces.WeekFragmentListener
|
||||
|
||||
class MyWeekPagerAdapter(fm: FragmentManager, val mWeekTimestamps: List<Long>, val mListener: WeekFragmentListener) : FragmentStatePagerAdapter(fm) {
|
||||
class MyWeekPagerAdapter(fm: FragmentManager, private val mWeekTimestamps: List<Long>, private val mListener: WeekFragmentListener) : FragmentStatePagerAdapter(fm) {
|
||||
private val mFragments = SparseArray<WeekFragment>()
|
||||
|
||||
override fun getCount() = mWeekTimestamps.size
|
||||
|
|
|
@ -22,7 +22,6 @@ class MyYearPagerAdapter(fm: FragmentManager, val mYears: List<Int>) : FragmentS
|
|||
fragment.arguments = bundle
|
||||
|
||||
mFragments.put(position, fragment)
|
||||
|
||||
return fragment
|
||||
}
|
||||
|
||||
|
|
|
@ -124,7 +124,11 @@ fun Context.scheduleEventIn(notifTS: Long, event: Event, showToasts: Boolean) {
|
|||
|
||||
val pendingIntent = getNotificationIntent(applicationContext, event)
|
||||
val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||
AlarmManagerCompat.setExactAndAllowWhileIdle(alarmManager, AlarmManager.RTC_WAKEUP, newNotifTS, pendingIntent)
|
||||
try {
|
||||
AlarmManagerCompat.setExactAndAllowWhileIdle(alarmManager, AlarmManager.RTC_WAKEUP, newNotifTS, pendingIntent)
|
||||
} catch (e: Exception) {
|
||||
showErrorToast(e)
|
||||
}
|
||||
}
|
||||
|
||||
fun Context.cancelNotification(id: Long) {
|
||||
|
@ -395,7 +399,16 @@ fun Context.addDayEvents(day: DayMonthly, linearLayout: LinearLayout, res: Resou
|
|||
fun Context.getEventListItems(events: List<Event>): ArrayList<ListItem> {
|
||||
val listItems = ArrayList<ListItem>(events.size)
|
||||
val replaceDescription = config.replaceDescription
|
||||
val sorted = events.sortedWith(compareBy({ it.startTS }, { it.endTS }, { it.title }, { if (replaceDescription) it.location else it.description }))
|
||||
|
||||
// move all-day events in front of others
|
||||
val sorted = events.sortedWith(compareBy({
|
||||
if (it.getIsAllDay()) {
|
||||
Formatter.getDayStartTS(Formatter.getDayCodeFromTS(it.startTS))
|
||||
} else {
|
||||
it.startTS
|
||||
}
|
||||
}, { it.endTS }, { it.title }, { if (replaceDescription) it.location else it.description }))
|
||||
|
||||
var prevCode = ""
|
||||
val now = getNowSeconds()
|
||||
val today = Formatter.getDayTitle(this, Formatter.getDayCodeFromTS(now))
|
||||
|
|
|
@ -353,7 +353,9 @@ class WeekFragment : Fragment(), WeeklyCalendar {
|
|||
|
||||
val minTS = Math.max(startDateTime.seconds(), mWeekTimestamp)
|
||||
val maxTS = Math.min(endDateTime.seconds(), mWeekTimestamp + WEEK_SECONDS)
|
||||
if (minTS == maxTS) {
|
||||
|
||||
// fix a visual glitch with all-day events or events lasting multiple days starting at midnight on monday, being shown the previous week too
|
||||
if (minTS == maxTS && (minTS - mWeekTimestamp == WEEK_SECONDS.toLong())) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -19,13 +19,14 @@ import com.simplemobiletools.calendar.pro.views.MyScrollView
|
|||
import com.simplemobiletools.commons.extensions.updateActionBarSubtitle
|
||||
import com.simplemobiletools.commons.extensions.updateActionBarTitle
|
||||
import com.simplemobiletools.commons.helpers.WEEK_SECONDS
|
||||
import kotlinx.android.synthetic.main.fragment_week_holder.*
|
||||
import com.simplemobiletools.commons.views.MyViewPager
|
||||
import kotlinx.android.synthetic.main.fragment_week_holder.view.*
|
||||
import org.joda.time.DateTime
|
||||
|
||||
class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
||||
private val PREFILLED_WEEKS = 151
|
||||
|
||||
private var viewPager: MyViewPager? = null
|
||||
private var weekHolder: ViewGroup? = null
|
||||
private var defaultWeeklyPage = 0
|
||||
private var thisWeekTS = 0L
|
||||
|
@ -43,6 +44,8 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
|||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
weekHolder = inflater.inflate(R.layout.fragment_week_holder, container, false) as ViewGroup
|
||||
weekHolder!!.background = ColorDrawable(context!!.config.backgroundColor)
|
||||
viewPager = weekHolder!!.week_view_view_pager
|
||||
viewPager!!.id = (System.currentTimeMillis() % 100000).toInt()
|
||||
setupFragment()
|
||||
return weekHolder
|
||||
}
|
||||
|
@ -64,7 +67,7 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
|||
}
|
||||
|
||||
defaultWeeklyPage = weekTSs.size / 2
|
||||
weekHolder!!.week_view_view_pager.apply {
|
||||
viewPager!!.apply {
|
||||
adapter = weeklyAdapter
|
||||
addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
|
||||
override fun onPageScrollStateChanged(state: Int) {}
|
||||
|
@ -88,7 +91,7 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
|||
weekHolder!!.week_view_hours_scrollview.setOnScrollviewListener(object : MyScrollView.ScrollViewListener {
|
||||
override fun onScrollChanged(scrollView: MyScrollView, x: Int, y: Int, oldx: Int, oldy: Int) {
|
||||
weekScrollY = y
|
||||
weeklyAdapter.updateScrollY(week_view_view_pager.currentItem, y)
|
||||
weeklyAdapter.updateScrollY(viewPager!!.currentItem, y)
|
||||
}
|
||||
})
|
||||
weekHolder!!.week_view_hours_scrollview.setOnTouchListener { view, motionEvent -> true }
|
||||
|
@ -97,8 +100,10 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
|||
|
||||
private fun getWeekTimestamps(targetSeconds: Long): List<Long> {
|
||||
val weekTSs = ArrayList<Long>(PREFILLED_WEEKS)
|
||||
for (i in -PREFILLED_WEEKS / 2..PREFILLED_WEEKS / 2) {
|
||||
weekTSs.add(Formatter.getDateTimeFromTS(targetSeconds).plusWeeks(i).seconds())
|
||||
var currWeekTS = targetSeconds - (PREFILLED_WEEKS / 2 * WEEK_SECONDS)
|
||||
for (i in 0 until PREFILLED_WEEKS) {
|
||||
weekTSs.add(currWeekTS)
|
||||
currWeekTS += WEEK_SECONDS
|
||||
}
|
||||
return weekTSs
|
||||
}
|
||||
|
@ -126,8 +131,7 @@ class WeekFragmentsHolder : MyFragmentHolder(), WeekFragmentListener {
|
|||
}
|
||||
|
||||
override fun refreshEvents() {
|
||||
val viewPager = weekHolder?.week_view_view_pager
|
||||
(viewPager?.adapter as? MyWeekPagerAdapter)?.updateCalendars(viewPager.currentItem)
|
||||
(viewPager?.adapter as? MyWeekPagerAdapter)?.updateCalendars(viewPager!!.currentItem)
|
||||
}
|
||||
|
||||
override fun shouldGoToTodayBeVisible() = currentWeekTS != thisWeekTS
|
||||
|
|
|
@ -8,6 +8,7 @@ import android.database.Cursor
|
|||
import android.provider.CalendarContract
|
||||
import android.provider.CalendarContract.Reminders
|
||||
import android.util.SparseIntArray
|
||||
import com.simplemobiletools.calendar.pro.R
|
||||
import com.simplemobiletools.calendar.pro.extensions.*
|
||||
import com.simplemobiletools.calendar.pro.models.CalDAVCalendar
|
||||
import com.simplemobiletools.calendar.pro.models.Event
|
||||
|
@ -318,11 +319,16 @@ class CalDAVHelper(val context: Context) {
|
|||
private fun setupCalDAVEventReminders(event: Event) {
|
||||
clearEventReminders(event)
|
||||
event.getReminders().forEach {
|
||||
ContentValues().apply {
|
||||
val contentValues = ContentValues().apply {
|
||||
put(Reminders.MINUTES, it)
|
||||
put(Reminders.EVENT_ID, event.getCalDAVEventId())
|
||||
put(Reminders.METHOD, Reminders.METHOD_ALERT)
|
||||
context.contentResolver.insert(Reminders.CONTENT_URI, this)
|
||||
}
|
||||
|
||||
try {
|
||||
context.contentResolver.insert(Reminders.CONTENT_URI, contentValues)
|
||||
} catch (e: Exception) {
|
||||
context.toast(R.string.unknown_error_occurred)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.simplemobiletools.calendar.pro.helpers
|
|||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import androidx.collection.LongSparseArray
|
||||
import com.simplemobiletools.calendar.pro.R
|
||||
import com.simplemobiletools.calendar.pro.extensions.*
|
||||
import com.simplemobiletools.calendar.pro.models.Event
|
||||
import com.simplemobiletools.calendar.pro.models.EventType
|
||||
|
@ -246,7 +247,7 @@ class EventsHelper(val context: Context) {
|
|||
|
||||
events.forEach {
|
||||
it.updateIsPastEvent()
|
||||
it.color = eventTypeColors.get(it.eventType)!!
|
||||
it.color = eventTypeColors.get(it.eventType) ?: context.resources.getColor(R.color.color_primary)
|
||||
}
|
||||
|
||||
callback(events)
|
||||
|
|
|
@ -96,7 +96,7 @@ interface EventsDao {
|
|||
@Query("UPDATE events SET event_type = $REGULAR_EVENT_TYPE_ID WHERE event_type = :eventTypeId")
|
||||
fun resetEventsWithType(eventTypeId: Long)
|
||||
|
||||
@Query("UPDATE events SET import_id = :importId AND source = :source WHERE id = :id")
|
||||
@Query("UPDATE events SET import_id = :importId, source = :source WHERE id = :id")
|
||||
fun updateEventImportIdAndSource(importId: String, source: String, id: Long)
|
||||
|
||||
@Query("UPDATE events SET repeat_limit = :repeatLimit WHERE id = :id")
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
style="@style/ArrowStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignBottom="@+id/top_value"
|
||||
android:layout_alignTop="@+id/top_value"
|
||||
android:layout_alignBottom="@+id/top_value"
|
||||
android:paddingLeft="@dimen/medium_margin"
|
||||
android:paddingRight="@dimen/medium_margin"
|
||||
android:src="@drawable/ic_pointer_left"/>
|
||||
|
@ -23,46 +23,47 @@
|
|||
style="@style/MonthStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toLeftOf="@+id/top_right_arrow"
|
||||
android:layout_toLeftOf="@+id/top_go_to_today"
|
||||
android:layout_toRightOf="@+id/top_left_arrow"
|
||||
android:gravity="center"
|
||||
android:lines="1"
|
||||
android:paddingBottom="@dimen/medium_margin"
|
||||
android:paddingTop="@dimen/medium_margin"
|
||||
android:textSize="@dimen/month_text_size"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/top_right_arrow"
|
||||
style="@style/ArrowStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignBottom="@+id/top_value"
|
||||
android:layout_alignTop="@+id/top_value"
|
||||
android:layout_toLeftOf="@+id/top_go_to_today"
|
||||
android:paddingLeft="@dimen/medium_margin"
|
||||
android:paddingRight="@dimen/medium_margin"
|
||||
android:src="@drawable/ic_pointer_right"/>
|
||||
android:paddingBottom="@dimen/medium_margin"
|
||||
android:textSize="@dimen/month_text_size"
|
||||
tools:text="January"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/top_go_to_today"
|
||||
style="@style/ArrowStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignBottom="@+id/top_value"
|
||||
android:layout_alignTop="@+id/top_value"
|
||||
android:layout_toLeftOf="@+id/top_new_event"
|
||||
android:layout_alignBottom="@+id/top_value"
|
||||
android:layout_toLeftOf="@+id/top_right_arrow"
|
||||
android:paddingLeft="@dimen/medium_margin"
|
||||
android:paddingRight="@dimen/medium_margin"
|
||||
android:src="@drawable/ic_today"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/top_right_arrow"
|
||||
style="@style/ArrowStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignTop="@+id/top_value"
|
||||
android:layout_alignBottom="@+id/top_value"
|
||||
android:layout_toLeftOf="@+id/top_new_event"
|
||||
android:paddingLeft="@dimen/medium_margin"
|
||||
android:paddingRight="@dimen/medium_margin"
|
||||
android:src="@drawable/ic_pointer_right"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/top_new_event"
|
||||
style="@style/ArrowStyle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignTop="@+id/top_value"
|
||||
android:layout_alignBottom="@+id/top_value"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignTop="@+id/top_value"
|
||||
android:paddingLeft="@dimen/medium_margin"
|
||||
android:paddingRight="@dimen/medium_margin"
|
||||
android:src="@drawable/ic_plus"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<ImageView
|
||||
android:id="@+id/week_view_hours_divider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignRight="@+id/week_view_hours_scrollview"
|
||||
android:background="@drawable/stroke_bottom_right"
|
||||
android:importantForAccessibility="no"/>
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Hadisələri, dəyişdirilən widgeti olan, reklam ehtiva etməyən sadə bir kalendar.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
CalDAV sinxronizasiyalı sadə bir kalendar. Siz asanca təkrarlanan hadisələrinizi və xatırladıcılarınızı yarada bilərsiniz, hətta həftə nömrələrini də göstərə bilir.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Un deiziataer eeun gant darvoudoù, widjetoù personelaus ha tamm bruderezh ebet.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Un deiziataer eeun gant ur goubredañ diret da zeiziataer CalDAV. Aes eo krouiñ darvoudoù a addegouezh ha lakaat adc\'halvoù. Gallout a ra ivez diskouez niverenn ar sizhunvezhioù.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Jednoduchý kalendář s událostmi, přizpůsobitelné widgety a žádné reklamy.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Jednoduchý kalendář s volitelnou synchronizací CalDAV. Můžete snadno vytvářet opakující se události a nastavovat připomenutí, můžete také zobrazovat čísla týdnů.
|
||||
|
||||
|
|
|
@ -216,7 +216,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">En simpel reklamefri kalender med begivenheder og en widget der kan tilpasses.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
En simpel kalender med mulighed for at synkronisere med CalDAV. Nem opsætning af gentagne begivenheder og af påmindelser.
|
||||
|
||||
|
|
|
@ -141,8 +141,8 @@
|
|||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Termintypen verwalten</string>
|
||||
<string name="start_day_at">Wochenansicht beginnt am</string>
|
||||
<string name="end_day_at">Wochenansicht endet am</string>
|
||||
<string name="start_day_at">Wochenansicht beginnt um</string>
|
||||
<string name="end_day_at">Wochenansicht endet um</string>
|
||||
<string name="week_numbers">Kalenderwoche anzeigen</string>
|
||||
<string name="vibrate">Vibration bei Erinnerung</string>
|
||||
<string name="reminder_sound">Erinnerungston</string>
|
||||
|
@ -168,7 +168,7 @@
|
|||
<string name="default_reminder_1">Standarderinnerung 1</string>
|
||||
<string name="default_reminder_2">Standarderinnerung 2</string>
|
||||
<string name="default_reminder_3">Standarderinnerung 3</string>
|
||||
<string name="view_to_open_from_widget">Standardansicht</string>
|
||||
<string name="view_to_open_from_widget">Ansicht beim Öffnen durch das Terminlisten-Widget</string>
|
||||
<string name="last_view">Letzte Ansicht</string>
|
||||
|
||||
<!-- CalDAV sync -->
|
||||
|
@ -182,8 +182,8 @@
|
|||
<string name="editing_calendar_failed">Ändern des Kalenders fehlgeschlagen</string>
|
||||
<string name="syncing">Wird synchronisiert…</string>
|
||||
<string name="synchronization_completed">Synchronisation erfolgreich</string>
|
||||
<string name="select_a_different_caldav_color">Select a different color (might be applied locally only)</string>
|
||||
<string name="insufficient_permissions">You are not allowed to write in the selected calendar</string>
|
||||
<string name="select_a_different_caldav_color">Wähle eine andere Farbe (wird möglicherweise nur lokal angewendet)</string>
|
||||
<string name="insufficient_permissions">Du hast keine Erlaubnis den gewählten Kalender zu bearbeiten</string>
|
||||
|
||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||
<!-- used in repetition, like "Every last Sunday" -->
|
||||
|
@ -219,7 +219,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Ein einfacher Kalender mit personalisierbaren Bedienelementen und ohne Werbung.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Ein schlichter Kalender mit optionaler CalDAV-Synchronisation. Du kannst ganz einfach wiederholende Termine sowie Erinnerungen erstellen, inklusive optionaler Anzeige der Kalenderwoche.
|
||||
|
||||
|
|
|
@ -164,12 +164,12 @@
|
|||
<string name="alarm_stream">Αφύπνιση</string>
|
||||
<string name="notification_stream">Ειδοποίηση</string>
|
||||
<string name="ring_stream">Κουδούνισμα</string>
|
||||
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
|
||||
<string name="default_reminder_1">Default reminder 1</string>
|
||||
<string name="default_reminder_2">Default reminder 2</string>
|
||||
<string name="default_reminder_3">Default reminder 3</string>
|
||||
<string name="view_to_open_from_widget">View to open from the event list widget</string>
|
||||
<string name="last_view">Last view</string>
|
||||
<string name="use_last_event_reminders">Χρήση τελευταίων συμβάντων\' υπενθυμίσεις ως προεπιλογή για νέο συμβάν</string>
|
||||
<string name="default_reminder_1">Προεπιλογή υπενθύμισης 1</string>
|
||||
<string name="default_reminder_2">Προεπιλογή υπενθύμισης 2</string>
|
||||
<string name="default_reminder_3">Προεπιλογή υπενθύμισης 3</string>
|
||||
<string name="view_to_open_from_widget">Προβολή για να ανοίξετε από το widget λίστας συμβάντων</string>
|
||||
<string name="last_view">Τελευταία προβολή</string>
|
||||
|
||||
<!-- CalDAV sync -->
|
||||
<string name="caldav">CalDAV</string>
|
||||
|
@ -182,8 +182,8 @@
|
|||
<string name="editing_calendar_failed">Η επεξεργασία του ημερολογίου απέτυχε</string>
|
||||
<string name="syncing">Συγχρονισμός…</string>
|
||||
<string name="synchronization_completed">Ο συγχρονισμός ολοκληρώθηκε</string>
|
||||
<string name="select_a_different_caldav_color">Select a different color (might be applied locally only)</string>
|
||||
<string name="insufficient_permissions">You are not allowed to write in the selected calendar</string>
|
||||
<string name="select_a_different_caldav_color">Επιλέξτε διαφορετικό χρώμα (μπορεί να εφαρμοστεί μόνο τοπικά)</string>
|
||||
<string name="insufficient_permissions">Δεν επιτρέπεται η εγγραφή στο επιλεγμένο ημερολόγιο</string>
|
||||
|
||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||
<!-- used in repetition, like "Every last Sunday" -->
|
||||
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Ένα απλό ημερολόγιο με εκδηλώσεις, προσαρμόσιμο widget και χωρίς διαφημίσεις.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Ένα απλό ημερολόγιο με προαιρετικό συγχρονισμό CalDAV. Μπορείτε εύκολα να δημιουργήσετε επαναλαμβανόμενες εκδηλώσεις με ρυθμίσεις υπενθυμίσεων, μπορεί επίσης να εμφανίσει αριθμούς εβδομάδων.
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<string name="app_name">Simple Calendar</string>
|
||||
<string name="app_launcher_name">Calendar</string>
|
||||
<string name="change_view">Cambiar vista</string>
|
||||
<string name="daily_view">Daily view</string>
|
||||
<string name="daily_view">Vista diaria</string>
|
||||
<string name="weekly_view">Vista semanal</string>
|
||||
<string name="monthly_view">Vista mensual</string>
|
||||
<string name="yearly_view">Vista anual</string>
|
||||
|
@ -19,15 +19,15 @@
|
|||
<string name="event">Evento</string>
|
||||
<string name="edit_event">Editar evento</string>
|
||||
<string name="new_event">Nuevo evento</string>
|
||||
<string name="create_new_event">Create a new event</string>
|
||||
<string name="duplicate_event">Duplicate event</string>
|
||||
<string name="create_new_event">Crear nuevo evento</string>
|
||||
<string name="duplicate_event">Duplicar evento</string>
|
||||
<string name="title_empty">El título no puede estar vacío</string>
|
||||
<string name="end_before_start">El evento no puede acabar antes de iniciarse</string>
|
||||
<string name="event_added">El evento se ha añadido con éxito</string>
|
||||
<string name="event_updated">El evento se ha actualizado con éxito</string>
|
||||
<string name="filter_events_by_type">Filtrar eventos según tipo</string>
|
||||
<string name="please_fill_location">Please fill in a location to be shown on a map</string>
|
||||
<string name="public_event_notification_text">An event is upcoming</string>
|
||||
<string name="please_fill_location">Introduzca ubicación para mostrar en el mapa</string>
|
||||
<string name="public_event_notification_text">Evento próximo a realizarse</string>
|
||||
|
||||
<!-- Event Repetition -->
|
||||
<string name="repetition">Repetición</string>
|
||||
|
@ -44,12 +44,12 @@
|
|||
<string name="event_is_repeatable">Este evento se repite</string>
|
||||
<string name="selection_contains_repetition">La selección contiene repetición de eventos</string>
|
||||
<string name="delete_one_only">Eliminar sólo el evento seleccionado</string>
|
||||
<string name="delete_future_occurrences">Delete this and all future occurrences</string>
|
||||
<string name="delete_future_occurrences">Eliminar evento y repeticiones futuras</string>
|
||||
<string name="delete_all_occurrences">Eliminar todos los eventos</string>
|
||||
<string name="update_one_only">Actualizar sólo el evento seleccionado</string>
|
||||
<string name="update_all_occurrences">Actualizar todos los eventos</string>
|
||||
<string name="repeat_till_date">Repetir hasta la fecha</string>
|
||||
<string name="stop_repeating_after_x">Stop repeating after x occurrences</string>
|
||||
<string name="stop_repeating_after_x">Repetir un número de ocasiones</string>
|
||||
<string name="repeat_forever">Repetir por siempre</string>
|
||||
<string name="times">veces</string>
|
||||
<string name="repeat">Repetir</string>
|
||||
|
@ -60,7 +60,7 @@
|
|||
<string name="the_last_day">El último día</string>
|
||||
<string name="repeat_on_the_same_day_monthly">Repetir en el mismo día cada mes</string>
|
||||
<string name="repeat_on_the_last_day_monthly">Repetir en el último día del mes</string>
|
||||
<string name="repeat_on_the_same_day_yearly">Repeat on the same day every year</string>
|
||||
<string name="repeat_on_the_same_day_yearly">Repetir en el mismo día cada año</string>
|
||||
<string name="repeat_every_m">Repetir cada</string>
|
||||
<string name="every_m">Cada</string>
|
||||
<string name="first_m">primero</string>
|
||||
|
@ -101,12 +101,12 @@
|
|||
<string name="import_events">Importar eventos</string>
|
||||
<string name="export_events">Exportar eventos</string>
|
||||
<string name="import_events_from_ics">Importar eventos desde un archivo .ics</string>
|
||||
<string name="export_events_to_ics">Exportar eventos desde un archivo .ics</string>
|
||||
<string name="export_events_to_ics">Exportar eventos a un archivo .ics</string>
|
||||
<string name="default_event_type">Tipo de evento predeterminado</string>
|
||||
<string name="export_past_events_too">Exportar también eventos pasados</string>
|
||||
<string name="include_event_types">Incluir tipos de evento</string>
|
||||
<string name="filename_without_ics">Nombre del archivo (sin .ics)</string>
|
||||
<string name="override_event_types">Override event types in the file</string>
|
||||
<string name="filename_without_ics">Nombre del archivo (sin extensión .ics)</string>
|
||||
<string name="override_event_types">Sobreescribir tipos de evento en el archivo</string>
|
||||
|
||||
<!-- Event details -->
|
||||
<string name="title">Título</string>
|
||||
|
@ -135,7 +135,7 @@
|
|||
<string name="add_holidays">Añadir festivos</string>
|
||||
<string name="national_holidays">Fiestas nacionales</string>
|
||||
<string name="religious_holidays">Fiestas regionales</string>
|
||||
<string name="holidays_imported_successfully">Holidays have been successfully imported into the \"Holidays\" event type</string>
|
||||
<string name="holidays_imported_successfully">Festivos han sido importadas como eventos tipo \"Holidays\"</string>
|
||||
<string name="importing_some_holidays_failed">Ha habido un fallo al importar eventos</string>
|
||||
<string name="importing_holidays_failed">Ha habido un fallo al importar días festivos</string>
|
||||
|
||||
|
@ -152,28 +152,28 @@
|
|||
<string name="caldav_sync">Sincronizar CalDAV</string>
|
||||
<string name="event_lists">Listas de eventos</string>
|
||||
<string name="display_past_events">Mostrar eventos pasados</string>
|
||||
<string name="replace_description_with_location">Replace event description with location</string>
|
||||
<string name="delete_all_events">Delete all events</string>
|
||||
<string name="delete_all_events_confirmation">Are you sure you want to delete all events? This will leave your event types and other settings intact.</string>
|
||||
<string name="show_a_grid">Show a grid</string>
|
||||
<string name="loop_reminders">Loop reminders until dismissed</string>
|
||||
<string name="dim_past_events">Dim past events</string>
|
||||
<string name="events">Events</string>
|
||||
<string name="reminder_stream">Audio stream used by reminders</string>
|
||||
<string name="system_stream">System</string>
|
||||
<string name="alarm_stream">Alarm</string>
|
||||
<string name="notification_stream">Notification</string>
|
||||
<string name="replace_description_with_location">Usar ubicación como descripción del evento</string>
|
||||
<string name="delete_all_events">Borrar todos los eventos</string>
|
||||
<string name="delete_all_events_confirmation">¿Está seguro de borrar todos los eventos? Se mantendrán los tipos de evento y otros ajustes.</string>
|
||||
<string name="show_a_grid">Mostrar rejilla</string>
|
||||
<string name="loop_reminders">Repetir recordatorios hasta ser descartados</string>
|
||||
<string name="dim_past_events">Sombrear eventos pasados</string>
|
||||
<string name="events">Eventos</string>
|
||||
<string name="reminder_stream">Sonido usado en recordatorios</string>
|
||||
<string name="system_stream">Sistema</string>
|
||||
<string name="alarm_stream">Alarma</string>
|
||||
<string name="notification_stream">Notificación</string>
|
||||
<string name="ring_stream">Ring</string>
|
||||
<string name="use_last_event_reminders">Use the last events\' reminders as the default for new event</string>
|
||||
<string name="default_reminder_1">Default reminder 1</string>
|
||||
<string name="default_reminder_2">Default reminder 2</string>
|
||||
<string name="default_reminder_3">Default reminder 3</string>
|
||||
<string name="view_to_open_from_widget">View to open from the event list widget</string>
|
||||
<string name="last_view">Last view</string>
|
||||
<string name="use_last_event_reminders">Reusar último recordatorio para nuevos eventos</string>
|
||||
<string name="default_reminder_1">Recordatorio 1</string>
|
||||
<string name="default_reminder_2">Recordatorio 2</string>
|
||||
<string name="default_reminder_3">Recordatorio 3</string>
|
||||
<string name="view_to_open_from_widget">Vista por defecto al abrir desde el widget</string>
|
||||
<string name="last_view">Última vista</string>
|
||||
|
||||
<!-- CalDAV sync -->
|
||||
<string name="caldav">CalDAV</string>
|
||||
<string name="select_caldav_calendars">Selecciona los calendarios a sincronizar</string>
|
||||
<string name="select_caldav_calendars">Seleccionar calendarios a sincronizar</string>
|
||||
<string name="manage_synced_calendars">Gestionar los calendarios sincronizados</string>
|
||||
<string name="store_locally_only">Almacenar sólo en local</string>
|
||||
<string name="refresh_caldav_calendars">Actualizar los calendarios CalDAV</string>
|
||||
|
@ -182,8 +182,8 @@
|
|||
<string name="editing_calendar_failed">Edición de calendario fallida</string>
|
||||
<string name="syncing">Sincronizando…</string>
|
||||
<string name="synchronization_completed">Sincronización completa</string>
|
||||
<string name="select_a_different_caldav_color">Select a different color (might be applied locally only)</string>
|
||||
<string name="insufficient_permissions">You are not allowed to write in the selected calendar</string>
|
||||
<string name="select_a_different_caldav_color">Seleccionar un color diferente (localmente)</string>
|
||||
<string name="insufficient_permissions">No tiene permiso para modificar el calendario</string>
|
||||
|
||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||
<!-- used in repetition, like "Every last Sunday" -->
|
||||
|
@ -206,9 +206,9 @@
|
|||
<string name="sample_title_5">Hora de café</string>
|
||||
|
||||
<!-- FAQ -->
|
||||
<string name="faq_1_title">How can I remove the holidays imported via the \"Add holidays\" button?</string>
|
||||
<string name="faq_1_text">Holidays created that way are inserted in a new event type called \"Holidays\". You can go in Settings -> Manage Event Types,
|
||||
long press the given event type and delete it by selecting the trashbin.</string>
|
||||
<string name="faq_1_title">¿Cómo puedo eliminar las festivos importados a través del botón \"Añadir festivos\"?</string>
|
||||
<string name="faq_1_text">Los eventos creados de esa manera tienen un tipo de evento llamado \"Días Festivos\". Puede seleccionarlos todos desde Ajustes->Gestionar tipos de eventos,
|
||||
y usar una pulsación larga para eliminar el tipo de evento y todos sus eventos pulsando en la papelera.</string>
|
||||
<string name="faq_2_title">Can I sync my events via Google Calendar, or other service supporting CalDAV?</string>
|
||||
<string name="faq_2_text">Yes, just toggle \"CalDAV sync\" in the app settings and select the calendars you want to sync. However, you will need some third party app handling the synchronization between the device and servers.
|
||||
In case you want to synchronize a Google calendar, their official Calendar app will do the job. For other calendars you will need a third party sync adapter, for example DAVdroid.</string>
|
||||
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Un sencillo calendario con eventos, widget personalizable y sin anuncios.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Un simple calendario con sincronización opcional con CalDAV. Puedes crear fácilmente eventos que se repitan y configurar recordatorios, o que te muestre los días de la semana.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Un calendrier simple avec événements, widget personnalisable, sans publicité.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Un calendrier hors ligne sans aucune autre intégration de calendrier. Vous pouvez aisément créer des événements récurrents et configurer des rappels, il est aussi possible d\'afficher les numéros de semaine.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Un calendario simple con eventos, widget personalizable e sin anuncios.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Un calendario que funciona sin precisar sincronización CalDAV. Pode crear fácilmente eventos recurrentes e configurar recordatorios. También mostra o número de semana.
|
||||
|
||||
|
|
|
@ -219,7 +219,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">एक सरल कैलेंडर इवेंट्स, कस्टमाइजेबल विजेट व बिना विज्ञापन के बिना।</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
एक ऑफलाइन कैलेंडर बिना अन्य कैलेंडर इंटीग्रेशन के। आप आसानी से इवेंट्स व रिमाइंडर बना सकते हैं, यह सफ्ताह क्रमांक भी दर्शाता हैं।
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Jednostavan kalendar s događajima, prilagodljivim widget i bez oglasa.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Jednostavan kalendar s dodatnom CalDAV sinkronizacijom. Možete jednostavno stvoriti ponavljajuće događaje i postaviti podsjetnike, također je moguće prikazati tjedne brojeve.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Egy egyszerű naptár bejegyzésekkel, widget-tel és reklámok nélkül.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Egy egyszerű naptár, CalDAV integráció lehetőségével. Könnyedén lehet ismétlődő eseményeket és emlékeztetőket felvenni, és a hetek sorszámait is mutatja.
|
||||
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Simple Calendar</string>
|
||||
<string name="app_name">Semplice calendario</string>
|
||||
<string name="app_launcher_name">Calendario</string>
|
||||
<string name="change_view">Cambia vista</string>
|
||||
<string name="daily_view">Vista giornaliera</string>
|
||||
<string name="weekly_view">Vista settimanale</string>
|
||||
<string name="monthly_view">Vista mensile</string>
|
||||
<string name="yearly_view">Vista annuale</string>
|
||||
<string name="simple_event_list">Lista eventi semplice</string>
|
||||
<string name="no_upcoming_events">Sembra che tu non abbia nessun evento imminente.</string>
|
||||
<string name="simple_event_list">Lista semplice deli eventi</string>
|
||||
<string name="no_upcoming_events">Non c\'è nessun evento imminente.</string>
|
||||
<string name="go_to_today">Vai a oggi</string>
|
||||
|
||||
<!-- Widget titles -->
|
||||
<string name="widget_monthly">Calendario mensile</string>
|
||||
<string name="widget_list">Lista eventi calendario</string>
|
||||
<string name="widget_list">Lista degli eventi del calendario</string>
|
||||
|
||||
<!-- Event -->
|
||||
<string name="event">Evento</string>
|
||||
|
@ -22,7 +22,7 @@
|
|||
<string name="create_new_event">Crea un nuovo evento</string>
|
||||
<string name="duplicate_event">Duplica evento</string>
|
||||
<string name="title_empty">Il titolo non può essere vuoto</string>
|
||||
<string name="end_before_start">L\'evento non può terminare prima del suo ianizio</string>
|
||||
<string name="end_before_start">L\'evento non può terminare prima del suo inizio</string>
|
||||
<string name="event_added">Evento aggiunto correttamente</string>
|
||||
<string name="event_updated">Evento aggiornato correttamente</string>
|
||||
<string name="filter_events_by_type">Filtra eventi per tipologia</string>
|
||||
|
@ -53,9 +53,9 @@
|
|||
<string name="repeat_forever">Ripeti per sempre</string>
|
||||
<string name="times">volte</string>
|
||||
<string name="repeat">Ripeti</string>
|
||||
<string name="repeat_on">Ripeti</string>
|
||||
<string name="repeat_on">Ripeti su</string>
|
||||
<string name="every_day">Ogni giorno</string>
|
||||
<string name="selected_days">On selected days</string>
|
||||
<string name="selected_days">Nei giorni selezionati</string>
|
||||
<string name="the_same_day">Lo stesso giorno</string>
|
||||
<string name="the_last_day">L\'ultimo giorno</string>
|
||||
<string name="repeat_on_the_same_day_monthly">Ripeti lo stesso giorno ogni mese </string>
|
||||
|
@ -71,23 +71,23 @@
|
|||
|
||||
<!-- alternative versions for some languages, use the same translations if you are not sure what this means -->
|
||||
<!-- used in repetition, like "Every first Sunday" -->
|
||||
<string name="repeat_every_f">Repeat every</string>
|
||||
<string name="every_f">Every</string>
|
||||
<string name="first_f">first</string>
|
||||
<string name="second_f">second</string>
|
||||
<string name="third_f">third</string>
|
||||
<string name="fourth_f">fourth</string>
|
||||
<string name="last_f">last</string>
|
||||
<string name="repeat_every_f">Ripeti ogni</string>
|
||||
<string name="every_f">Ogni</string>
|
||||
<string name="first_f">primo</string>
|
||||
<string name="second_f">secondo</string>
|
||||
<string name="third_f">terzo</string>
|
||||
<string name="fourth_f">quarto</string>
|
||||
<string name="last_f">ultimo</string>
|
||||
|
||||
<!-- Birthdays -->
|
||||
<string name="birthdays">Compleanni</string>
|
||||
<string name="add_birthdays">Aggiungi compleanni contatti</string>
|
||||
<string name="add_birthdays">Aggiungi compleanni dai contatti</string>
|
||||
<string name="no_birthdays">Nessun compleanno trovato</string>
|
||||
<string name="birthdays_added">Compleanni aggiunti con successo</string>
|
||||
|
||||
<!-- Anniversaries -->
|
||||
<string name="anniversaries">Anniversari</string>
|
||||
<string name="add_anniversaries">Aggiungi anniversari contatti</string>
|
||||
<string name="add_anniversaries">Aggiungi anniversari dai contatti</string>
|
||||
<string name="no_anniversaries">Nessun anniversario trovato</string>
|
||||
<string name="anniversaries_added">Anniversari aggiunti con successo</string>
|
||||
|
||||
|
@ -102,9 +102,9 @@
|
|||
<string name="export_events">Esporta eventi</string>
|
||||
<string name="import_events_from_ics">Importa eventi da un file .ics</string>
|
||||
<string name="export_events_to_ics">Esporta eventi in un file .ics</string>
|
||||
<string name="default_event_type">Tipo evento predefinito</string>
|
||||
<string name="export_past_events_too">Esporta anche eventi passati</string>
|
||||
<string name="include_event_types">Includi tipi evento</string>
|
||||
<string name="default_event_type">Tipo predefinito per un evento</string>
|
||||
<string name="export_past_events_too">Esporta anche gli eventi passati</string>
|
||||
<string name="include_event_types">Includi i tipi di evento</string>
|
||||
<string name="filename_without_ics">Nome file (senza .ics)</string>
|
||||
<string name="override_event_types">Sovrascrivi i tipi di eventi nel file</string>
|
||||
|
||||
|
@ -118,7 +118,7 @@
|
|||
<string name="week">Settimana</string>
|
||||
|
||||
<!-- Event types -->
|
||||
<string name="event_types">Tipi evento</string>
|
||||
<string name="event_types">Tipi di evento</string>
|
||||
<string name="add_new_type">Aggiungi nuovo tipo</string>
|
||||
<string name="edit_type">Modifica tipo</string>
|
||||
<string name="type_already_exists">Un tipo con questo titolo esiste già</string>
|
||||
|
@ -140,7 +140,7 @@
|
|||
<string name="importing_holidays_failed">Importo delle feste fallito</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="manage_event_types">Gestisci tipi evento</string>
|
||||
<string name="manage_event_types">Gestisci i tipi di evento</string>
|
||||
<string name="start_day_at">Il giorno inizia alle</string>
|
||||
<string name="end_day_at">Il giorno finisce alle</string>
|
||||
<string name="week_numbers">Mostra numero settimane</string>
|
||||
|
@ -154,7 +154,7 @@
|
|||
<string name="display_past_events">Mostra eventi passati</string>
|
||||
<string name="replace_description_with_location">Sostituisci la descrizione con la posizione</string>
|
||||
<string name="delete_all_events">Cancella tutti gli eventi</string>
|
||||
<string name="delete_all_events_confirmation">Vuoi cancellare tutti gli eventi? Questo lascerà i tuoi tipi evento e le altre impostazioni invariate.</string>
|
||||
<string name="delete_all_events_confirmation">Vuoi cancellare tutti gli eventi? Questo lascerà i tuoi tipi di evento e le altre impostazioni invariate.</string>
|
||||
<string name="show_a_grid">Mostra una griglia</string>
|
||||
<string name="loop_reminders">Manda in loop i promemoria finchè non vengono rimossi</string>
|
||||
<string name="dim_past_events">Rimuovi gli eventi passati</string>
|
||||
|
@ -199,38 +199,38 @@
|
|||
<string name="sample_title_1">Allenamento</string>
|
||||
<string name="sample_description_1">Gambe</string>
|
||||
<string name="sample_title_2">Incontro con Giovanni</string>
|
||||
<string name="sample_description_2">Nel giardino di Milano</string>
|
||||
<string name="sample_description_2">Al giardino di Milano</string>
|
||||
<string name="sample_title_3">Liberia</string>
|
||||
<string name="sample_title_4">Pranzo con Maria</string>
|
||||
<string name="sample_description_4">Nel ristorante Magione</string>
|
||||
<string name="sample_description_4">Al ristorante Magione</string>
|
||||
<string name="sample_title_5">Pausa caffè</string>
|
||||
|
||||
<!-- FAQ -->
|
||||
<string name="faq_1_title">Come posso rimuovere i le festività importate tramite il pulsante \"Aggiungi festività\"?</string>
|
||||
<string name="faq_1_text">Le festività create in questo modo sono inseriti in eventi di tipo \"Festività\". Puoi andare in Impostazioni -> Gestisci tipi di eventi,
|
||||
tenere premuto sul tipo desiderato ed eliminaro selezionando il cestino.</string>
|
||||
<string name="faq_2_title">Posso sincronizzare i miei eventi tramite Google Calendar, od altri servizi che supportano CalDAV?</string>
|
||||
<string name="faq_2_text">Sì, basta commutare l\'opzione \"Sincronizzazione CalDAV\" nelle impostazioni dell\'applicazione e selezionare i calendari da sincronizzare. Comunque è necessaria un\'applicazione di terze parti per gestire la sincronizzazione tra dispositivo e server.
|
||||
In caso si voglia sincronizzare con Google Calendar, la loro applicazione ufficiale effettua questo lavoro. Per altri calendari è necessario un adattatore di terze parti, per esempio DAVdroid.</string>
|
||||
<string name="faq_1_title">Come posso rimuovere le festività importate tramite il pulsante \"Aggiungi festività\"?</string>
|
||||
<string name="faq_1_text">Le festività create in questo modo sono inseriti in eventi di tipo \"Festività\". Andare in Impostazioni → Gestisci tipi di eventi,
|
||||
tenere premuto sul tipo desiderato ed eliminarlo selezionando il cestino.</string>
|
||||
<string name="faq_2_title">Posso sincronizzare i miei eventi tramite Google Calendar, o altri servizi che supportano CalDAV?</string>
|
||||
<string name="faq_2_text">Sì, basta attivare l\'opzione \"Sincronizzazione CalDAV\" nelle impostazioni dell\'applicazione e selezionare i calendari da sincronizzare. Comunque è necessaria un\'applicazione di terze parti per gestire la sincronizzazione tra dispositivo e server.
|
||||
In caso si voglia sincronizzare con Google Calendar, la loro applicazione ufficiale effettua questo lavoro. Per altri calendari sono necessarie applicazioni di terze parti, per esempio DAVdroid.</string>
|
||||
<string name="faq_3_title">Visualizzo i promemoria, ma non sento l\'audio. Cosa posso fare?</string>
|
||||
<string name="faq_3_text">Non solo visualizzare l\'attuale promemoria, ma anche riprodurre l\'audio è un lavoro prettamente del sistema. Se non senti alcun suono, prova ad andare nelle impostazioni dell\'applicazione,
|
||||
premi l\'opzione \"Canale audio utilizzato per il promemoria\" e cambia il canale. Se ancora non funziona, controlla le tue impostazioni dell\'audio, in particolare se il canale è stato mutato.</string>
|
||||
<string name="faq_3_text">Non solo visualizzare l\'attuale promemoria, ma anche riprodurre l\'audio è un lavoro prettamente del sistema. Se non si sente alcun suono, provare ad andare nelle impostazioni dell\'applicazione,
|
||||
premere l\'opzione \"Canale audio utilizzato per il promemoria\" e cambia il canale. Se ancora non funziona, controllare le impostazioni dell\'audio, in particolare se il canale è stato mutato.</string>
|
||||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Un semplice calendario con eventi, widget personalizzabili e senza pubblicità.</string>
|
||||
<string name="app_short_description">Un calendario per gestire gli eventi senza pubblicità.</string>
|
||||
<string name="app_long_description">
|
||||
Un semplice calendario con l\'opzione di sincronizzazione CalDAV. Puoi facilmente creare eventi ricorrenti ed impostare promemoria, mostra anche il numero di settimana.
|
||||
Un semplice calendario con l\'opzione di sincronizzazione CalDAV. Si possono facilmente creare eventi ricorrenti e impostare promemoria, mostra anche il numero di settimana.
|
||||
|
||||
Contiene una vista mensile ed un widget con la lista degli eventi, con il colore del testo personalizzabile, come per la trasparenza ed il colore dello sfondo,
|
||||
Contiene una vista mensile e un widget con la lista degli eventi, con il colore del testo personalizzabile, come per la trasparenza ed il colore dello sfondo.
|
||||
|
||||
Non contiene pubblicità o permessi non necessari. È completamente opensource, fornisce anche colori personalizzabili.
|
||||
|
||||
Il permesso di archiviazione è necesario solamente per esportare od importare venti da file .ics.
|
||||
L\'applicazione non contiene pubblicità o permessi non necessari; è completamente opensource e la si può personalizzare con i propri colori preferiti.
|
||||
|
||||
Il permesso di archiviazione è necesario solamente per esportare od importare venti da file .ic
|
||||
|
||||
Il permesso dei contatti è usato solamente per importare i compleanni e gli anniversari.
|
||||
|
||||
Questa applicazione è solamente una di una serie. Puoi trovare le altre su https://www.simplemobiletools.com
|
||||
Questa è solamente una delle tante applicazioni della serie Simple Mobile Tools. Si possono trovare le altre su https://www.simplemobiletools.com
|
||||
</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -219,7 +219,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">לוח שנה פשוט עם אירועים, וויג\'ט בעיצוב אישי וללא פרסומות</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">לוח שנה אוף-ליין ללא כל אינטגרציה עם לוח שנה אחר. אפשר בקלות ליצור אירועים מחזוריים ותזכורות אליהם. יש אפשרות להציג את מספרי השבועות. מכיל וויג\'ט 4×4 שניתן להתאים אישית את גודלו, צבע הטקסט והרקע שלו, ושקיפותו. אין פרסומות או דרישות להרשאות בלתי-נחוצות. קוד המקור לגמרי פתוח, וניתן לעצב את צבעי הממשק.\nאפליקציה זו היא רק פיסה אחת מתוך סדרה גדולה יותר של אפליקציות. ניתן למצוא את השאר בכתובת https://www.simplemobiletools.com</string>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">予定、カスタマイズ可能なウィジェットのあるシンプルなカレンダー。広告はありません。</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
CalDAVとの同期オプションも備えた、シンプルなカレンダー。 簡単に定期的な予定を作成し、リマインダーを設定することができます。また、週番号も表示することができます。
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">사용자 정의 위젯이 있는 심플한 캘린더입니다. 그리고 광고가 없습니다.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Google 동기화가 있는 심플한 캘린더입니다. 쉽게 반복 이벤트와 알림을 설정할 수 있으며, 주 번호도 표시할 수 있습니다.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">paprastas kalendorius su įvykiais, tinkinamu valdikliu ir be reklamų.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Paprastas kalendorius su CalDAV sinchronizacija. Galite lengvai kurti pasikartojančius įvykius ir nustatyti priminimus, kalendorius gali rodyti savaitės numerius.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">A simple calendar with events, customizable widget and no ads.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
A simple calendar with optional CalDAV synchronization. You can easily create recurring events and setup reminders, it can also display week numbers.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Een simpele agenda met aan te passen widget en zonder advertenties.</string>
|
||||
<string name="app_short_description">Een privacyvriendelijke advertentievrije agenda met aan te passen widget.</string>
|
||||
<string name="app_long_description">
|
||||
Een simpele agenda met optionele CalDAV-synchronisatie. Creëer met gemak herhaalde afspraken met herinneringen. Kan weeknummers tonen.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">A simple calendar with events, customizable widget and no ads.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
A simple calendar with optional CalDAV synchronization. You can easily create recurring events and setup reminders, it can also display week numbers.
|
||||
|
||||
|
|
|
@ -216,7 +216,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Prosty kalendarz z wydarzeniami, widżetami i bez reklam.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Prosty kalendarz z obsługą synchronizacji z Dyskiem Google. Dzięki niemu możesz z łatwością tworzyć wydarzenia i przypomnienia, które nigdy nie zaginą.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ selecionando a opção \"Fonte de áudio usada pelos lembretes\" e modificando o
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Um calendário para adicionar eventos, com um widget personalizável.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Um calendário que não possui qualquer tipo de integração. Pode-se adicionar eventos e lembretes recorrentes, e possui uma opção para mostrar o número da semana.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Um calendário para adicionar eventos e com um widget personalizável.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Um calendário local que não possui qualquer tipo de integração. Pode adicionar eventos e lembretes recorrentes e possui uma opção para mostrar o número da semana.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Простой календарь с событиями и настраиваемым виджетом. Без рекламы.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
Оффлайн календарь, без каких-либо интегрированных сторонних функций. Можно создавать повторяющиеся события и устанавливать напоминания. Есть возможность отображения номеров недель.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">En enkel kalender med händelser, en anpassningsbar widget och ingen reklam.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
En enkel kalender med valfri CalDAV-synkronisering. Du kan enkelt skapa återkommande händelser och ställa in påminnelser. Den kan också visa veckonummer.
|
||||
|
||||
|
|
|
@ -217,7 +217,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Etkinlikler, özelleştirilebilir widget\'lı reklamsız basit bir takvim.</string>
|
||||
<string name="app_short_description">An offline calendar for your events without ads, respecting your privacy.</string>
|
||||
<string name="app_long_description">
|
||||
İsteğe bağlı CalDAV senkronizasyonu ile basit bir takvim. Kolayca tekrarlanan etkinlikler oluşturabilir ve hatırlatıcılar ayarlayabilir, ayrıca hafta sayılarını görüntüleyebilirsiniz.
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">一個有活動功能和可自訂的小工具,且沒有廣告的簡易行事曆。</string>
|
||||
<string name="app_short_description">一個沒有廣告的離線行事曆,用來管理你的活動,並且尊重您的隱私。</string>
|
||||
<string name="app_long_description">
|
||||
一個有CalDAV同步選項的簡易行事曆。你可以輕鬆建立週期活動和設置提醒,也能顯示週數。
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">A simple calendar with events, customizable widget and no ads.</string>
|
||||
<string name="app_short_description">Offline kalendár pre vaše udalosti bez reklám, rešpektujúca vaše súkromie.</string>
|
||||
<string name="app_long_description">
|
||||
A simple calendar with optional CalDAV synchronization. You can easily create recurring events and setup reminders, it can also display week numbers.
|
||||
|
||||
|
|
Loading…
Reference in a new issue